In this article, we will go over virtual machine availability options in Microsoft Azure. So how do we ensure that our virtual machines are always running in Microsoft Azure and how do we align ourselves with the 99.95% uptime SLA from Microsoft Azure?

We use Availability Sets with two or more machines that host the same role.

Virtual machines in an availability set are automatically distributed among Fault Domains and Update Domains. They are equally distributed between three fault domains, for example, FD A, FD B, and FD C.

Azure Availability Set

An Availability Set is a resource in the Azure Resource Manager and it gives you a 99.95% uptime, according to the Azure SLA. You need to have two or more virtual machines in a set.

Also, it is recommended that you organize the servers in an availability set by function and not mix several types of servers in one Availability Set. This means that you might have an availability set with only SQL servers and one with only IIS servers.

Here is an example of two availability sets, each one with its own set of servers. As you can see, the servers in one availability set perform the same function.

Below is an example of two SQL servers in an AAG (Azure Application Gateway) in an availability set. Please note that the availability set only provides redundancy on the host level; you need to provide the clustering on your side of the VMs.

Now, going back to fault domains and update domains. They are two separate things, though they work largely the same. Like we said before, the servers are distributed among up to three fault domains, which protect them from infrastructure faults.

For example, Hypervisor failures or power outages and so forth. The server in FD A will go down, but the servers in FD B and C will stay up and running, thus you won’t have any loss of service.

Now, the virtual machines are also distributed between up to twenty update domains. An update domain is the same thing as a fault domain. It just means that machines are being protected from underlying updates to the Hypervisor infrastructure. Thus the name Update Domains.

Another thing which Microsoft recommends to use are Managed Disks as storage for the servers, since the disks will also be distributed among fault domains and update domains.

I hope you enjoyed this walkthrough and I will be posting more tutorials on exactly how you configure an availability set in Azure step-by-step. Enjoy!