Let’s take a look at what the Azure website talks about availability sets.
An availability set is a logical grouping of VMs that allows Azure to understand how your application is built to provide for redundancy and availability. We recommended that two or more VMs are created within an availability set to provide for a highly available application and to meet the 99.95% Azure SLA. There is no cost for the Availability Set itself, you only pay for each VM instance that you create.https://docs.microsoft.com/en-us/azure/virtual-machines/availability-set-overview
Availability is one of the important aspects of any application. An application going down for a few seconds can cause a business loss. To avoid that, we deploy applications on multiple VMs so that the request can be served even if one of the VMs is down. Say we deploy the application to 2 VMs. But how can we make sure both the VMs are not down at the same time. Azure help us manage availability using Availability sets.
To understand availability sets we need to understand the concept of fault domain and update domain. Each infrastructure unit is dependent on factors like power, cooling, etc. Azure makes sure each such unit has proper demarkation. So when you create an availability set, Azure make sure the VMs you are creating are in different fault domain.
Secondly, Azure might need to do some maintenance, like hardware or software updates for inrastrcuture. again Azure makes sure to create an update domain cluster in a way, that updates are never done on all VMs in an availability set in one go.