Skip to main content

Availability Set

A logical grouping of VMs within a datacenter that spreads them across separate fault domains and update domains, protecting against hardware failures and planned host maintenance taking down all instances at once.

Availability Set

An Availability Set ensures VMs in the same application tier don't all sit on the same physical rack or get rebooted for host patching at the same time.

Why It Matters in Production

Razorpay places its payment-gateway VM pool in an Availability Set so a single rack power failure or Azure host-patching cycle never takes down every instance simultaneously.

Bash
az vm availability-set create --name payments-avset \
--resource-group razorpay-prod-rg --platform-fault-domain-count 3 \
--platform-update-domain-count 5
Remember

Availability Sets protect against datacenter-level hardware/maintenance failures, not zone or region-level outages — use Availability Zones for that.

Frequently Asked Questions

How is an Availability Set different from an Availability Zone?

An Availability Set protects against failures within a single datacenter — it spreads VMs across separate fault domains (different physical racks/power/network) and update domains (so Azure doesn't patch and reboot all your VMs at once). An Availability Zone protects against an entire datacenter failing, since each zone is a physically separate facility. Availability Sets are the older, intra-datacenter mechanism; Zones are the newer, inter-datacenter one.

What's a common mistake when using Availability Sets?

Assuming an Availability Set protects against a regional or datacenter-wide outage — it doesn't, since all VMs in the set live in the same datacenter. For genuine resilience against a full facility going down, VMs need to be spread across Availability Zones instead (or in addition). Also, once VMs are created, they can't be added to an Availability Set retroactively — it has to be decided at VM creation time.