1
votes

Azure offers two different availability solutions:

1. Availability Sets

A group with two or more virtual machines in the same Data Center is called Availability Set, this ensures that at least one of the virtual machines hosted on Azure will be available if something happens. This configuration offers 99.95% SLA.

2. Availability Zones

... Virtual Machines are in different physical locations within an Azure Region. ... Availability zones offer 99.99% SLA.

Not all services support Availability Zones.

My Question

So Availability Zones seem to be the superior solution: Higher SLA at the same price. Are there any reasons why I should choose Availability Sets if Availability Zones are supported?

3

3 Answers

4
votes

It all depends on you solution. One of the articles you shared mentioned the key differences

https://i.imgur.com/8fwRXMj.png

What it didn't mention however is the bandwidth charges for Availability Zones. You might want to factor that in your planning and cost analysis when deciding between Availability Set and Zone.

https://i.imgur.com/LiJX994.png

1
votes

Azure Availability sets are used to place your VMs in the different Fault Domains and Update domains but in the same Data Center. Hence 99.95 % SLA.

When it comes to Azure Availability Zones, each region is logically divided into 3 Zones and your VMs will be placed in different Fault Domain and Update Domain in different Zones providing more resiliency. Hence 99.99 % SLA.

There are two types - Zonal and Zone redundant.

If you want to decide on which Zone your resource has to be deployed, then choose Zonal service If you want Azure to manage the Zones, then choose Zonal Redundant service

1
votes

Before jumping into SLA's - here are some basics:

Azure Availability Sets is a KNOB that a given Azure DataCenter exposes to you - on the placement of infrastructure within a given datacenter - to be placed across hosts, racks, power supplies & cooling systems - basically across all several possible failure points. So, if you used Azure Availability Sets option & then, lets say, one bad day, in East US region, the RACK on which your VM is running in the East US data Center went down, you are safe - as you created redundancy across these failure points - your stuff is running on a different rack. However, if an entire Azure datacenter's energy/power supply broke down, or the extreme worst case, the datacenter collapsed - your VMs will be completely unavailable. Azure had the notion of Availability Sets right from the early days of Azure.

Azure Availability Zones was introduced by Azure recently around 2017-18 timeframe - primarily to safeguard against these datacenter-level failures. As part of solving this problem, a given region was divided into Zones. Simplistically, Zone is the old Data Center. So, a region has now, Multiple Data Centers! You (customers) can refer to these Zones - with ZoneIDs and place their infrastructure in a single region - across Data Centers! This means that, now, if you used the Availability Zones feature and if one of the Data Centers went down, you still have the redundant infrastructure that you provisioned in the Same region (which means very similar latency guarantees) up & running!

Now, although it looks very simple, to build a fully Zonally redundant solution, there are complex problems one should understand like, if you create a Virtual Machine Scale Set using VMs from different Zones - how does Azure solve maintaining the redundant n/w infrastructure, as a customer how much does Azure charge for n/w'ing across these cross-zone vms, what are the storage/data solutions available and how to opt into Azure knobs for data services to replicate this data cross zones!?

in total, there are 3 high availability options on Azure. read on...