
Microsoft Azure is a best effort cloud
Microsoft Azure is designed for cattle type applications. We discussed cattle versus pets in Chapter 1, An Introduction to Cloud Computing.
Azure does not have facilities to move virtual machines without downtime to other nodes in case of planned maintenance. Virtual machines will restart when Microsoft installs updates on the nodes. For this reason, Microsoft does not have a Service Level Agreement for single-instance virtual machines.
For customers to get guarantees on availability via an SLA, there needs to be at least two instances serving the same application role that are required to be part of the same availability set. In the next chapter, we will discuss availability sets.
Microsoft also does not support the Windows Server Failover Clustering role in virtual machines running on Azure. The only exception is SQL Server AlwaysOn Availability Groups, which are fully supported by Microsoft. So Windows clustering cannot be used to have redundant instances. This restriction means that many traditional applications will not be the most obvious choice to move to Microsoft Azure. If the application runs on a single virtual machine only, Microsoft will not offer an SLA on the virtual machine. Customers will need to rearchitect those traditional applications to be able to run on best effort clouds.
The result is that many traditional applications currently in use will have to be rewritten if they are to be deployed on Microsoft Azure and require high availability.
Microsoft is working on a solution for downtime because of planned maintenance on Azure hosts. The technology will be some sort of hot patching. This will allow installation of hotfixes on Azure hosts without the need to reboot the host. At the moment no information is publicly available on this new technology Microsoft is developing.
An alternative to rearchitecting the application or acquiring a new application is to use a reliable cloud platform like VMware vCloud Air.