Need for availability sets
When building an Azure VM, it can be difficult to keep your VMs in separate vaults and update domains. You can’t simply to say, “I want this VM here and the datacenter B on that server there". Instead, you have to assign VMs to availability sets.
You can specify where a server is in Azure if you have Microsoft provision physical servers, but we’re not going to go into that in this chapter.
Availability sets are Azure’s way of automatically distributing a set of VMs across various fault and update domains and ensures your VMs inherit Azure’s 99.5% VM SLA. Even though you can’t explicitly define an update or fault domain that you’d like VMs to be in, you can define a VM’s availability set.
When you create a VM in Azure, you have the option of defining an availability set. You can be sure all VMs you add to a single availability set will be spread across three faults and up to 20 update domains.
Availability sets are free. You only pay for the VM resources that you assign to the availability set.
Availability set design
Perhaps you have an application with a front end (web) tier and a backend (data) tier with a load balancer controlling each tier. In that case, you’d want to create an availability set based on each tier. Doing so will ensure each web server and database server is in a different fault domain.