Virtual Machine availability sets enable you to prepare your applications for high availability in case of a host server failure and physical rack failure. Availability sets can be created during the virtual machine creation process.

Let's use an example of a web server and a database server that serves users' applications. The web server is placed in a single availability set and the database server in its own availability set.

Availability sets support up to 20 update domains and 3 fault domains. An update domain is an instance of a virtual machine distributed on different hosts within the same server rack. In contrast, a fault domain is an instance of a virtual machine distributed on different server racks, as shown in the diagram below.

Coming back to our example of the application, we can see that the web server virtual machine below sits on two fault domains and one upgrade domain. This is the same with the database server.

Creating an availability set is a relatively simple procedure.

Always make sure to create availability sets during the virtual machine creation process.