Azure availability zone migration baseline
This article shows you how to assess the availability-zone readiness of your application for the purposes of migrating from non-availability zone to availability zone support. Understand how you can take advantage of availability zone support, and how to meet your application and resiliency requirements. For more detailed information on availability zones and the regions that support them, see What are Azure regions and availability zones.
When creating reliable workloads, you can choose at least one of the following availability zone configurations:
Zonal. A zonal configuration provides a specific, self-selected availability zone.
Zone-redundant. A zone-redundant configuration provides resources that are replicated or distributed across zones automatically.
In addition to the two availability zone options, zonal and zone-redundant, Azure offers Global services, meaning that they're available globally regardless of region. Because these services are always available across regions, they're resilient to both regional and zonal outages.
To see which Azure services support availability zones, see Availability zone service and regional support.
Note
When you don't select a zone configuration for your resource, either zonal or zone-redundant, the resource and its sub-components won't be zone resilient and can go down during a zonal outage in that region.
Considerations for migrating to availability zone support
There are a number of possible ways to create a reliable Azure application with availability zones that meet both SLAs and reliability targets. Follow the steps below to choose the right approach for your needs based on technical and regulatory considerations, service capabilities, data residency, compliance requirements, and latency.
Step 1: Check if the Azure region supports availability zones
In this first step, you'll need to validate that your selected Azure region support availability zones as well as the required Azure services for your application.
If your region supports availability zones, we highly recommended that you configure your workload for availability zones. If your region doesn't support availability zones, you'll need to use Azure Resource Mover guidance to migrate to a region that offers availability zone support.
Note
For some services, availability zones can only be configured during deployment. If you want to include availability zones for existing services, you may need to redeploy. Please refer to service specific documentation in Availability zone migration guidance overview for Microsoft Azure products and services.
Step 2: Check for product and SKU availability in the Azure region
In this step, you'll validate that the required Azure services and SKUs are available in the availability zones of your selected Azure region.
To check for regional support of services, see Products available by region.
To list the available VM SKUs by Azure region and zone, see Check VM SKU availability.
If your region doesn't support the services and SKUs that your application requires, you'll need to go back to Step 1: Check the product availability in the Azure region to find a new region that supports the services and SKUs that your application requires. We highly recommended that you configure your workload with zone-redundancy.
For multi-zone high availability of Azure IaaS Virtual Machines, use Virtual Machine Scale Sets Flex to spread VMs across multiple availability zones.
Step 3: Consider your application requirements
In this final step, you'll determine, based on application requirements, which kind of availability zone support is most suitable to your application.
Below are three important questions that will help you choose the correct availability zone deployment:
Does your application include latency sensitive components?
Azure availability zones within the same Azure region are connected by a high-performance network with a round-trip latency of less than 2 ms.
The recommended approach to achieving high availability, if low latency isn't a strict requirement, is to configure your workload with a zone redundant deployment.
For critical application components that require physical proximity and low latency, such as gaming, engineering simulation, and high-frequency trading (HFT), we recommend that you configure a zonal deployment. Virtual Machine Scale Sets Flex provides zone aligned compute along with attached storage disks.
Does your application code have the readiness to handle a distributed model?
For a distributed microservices model and depending on your application, there's the possibility of ongoing data exchange between microservices across zones. This continual data exchange through APIs could affect performance. To improve performance and maintain a reliable architecture, you can choose zonal deployment.
With a zonal deployment, you must:
Identify latency sensitive resources or services in your architecture.
Confirm that the latency sensitive resources or services support zonal deployment.
Co-locate the latency sensitive resources or services in same zone. Other services in your architecture may continue to remain zone redundant.
Replicate the latency sensitive zonal services across multiple availability zones to ensure zone resiliency.
Load balance between the multiple zonal deployments with a standard or global load balancers.
If the Azure service supports availability zones, we highly recommend that you use zone-redundancy by spreading nodes across the zones to get higher uptime SLA and protection against zonal outages.
For a 3-tier application it's important to understand the application, business, and data tiers; as well as their state (stateful or stateless) to architect in alignment with the best practices and guidance according to the type of workload.
For specialized workloads on Azure as below examples, please refer to the respective landing zone architecture guidance and best practices.
SAP
Azure Virtual Desktop
Azure Kubernetes Service
Oracle
Do you want to achieve Business Continuity and Disaster Recovery in the same Azure region due to compliance, data residency, or governance requirements?
To achieve business continuity and disaster recovery within the same region and when there is no regional pair, we highly recommend that you configure your workload with zone-redundancy. A single-region approach is also applicable to certain industries that have strict data residency and governance requirements within the same Azure region. To learn how to replicate, failover, and failback Azure virtual machines from one availability zone to another within the same Azure region, see Enable Azure VM disaster recovery between availability zones.
If you require multi-region, or if your Azure region doesn't support availability zones, we recommend that you use regional pairs. Regional pairs are situated at far distance at around 100 miles apart, and give you blast radius protection from regional level failures such as fire, flooding, earthquake and other natural or unforeseen calamities. For more information, see Cross-region replication in Azure: Business continuity and disaster recovery.
Note
There can be scenarios where a combination of zonal, zone-redundant, and global services works best to meet business and technical requirements.
Other points to consider
To learn about testing your applications for availability and resiliency, see Testing applications for availability and resiliency.
Each data center in a region is assigned to a physical zone. Physical zones are mapped to the logical zones in your Azure subscription. Azure subscriptions are automatically assigned this mapping at the time a subscription is created. You can use the dedicated ARM REST API, listLocations and set the API version to 2022-12-01 to list the logical zone mapping to physical zone for your subscription. This information is important for critical application components that require co-location with Azure resources categorized as Strategic services that may not be available in all physical zones.