What are Azure Availability Zones and why should you use them
By Alex Bennett, Firebrand Training
Highly available applications can absorb changes in load and the catastrophic failures that would knock-out other services. Now Azure customers are closer to achieving the five nines with Azure Availability Zones - currently in preview.
To get in-depth with Azure Availability Zones and what this means for high availability, we’re joined by Mike Brown, Lead Azure Instructor at Firebrand Training.
What are the current high availability options on Azure?
For years, Azure has maintained a settled structure for high availability that you can design your highly available applications and services against.
At the top level of the Azure structure sits the Azure Geography. An Azure Geography (geo) is a group of Azure regions, comprising the entire cloud service. Each region inside a geo is paired with another region within the geo. The paired regions are guaranteed to be several hundred miles apart to prevent a regional disaster affecting both regions. This is what allows us to use Geo-Redundancy features.
For example, you can create a storage account in North Europe that replicates to the West Europe region. If the North Europe region were to fall down, your data would still be available, backed-up safely in the West Europe region.
Azure currently runs across 36 regions with 6 more due online soon. While we don’t have a lot of visibility inside the region (we can’t see what Microsoft are doing within the datacentre itself) we do have some control other the placement of our Virtual Machines (VMs) and Managed Disks.
When we create a VM, we can create an Availability Set. An Availability Set allows us to place resources into different update and fault domains.
For example, if you’re deploying two VMs as part of a web tier, you’ll want to make sure that these VMs are placed on different racks within a datacentre in your chosen region. This means that if a single rack fails or needs to be updated, the failure will not affect both VMs.
To do this we place both VMs into the same Availability Set, which is the signal to Microsoft that these two VMs should be placed on different racks in the region. We can add additional VMs to the availability set later, and this in turn can increase the number of update and fault domains.
However, because Availability Sets cannot span regions, if this region were to fail we would lose access to the whole application.
So what if you want to protect a service that’s fully located in a single region but also protected against a datacentre failure?
Until now this wasn’t possible. Your only option would be to use Geo-Redundancy and deal with the fact that your VMs and data might have to run in a different region in the event your primary region falls over. As latency is inevitably greater between regions, your service will be slowed if this happens.
Introducing: Azure Availability Zones
When Availability Zones become publicly available, Azure Regions will be broken down into at least 3 separate Availability Zones. Each Availability Zone will be distinct, possessing its own power, cooling, high speed low latency connections.
So, if you’re deploying a web tier consisting of 2 VMs in Ireland, you can now make sure that VM1 is placed in Availability Zone 1 and VM2 is placed in Availability Zone 2. If zone 1 was to fail, you (and your customers) would still be able to access VM2 in AZ2.
This means your service won’t have to run from a separate Azure region and will be faster as a result. This is especially useful if your customers are concentrated in a single region.
Availability Zones are also ideal if you must obey regulatory requirements and laws that require your data/services to be highly available inside a single Azure Region.
How to access Azure Availability Zones
Azure Availability is currently available in East US 2 and West Europe with more regions to be announced. Find out more about Availability Zones and sign up for the Preview now.
Comments
- Anonymous
February 20, 2019
So if we had SQL server AG setup across 2 or more regions, and we didn't have an availability zone, how much of a latency would this cause?