Azure Availability Zones and Sets
If we want to migrate a mission-critical application into Azure and because of the nature of the application, one of the key requirements is to make an application resilient to both reasonable failures, data center failure, and also even rack failure. So, to make that application highly available in all circumstances, we use Azure services that can deliver that requirement in terms of making application resilient to reasonable failures.
Traffic Manager: We can use traffic manager to monitor the endpoints located in different regions, and if any of the endpoints are no longer reachable, then all the traffic can be routed to other regional endpoints. It contains different routing methods, such as priority weightage, performance, geographic, etc.
Azure Load balancer: We can use Azure load balancer to balance the traffic between our web servers or application servers. It offers layer-4 load balancing, i.e., if we use source IP, source port, destination IP, destination port, and protocol using which we can configure the rules in load balancer to load balance traffic between a form of web servers.
Application Gateway: If we want to load-balance traffic based on URL based routing, or we can say that we want to host multiple sites on the same public IP address and other things, then we can use the application gateway.
To deliver high availability, Azure provides two more important features.
Availability Zone: It is a high availability offering that protects your application and data from data center failures. Generally, every Azure region consists of multiple data centers located at different physical locations. When you are deploying your services into Azure, you can able to select into which availability zone you want to deploy your service.
Availability Set: It works at a rack level. It is a logical grouping of the virtual machine within the data center that allows Azure to understand how your application is built to provide for redundancy and availability. The availability set consists of two domains one is fault domain, and another is the update domain.
- Fault Domain: It is a logical group of the underlying hardware that share a common power source and network switch similar to a rack within an on-premises data center. So, if we are deploying all the virtual machines into the same fault domain, then any hardware failure will knock out all the virtual machines in that particular rack or fault domain.
- Update Domain: It is a logical group of the underlying hardware that can undergo maintenance or be rebooted at the same time because Azure will do infrastructure management.
- Managed Disk fault domains: For VMs using Azure Managed Disks, VMs are aligned with managed disk fault domains when using a managed availability set. This alignment ensures that all the managed disks attached to a VM are with the same managed disk fault domain.