Azure High Availability — single VM to multi region deployment (detailed overview)

Abdul Azeez
3 min readApr 24, 2024

Image.

High Availability is one of the most design consideration in Enterprise software implementation and here we are exploring different High Availability option implemented for Azure IaaS solution like Azure VM. Lets take a simple mvc web application with SQL DB and hostesd in 2 VMs , first VM — Web Application , second VM — SQL DB.

single VM

Create VM in any azure region and with Availability Option as ‘No redundancy’ and deploy mvc web application and SQL DB in same VM. Cool, and this environment is good enough for business non critical application and Azure ensure 99.9% SLA.

multiple instances of VMs in Availability Set

In above scenario, VM is not accessible if network connectivity broken or power failure or restart VM due to software upgrade and our MVC website will be down. But if second instance of VM deploy in availability set, MVC website should not be down if any hardware failure. Azure ensure availability by allocating independent hardware racks for 2 VMs and if any hardware failure first VM’s rack (like power outage, network issue) do not impact second VM’s rack, this is referred fault domain in Availability set.

Lets discuss about software upgrade or security patch installation and required restart of VM (this is not a fault and indeed requirement to ensure system reliability). MVC application will be down if Azure initiate restart of all VMs in same availability set and will not get benefit of availability set even though VMs are deployed independent physical racks. Azure addressed this concerns by logical grouping of VMs in different racks and ensure software upgrade happened only one logical group a time and this referred as Update Domain.

Azure will automatically place multiple instances of VMs in different fault and update domains based on the configuration. Lets check how our mvc application placed in different update and fault domain

Availability Set — Other facts

Load balancer or Application gateway need to connect multiple instances of VMs in Availability Set, and no separate cost associated for Availability Set. Only VMs can configure in Availability Set and not any Azure PaaS services. There is no automatic synchronization between VMs in Avaialbility set.

Availability Zone

Availability Zone provide next level of availability solution if entire data center down and (of course Availability set will not be function if data center down). Availability Zone span across multiple physical and logical locations with multiple data center in a Azure regions and alos ability to communicate between datacenter through close proximity fiber network. However Availability zone does not support in all region.

Availability Zone — other facts

To connect different VMs in multiple Azure zone — Zone redundant service like Application Gateway or zone redundant load balancer can be used. But there are some time we need to connect multiple multiple VMs in same zone considering performance and use zonal load balance here.

Is Any automatic synchronization for IaaS service in multiple zone.

Azure Region

Azure multi region provide another level of Availability option if any region completely fails. Azure Front Door help to navigate different VMs in multiple Azure regions.

Conclusion

We explored different options of Azure High Availability for Azure IaaS applications.

--

--