One of the key characteristics of any cloud solution is to ensure high availability (HA). High availability ensures the continuous operation or uptime for extended period by eliminating the single point of failure.
In this article we will understand what is Azure Availability Set and how it ensure the high availability. To fully understand Availability Set, we must first learn the concept of Fault Domain and Update Domain
An Azure data center contains several racks of the servers, Each rack contains several physical server with its own power supply and network switches.
So a rack of server is termed as fault domain. Since a rack has its own power source and network switches , failure of power supply in a rack will result in failure of all the physical servers in the rack. Although remaining of the racks are isolated and are not affected with the failure in one rack.
So we may define fault domain as group of resources which may fail at the same time due to same reason. If you want your resources to be available all the time then resources must be organized into multiple fault domains.
Azure data centers contains thousands of racks and hardware that provides continuous access to VMs and other compute services like storage. These servers need to be updated periodically for patches or any other software updates. This may also results in restart of the servers hence unavailability of the VMs and other resources. A rebooted update domain is given 30 minutes to recover before maintenance is initiated on a different update domain.
So if you want Azure resources to be available during update and patch process, deploy them across multiple update domains.
Availability set is logical grouping of resources in fault domain and update domain. When we define an availability set and place resources into it , Azure will ensure that each VM is placed in different fault domain and update domain.
Availability Set SLA
For all Virtual Machines that have two or more instances deployed in the same Availability Set, Microsoft guarantees, you will have Virtual Machine Connectivity to at least one instance at least 99.95% of the time.
You can assign virtual machines to the availability set only during the creation of virtual machines