Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
To make your applications more resilient to availability zone-related hardware failures, network disruptions, and natural disasters, design your Azure workloads for zone resilience. When you distribute resources across multiple availability zones within an Azure region, you reduce the risk of a single zone outage affecting critical services.
Although it's a best practice to address zone resiliency during the initial planning and deployment of workloads, it's common to want to convert existing non-resilient workloads to zone resilient configurations. In general, the processing of enabling zone resiliency for existing workloads is straightforward, and Microsoft continues to simplify the process. However, any change to your workload can introduce an amount of risk. Once you understand the risks that are involved, you'll then be able to assess and prioritize which workloads and services within those workloads are most vital to your business, then apply zone resiliency to the most impactful resources first.
This article outlines key considerations for enabling zone resilience in your Azure workloads. It helps you plan, implement, and validate the changes.
Tip
If you're currently designing your workloads or plan to do a design review of your current workloads, follow the recommendations for designing for redundancy in the Azure Well-Architected Framework (WAF). The WAF recommendations guide helps you design workload redundancy across multiple levels, with a focus on critical workflows. In addition to supporting availability zone adoption, it also outlines strategies like multiregion deployments and deployment stamps.
What is zone resiliency?
Azure services can be made resilient to availability zone outages in two primary ways:
Zone-redundant services: Many Azure services support zone redundancy. These services automatically replicate data between availability zones, distribute incoming requests, and fail over to different zones during a zone failure. Each service supports these capabilities in a way that makes sense for that specific service. The mechanisms and recovery behavior vary by service, and applications can still experience transient interruptions during failover. Some services are zone redundant by default, while other services might need you to configure zone redundancy.
Zonal services: Some Azure services are zonal, which means that they can be pinned to a specific availability zone. To achieve zone resiliency by using a zonal service, deploy separate instances of the service in multiple availability zones. You might also need to manage traffic distribution, replication of data, and failover between the instances.
Some services can be deployed in either a zone-redundant or zonal configuration. For most cases, it's best to deploy zone-redundant services when you can.
For more information, see Types of availability zone support.
Zone resilience enablement procedure
Use the following steps to systematically review your Azure workloads, prioritize them for zone resiliency, and enable zone resiliency for each component.
Prerequisites
Before you begin, perform the following actions:
Identify each workload. A workload refers to a collection of application resources, data, and supporting infrastructure that function together to achieve defined business outcomes. For more information about workloads and how to define them, see Well-Architected Framework workloads.
Prioritize each workload's user and system flows. Understand the critical paths and dependencies of your workloads to determine which components to make zone-resilient first. For more information about how to use critical flow analysis to prioritize workflows, see Architecture strategies for identifying and rating flows.
Assign a criticality rating to each workload and flow. This rating helps you understand the impact of a potential outage on your business and guides your decisions about which workloads to prioritize for zone resiliency. Also consider the amount of acceptable downtime while you reconfigure the workloads.
You can use a taxonomy to classify your workloads based on their criticality. This approach helps you focus your efforts on the most important services.
Consider the following example taxonomy to classify your workloads.
Workload type Description Effect of disruption Mission-critical Critical flows and workloads that must be highly reliable, always available, resilient to failures, and recoverable within defined recovery objectives if any downtime occurs. Any disruption to essential functions immediately risks catastrophic business damage or introduces risks to human life. Business-critical Essential flows and workloads that operate important business functions. Disruption risks some financial loss or brand damage. Business‑operational Contributes to efficiency of business operations, but out of direct line-of-service to customers. Can tolerate some level of disruption. Administrative Internal production flows and workloads not aligned to business operations. Can tolerate disruption. For more information about how to classify your workloads according to criticality rating, see Assign a criticality rating to each flow.
Verify that the regions where your Azure resources reside support availability zones. Consult the Azure regions list. If a region doesn't support availability zones, consider relocating your resources to a region that does. For more information, see Move Azure resources across resource groups, subscriptions, or regions.
Step 1: Prioritize Azure services for zone resilience
After you determine which workload flows are most critical to your business, you can focus on the Azure services that those flows depend on. Some Azure services are more critical to your applications than others. Prioritize these services to help ensure that your applications remain available and resilient if a zone failure occurs.
Use the following guidance to prioritize Azure service groups based on their criticality to your workloads. Consider your specific application architecture and business requirements when you determine the priority of services for zone resiliency.
Start with networking services. Workloads tend to share networking services, so an increase in the resiliency of these services can improve the resiliency of multiple workloads at once.
Many core networking services are zone redundant automatically, but you should focus on components like Azure ExpressRoute gateways, Azure VPN Gateway, Azure Application Gateway, Azure Load Balancer, and Azure Firewall.
Improve operational data storage resiliency. Operational data stores contain valuable data that multiple workloads often use, so improving the availability of those data stores can help many workloads.
For operational data storage resiliency, focus on services like Azure SQL Database, Azure SQL Managed Instance, Azure Storage, Azure Data Lake Storage, Azure Cosmos DB, Azure Database for PostgreSQL, Azure Database for MySQL, and Azure Managed Redis.
Prioritize compute services. Stateless application instances can be replicated and distributed across zones without replicating application state between the instances. However, compute services can also host stateful applications. Account for their data, storage, and replication requirements when you plan zone resilience.
Compute services include Azure Virtual Machines, Azure Virtual Machine Scale Sets, Azure Kubernetes Service (AKS), Azure App Service, App Service Environment, Azure Functions, Azure Service Fabric, and Azure Container Apps.
Review remaining business-critical resources that your critical flows use. These resources might not be as critical as the resources listed previously, but they still play a role in your application's functionality, and you should consider them for zone resiliency.
Review the rest of your business-operational resources. Make informed decisions about whether to make them zone resilient. This review includes services that might not directly relate to your critical workloads but still contribute to overall application performance and reliability.
Step 2: Assess zone configuration approaches
After you prioritize your workloads and Azure services, identify the approach required to enable availability zone support for each service. Understand what you need to do to configure zone resiliency.
Each Azure reliability service guide provides a section that describes how to enable zone resiliency for that service. This section helps you understand the effort required to make each service zone resilient so that you can plan your strategy accordingly. For more information about a specific service, see Azure reliability service guides.
Use the zone configuration table to identify approaches for common Azure services.
Important
If your workload includes components deployed in a zonal (or single-zone) configuration, plan to make these components resilient to zone outages. A common approach is to deploy separate instances into another availability zone and switch between them if necessary.
Step 3: Test for latency
When you make workloads zone resilient, consider latency between availability zones. Occasionally, some legacy systems can't tolerate the small amount of extra latency that cross-zone traffic introduces, especially when you enable synchronous replication across zones within the data tier. If you suspect that cross-zone latency might affect your workload, run tests before and after you enable zone resiliency. For more information about how cross-zone latency might affect your application and approaches to mitigate cross-zone latency problems, see Zonal resources and zone resiliency.
Step 4: Implement the changes
For each component, follow the configuration or migration instructions in its reliability guide. Before you change production resources:
- Define acceptance criteria for your critical flows, including acceptable downtime, latency, throughput, and data loss.
- Check the service's region, tier, capacity, and quota requirements. Include dependent resources and any temporary resources that the migration requires.
- Confirm that you have recoverable backups where applicable. Use the reliability guide's Backup and restore section to understand how to back up each resource. Document how to roll back or recover if the change fails, including how to handle data written after a migration cutover.
- Test the change and recovery procedures in a representative nonproduction environment.
Apply changes in stages where the service supports it. Monitor application health and critical flows during each stage, and use your rollback or recovery procedure if the results don't meet your acceptance criteria.
Step 5: Validate zone resilience
After you apply the changes, verify that the workload meets the acceptance criteria you defined. Validate the new configuration, such as by checking the service is now configured for zone redundancy.
For some services, you manage the number of instances. Check the service's instances are distributed among zones. Assess whether the capacity in the surviving zones can meet your requirements if one zone becomes unavailable. Don't assume that you can allocate replacement capacity during an outage. For more information, see Manage capacity with over-provisioning.
For services that support failure testing, follow its reliability guide to test application behavior during failure and recovery in a controlled environment. Test the behavior that you're responsible for, rather than trying to validate Microsoft's internal failover mechanisms.
Zone configuration approaches for Azure services
Each Azure service supports a specific type of availability zone support, which is based on the service's intended use and internal architecture. If you have a resource that isn't configured to use availability zones (also called a nonzonal resource), you might want to reconfigure it with availability zone support. The reliability guide for that service provides guidance or links to availability zone configuration instructions.
This section provides an overview of the different types of zone configuration approaches and which approach each service supports. This section excludes nonregional services because Azure doesn't deploy them to a single region. For more information about nonregional services, see Azure nonregional services and the service's reliability guide.
Important
When you enable zone redundancy on a resource, that resource becomes automatically resilient to zone failures. When you use a zonal configuration to pin the resource to a specific availability zone, the resource isn't automatically zone redundant. You must make it resilient to a zone failure. For zonal services, this article reflects the complexity and cost of pinning to a single zone, not to make it zone-resilient. For more information about extra steps to achieve zone resiliency, see the service's reliability guide as well as Zonal resources and zone resiliency.
The zone configuration table lists the supported zone configuration approach for many Azure services and contains a link to each reliability guide for that service. The reliability guide provides information about how to configure nonzonal service resources to enable availability zone support.
The following table describes common zone configuration approaches, including the level of effort and downtime required to enable availability zones. Some services have different approaches listed because of the way they work.
| Approach | Description | Typical level of effort | Might require downtime |
|---|---|---|---|
| Always zone resilient | The service is zone resilient by default in regions that support availability zones. No action is required. | None | No |
| Enablement | Minimal configuration changes required, such as enabling zone redundancy in settings. The process has no or minimal effect on the resource's availability, but consider effects on cost or performance. | Low | None or minimal |
| Modification | Likely requires some configuration changes, such as redeploying dependent resources or modifying network settings. | Medium | Yes |
| Redeployment | Significant changes required, such as redeploying entire resources, applications, or services, or migrating data to new services. | High | Yes |
Understand the cost of enabling availability zone support for a service. Some services don't charge separately for the feature, but you still pay for the resources and capacity that you deploy. Other services require a specific tier, a minimum number of instances or capacity units, or both. For storage services, zone-redundant storage (ZRS) can have higher rates than locally redundant storage (LRS). The table in the next section identifies these cost factors.
Note
The information in this article summarizes the typical approach to enable availability zone support and outlines the typical cost impact. But some factors might affect how it works for your specific solution. For example, some services are listed as always zone resilient, but this designation only applies in specific regions or for specific tiers of the service. Use these tables as a starting point, but review the linked reliability guide to understand the specific details.
Azure services by zone configuration approach
The following table summarizes the availability zone support for many Azure services and provides an approach, including cost impact, to enable availability zone support for each service.
| Service | Can be zone redundant | Can be zonal | Typical zone configuration approach | Typical cost impact |
|---|---|---|---|---|
| Enablement | Minimum tier and replica count required | |||
| Automatic configuration: Always zone resilient Manual zone reconfiguration: Modification |
Additional units billed at Premium tier rates | |||
| Redeployment | Additional units billed at the selected tier's rates | |||
| Always zone resilient | N/A | |||
| Enablement | Minimum tier and instance count required | |||
| Enablement | Minimum instance count required | |||
| Always zone resilient | N/A | |||
| Always zone resilient | N/A | |||
| Always zone resilient | N/A | |||
| Redeployment | Moderate cost increase | |||
| Redeployment | No cost impact | |||
| Redeployment | No cost impact for same number of virtual machines (VMs) | |||
| Enablement | Moderate cost increase | |||
| Always zone resilient | N/A | |||
| Redeployment | Minimum replica count required | |||
| Redeployment | No cost impact | |||
| Redeployment | No cost impact for same number of container groups | |||
| Always zone resilient | N/A | |||
| Modification | None if using autoscale or multiregion writes | |||
| Modification | Moderate cost increase | |||
| Always zone resilient | N/A | |||
| Enablement | Moderate cost increase | |||
| Redeployment | Requires primary and high availability (HA) replica | |||
| Enablement | Requires primary and HA replica | |||
| Enablement | No cost impact for same number of VMs; moderate cost increase for storage | |||
| Enablement | Moderate cost increase | |||
| Always zone-resilient | N/A | |||
| Always zone resilient | N/A | |||
| Always zone resilient | N/A | |||
| Enablement | Requires primary and HA standby shard | |||
| Redeployment | Moderate cost increase | |||
| Always zone resilient | N/A | |||
| Always zone resilient | Minimum capacity units (CUs) required | |||
| Always zone resilient | N/A | |||
| New gateways: Zone resilient by default Existing nonzonal gateways: Modification |
Minimum SKU required | |||
| Enablement | ZRS: Moderate cost increase Zonal LRS: No cost impact |
|||
| New firewalls: Zone resilient by default Existing nonzonal firewalls: Modification (automatic migration in progress) |
No cost impact | |||
| Enablement | Minimum instance count required | |||
| Enablement | Minimum instance count required | |||
| Redeployment | Minimum instance count required | |||
| Redeployment | No cost impact for same number of nodes | |||
| Always zone resilient | N/A | |||
| Always zone resilient | N/A | |||
| Redeployment | No cost impact | |||
| Modification | No cost impact | |||
| Always zone resilient | N/A | |||
| Redeployment | Minimum tier and instance count required | |||
| Redeployment | Moderate cost increase | |||
| Enablement | Requires primary and HA instance | |||
| Always zone resilient | N/A | |||
| Always zone resilient | ||||
| Redeployment | No cost impact | |||
| Redeployment | Depends on replication configuration | |||
| Redeployment | Moderate cost increase | |||
| Always zone resilient | N/A | |||
| Enablement | Moderate cost increase | |||
| Always zone-resilient | N/A | |||
| Redeployment | No cost impact for same number of VMs | |||
| Enablement | Minimum tier required | |||
| Redeployment | No cost impact for Site Recovery, moderate cost increase for replica storage | |||
| Enablement | No cost impact | |||
| Enablement | Moderate cost increase | |||
| Redeployment | Minimum replica count required | |||
| Enablement | No cost impact | |||
| Enablement | Moderate cost increase | |||
| Always zone resilient (control plane) Enablement (target storage accounts) |
N/A (control plane) Depends on target storage account redundancy |
|||
| Always zone-resilient | N/A | |||
| Always zone-resilient | N/A | |||
| Enablement | Moderate cost increase | |||
| Redeployment | No cost impact for same number of VMs | |||
| Modification | No cost impact for same number of VMs | |||
| Always zone resilient | N/A | |||
| Always zone-resilient | N/A | |||
| Redeployment | No cost impact for same number of nodes | |||
| Modification | Minimum SKU required | |||
| Enablement | Minimum tier required | |||
| Always zone resilient | N/A |