High availability for VMs on azure
Increased availability of applications / services is one of the most important reasons why organizations move to cloud. So what is availability ?
Per Wikipedia, availability is defined as "The ratio of (a) the total time a functional unit is capable of being used during a given interval to (b) the length of the interval". A simpler definition would be, "availability is the proportion of time a system is in a functioning condition".
High availability obviously is good for business as it means little or no down time for applications that the business relies on. Let us see what are some of the availability options on azure for VMs.
Azure has something called regions, they are nothing but a data center or a group of data centers in a geographic region. For example Central US is a region in Azure, as is East US and West US. Each azure region can be either one or more data centers. Each region is typically paired with another region so that data, applications, vms etc can be replicated across these regions to increase overall availability.
In each region, there can be multiple availability zones. An availability zone is a data center. Most azure regions still have only one zone, but some regions like Central US have 3 zones available. What does this mean? It means in Central US Azure region, 3 separate data centers are available relatively close to each other in such a way that, they are close enough to make replication fast, but separated by enough distance so that at least one may survive any local / regional disasters / outages.
Here is a list of some azure regions and the availability zones in those regions.
So availability zone is one of the ways how azure provides high availability. In addition, there are also availability sets. If VMs are deployed into an availability set, azure ensures that they are distributed across multiple hardware servers and on different server racks in the data center. This is to ensure that in case a power or a network outage occurs, at least one other VM is still available.
Azure provides us with parameters called Fault Domains and Update Domains, which are configurable and need to be chosen correctly while deploying VMs into an availability set.
Fault Domain means a virtual grouping of hardware including server, power outlet and network. When deploying VM into an availability set, fault domains can be 1 to 3. Azure creates VMs according to the number chosen which automatically sets up the deployment to be resilient against hardware or network failures localized to any one area of the data center.
Update domain means a virtual group of hardware and software which gets updated at any one time. Number of update domains that are available for VMs range from 1 to 20. So what this means is that azure will deploy VMs into multiple update domains as well along with fault domains. When updates are rolled out, they are rolled out to one update domain at a time and even if an update causes disruption, it affects only one of the VMs and other VMs in the other update domains are still available.
So this combination of multiple availability zones, and availability sets including fault domains and update domains increases the overall availability of the VMs.
Here is a link to Microsoft's SLA for VMs on Azure. A single VM offers three nines (99.9%) availability, whereas deploying in availability sets takes it up to three nine five (99.95%) and finally the highest availability of four nines (99.99%) is when deployment is across 2 or more availability zones.
Now, what does this mean in terms of actual downtime in hours / minutes ? Let us check the chart from wikipedia
As you can see there is a significant reduction in downtime between just 99.9% and 99.99% availability.
So, using availability zones and availability sets (with appropriate number of fault domains and update domains), VMs in azure can be deployed in a highly available configuration.
References:
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/regions-and-availability
https://social.technet.microsoft.com/wiki/contents/articles/51828.azure-vms-availability-sets-and-availability-zones.aspx
https://gallery.technet.microsoft.com/Set-Azure-Resource-Manager-f7509ec4
Comments
Post a Comment