Don’t Overpay for High Availability
It’s less expensive to host in three data centers than two, and you’ll achieve better high availability.
A Simple Scenario
Consider a simple scenario where you have a workload currently handled by two on-prem servers. Despite distributing your workload across both servers, you suffered an outage when some shared infrastructure in your data center failed. The incident illustrated that this workload has become mission-critical, so you’re ready to move it to the cloud. One of your key objectives is high availability.
You’ve been told that Azure Availability Zones will allow you to host out of at least three data centers, each with its own isolated infrastructure. But you’re worried about costs. Do you need six servers now, two in each availability zone, to achieve your goal of high availability?
What are Azure Availability Zones?
Availability Zones are about risk management and business continuity.
Azure Availability Zones are available in every country where Azure operates a data center region. Although the number of zones differs per region, a “zone-enabled” region will always have at least three Availability Zones.
Each zone is a physically separated location within a metropolitan region and therefore has its own independent power, cooling, and network infrastructure. And the zones are connected with diverse fiber paths that have a round-trip latency of two milliseconds or less.
But do you need to triple your server count to take advantage of three Availability Zones? Let’s assess our capacity requirements.
Virtual Machine Scale Sets (VMSS)
We’re going to add one more Azure technology to our solution. A Virtual Machine Scale Set allows us to deploy and manage a set of identical VMs across availability zones, load balancing our traffic using Azure Load Balancer (Layer 4) or Azure Application Gateway (Layer-7). VMSS provides an autoscaling feature that allows our infrastructure to adapt to changes in demand. We scale “out” when demand increases, and we scale “in” when demand subsides to reduce costs.
Any VMSS configuration will include an initial instance count. In our example, the business has asked to overprovision, however necessary, to ensure that one percent of their minimum or base capacity is always available. That is to say, they’re not willing to wait for one or two zones to scale up in the event of an outage.
Hosted in a Single Zone
In a single-zone scenario, we need our infrastructure to support one hundred percent of our client demands. However, this scenario is high risk. If the zone goes down, our services are unavailable. This is simply a “lift and shift” of our original problem.
Total capacity required: 100%
Hosted in Two Zones
In a two-zone scenario, we need to double our capacity if the business is not willing to wait for the second zone to scale up to meet demand. We need one hundred percent capacity at each data center, an aggregate capacity of two hundred percent, so that if one location becomes unavailable, the other can meet demand.
Total capacity required: 200%
Hosted in Three Zones
The three-zone scenario is less expensive.
We need only fifty percent capacity in each of the three zones. If one zone becomes unavailable, the remaining zones can accommodate one hundred percent of all requests. That’s an aggregate capacity of only one hundred fifty percent — cheaper than hosting in two zones, which required two hundred percent capacity. And it’s half the cost of what you would have paid had you put one hundred percent capacity into each zone.
Total capacity required: 150%
A three-zone architecture requires less aggregate capacity compared to hosting in only two zones. You’re getting better availability at a lower cost.
You don’t need to triple your infrastructure to achieve high availability in Azure. Surviving an outage shouldn’t mean surviving your cloud bill too.
For More Information
Wondering what Azure regions and availability zones are? Check out Microsoft’s overview.
New to Azure and want more information about Virtual Machine Scale Sets? This is a great starting point.
If you don’t need autoscaling, have a look at Availability Sets.