You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/reliability/reliability-app-service.md
+38-14Lines changed: 38 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ ms.author: anaharris
6
6
ms.topic: reliability-article
7
7
ms.custom: subject-reliability
8
8
ms.service: azure-app-service
9
-
ms.date: 04/04/2025
9
+
ms.date: 05/07/2025
10
10
zone_pivot_groups: app-service-sku
11
11
#customer intent: As an engineer responsible for business continuity, I want to understand how Azure App Service works from a reliability perspective.
12
12
---
@@ -23,7 +23,7 @@ When you deploy Azure App Service, you can create multiple instances of an *App
23
23
24
24
::: zone pivot="free-shared-basic"
25
25
26
-
[Enable zone redundancy](#availability-zone-support), which requires that you use Premium v3 or Isolated v2 App Service plans and that you have at minimum two instances of the plan. To view more information, make sure that you select the appropriate tier at the top of this page.
26
+
[Enable zone redundancy](#availability-zone-support), which requires that you use Premium (v2 or v3) or Isolated v2 App Service plans and that you have at minimum two instances in the plan. To view more information, make sure that you select the appropriate tier at the top of this page.
27
27
28
28
::: zone-end
29
29
@@ -39,7 +39,10 @@ When you deploy Azure App Service, you can create multiple instances of an *App
39
39
40
40
Microsoft-provided SDKs usually handle transient faults. Because you host your own applications on Azure App Service, consider how to avoid causing transient faults by making sure that you:
41
41
42
-
-**Deploy multiple instances of your plan.** Azure App Service performs automated updates and other forms of maintenance on instances of your plan. If an instance becomes unhealthy, the service can automatically replace that instance with a new healthy instance. During the replacement process, there can be a short period when the previous instance is unavailable and a new instance isn't yet ready to serve traffic. You can mitigate the impact of this behavior by deploying multiple instances of your App Service plan.
42
+
-**Deploy multiple instances in your plan.** Azure App Service performs automated updates and other forms of maintenance on instances in your plan. If an instance becomes unhealthy, the service can automatically replace that instance with a new healthy instance. During the replacement process, there can be a short period when the previous instance is unavailable and a new instance isn't yet ready to serve traffic. You can mitigate the impact of this behavior by deploying multiple instances of your App Service plan.
43
+
44
+
> [!NOTE]
45
+
> Upgrade domains consist of collections of virtual machines in a given Scale Unit that are taken offline at the time of an update. Upgrade domains are tied to zones. Deploying multiple instances in your App Service plan and enabling zone redundancy for your plan adds an extra layer of resiliency during upgrades if an instance or zone becomes unhealthy.
43
46
44
47
-**Use deployment slots.** Azure App Service [deployment slots](/azure/app-service/deploy-staging-slots) allow for zero-downtime deployments of your applications. Use deployment slots to minimize the impact of deployments and configuration changes for your users. Using deployment slots also reduces the likelihood that your application restarts. Restarting causes a transient fault.
45
48
@@ -54,19 +57,23 @@ Azure App Service can be configured as *zone redundant*, which means that your r
54
57
Instance spreading with a zone-redundant deployment is determined using the following rules. These rules apply even as the app scales in and out:
55
58
56
59
- The minimum App Service plan instance count is two.
57
-
- Instances are spread across multiple availability zones automatically. The number of availability zones used for your plan is determined by Azure.
60
+
- Instances are spread across multiple availability zones automatically when zone redundancy is enabled. The number of availability zones used by your plan is determined by Azure. To view the number of availability zones used by your plan, see the *MaximumNumberOfZones* property on the serverfarm object or see the value in the **Scale out (App Service plan)** blade in the Azure portal. This property is a ReadOnly property. If the *MaxumumNumberOfZones* value is 2 or 2, your App Service plan can be zone redundant. If this value is 1, your App Service plan doesn't support zone redundancy.
61
+
62
+
:::image type="content" source="media/reliability-app-service/app-service-plan-max-zones-portal.png" alt-text="Screenshot of the App Service plan scale out blade in the Azure portal showing the MaximumNumberOfZones property." border="false":::
63
+
58
64
- The instances spread evenly if you specify a capacity larger than two, and the number of instances is divisible by two.
59
65
- Any instance counts beyond 2*N are spread across the remaining one or two zones.
60
66
61
67
62
-
To view the physical zone placement of your App Service plan instances, go to the instance blade in Azure portal or use the Azure CLI command `az appservice plan show` with the `--query zones` parameter. The output shows the availability zone placement of your App Service plan instances.
68
+
To view the physical zone placement of your App Service plan instances, go to the App Service plan **Instances** blade in Azure portal or use the [REST API](/rest/api/appservice/web-apps/get-instance-info).
69
+
70
+
<!-- TODO: add image when portal is ready -->
63
71
64
72
> [!NOTE]
65
73
> In some cases, your workload is hosted on a scale unit (also known as a stamp, or a compute cluster) that's deployed across two availability zones rather than three zones. For these cases, the instances are evenly spread across the two zones if the number of instances is divisible by two. Any instance count beyond 2*n is placed in one of the zones.
66
74
67
75
When the App Service platform allocates instances for a zone-redundant App Service plan, it uses best effort zone balancing offered by the underlying Azure virtual machine scale sets. An App Service plan is *balanced* if each zone has either the same number of virtual machines, or plus or minus one, in all of the other zones. For more information, see [Zone balancing](/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-use-availability-zones#zone-balancing).
68
76
69
-
70
77
For App Service plans that aren't configured as zone redundant, virtual machine instances aren't resilient to availability zone failures. They can experience downtime during an outage in any zone in that region.
71
78
72
79
### Regions supported
@@ -105,9 +112,9 @@ You must use the [Premium v2, Premium v3, or Isolated v2 plan types](/azure/app-
105
112
106
113
The scale units you're assigned to is based on the resource group you deploy an App Service plan to. To ensure that your workloads land on a scale unit that supports availability zones, you might need to create a new resource group and then create a new App Service plan and App Service app within the new resource group.
107
114
108
-
To see if your App Service plan is on a stamp that supports availability zones, go to the **Properties** blade of your App Service plan in the Azure portal and check the `MaximumNumberOfZones` setting. If the value is greater than 1, your stamp supports zones and you can be zone-redundant.
115
+
To see if your App Service plan is on a stamp that supports availability zones, go to the **Scale out (App Service plan)** blade of your App Service plan in the Azure portal and check the `Maximum available zones` property. If the value is greater than 1, your stamp supports zones and you can be zone-redundant. If the value is equal to 1, your scale unit doesn't have availability zones.
109
116
110
-
- You must deploy a minimum of two instances of your plan.
117
+
- You must deploy a minimum of two instances in your plan.
111
118
112
119
::: zone-end
113
120
@@ -131,7 +138,9 @@ If you enable availability zones but specify a capacity less than two, the platf
131
138
132
139
::: zone pivot="isolated"
133
140
134
-
App Service Environment v3 has a specific pricing model for zone redundancy. For pricing information for App Service Environment v3, see [Pricing](../app-service/environment/overview.md#pricing).
141
+
When you're using App Service Premium v2 or Premium v3 plans, there's no extra cost associated with enabling availability zones as long as you have two or more instances in your App Service plan. You're charged based on your App Service plan SKU, the capacity you specify, and any instances you scale to based on your autoscale criteria.
142
+
143
+
If you enable availability zones but specify a capacity less than two, the platform enforces a minimum instance count of two. The platform charges you for those two instances.
135
144
136
145
::: zone-end
137
146
@@ -145,20 +154,35 @@ App Service Environment v3 has a specific pricing model for zone redundancy. For
145
154
146
155
::: zone pivot="premium"
147
156
148
-
-**Create a new App Service plan with zone redundancy.** To deploy a new zone-redundant Azure App Service plan, select the *Zone redundant* option when you deploy the plan.
157
+
-**Create a new App Service plan with zone redundancy.** To deploy a new zone-redundant Azure App Service plan, select the *Zone redundant* option when you deploy the plan or enable the App Service plan `zoneRedundant` property to `true` in your ARM/Bicep template.
158
+
-**Migration.** If you have an existing App Service plan that supports zone-redundancy (the maximum available zones is greather than 1), you can enable zone redundancy by setting the App Service plan `-zoneRedundant` property to `true` or select the box in the Azure portal. However, if you are on a plan or a stamp that doesn't support availability zones (the maximum number of zones is 1), you must create a new App Service plan in a new resource group so that you land on the App Service footprint that supports zones.
159
+
160
+
:::image type="content" source="media/reliability-app-service/app-service-plan-zone-redundancy-portal.png" alt-text="Screenshot of the App Service plan scale out blade in the Azure portal showing the zone redundant property to enable zone redundancy." border="false":::
161
+
162
+
> [!NOTE]
163
+
> Changing the zone redundancy status of an App Service plan is almost instaneous. You don't experience downtime or performance issues during the process.
164
+
165
+
-**Disable zone redundancy.** To disable zone redundancy, you can set the App Service plan `zoneRedundant` property to `false` or disable using the Azure portal.
149
166
150
167
::: zone-end
151
168
152
169
::: zone pivot="isolated"
153
170
154
-
-**Create a new App Service plan with zone redundancy.** To deploy a new zone-redundant Azure App Service Environment, see [Create an App Service Environment](/azure/app-service/environment/creation).
171
+
-**Create a new App Service plan with zone redundancy.** To deploy a new zone-redundant Azure App Service Environment, see [Create an App Service Environment](/azure/app-service/environment/creation). To create a new zone-redundant App Service plan in an existing App Service Environment, ensure the App Service Environment has zone redundancy enabled. You can only enable zone redundancy on an Isolated v2 App Service plan when the App Service Environment is zone redundant. Once enabled on the App Service Environment, select the *Zone redundant* option when you deploy the plan or set the App Service plan `zoneRedundant` property to `true` in your ARM/Bicep template.
172
+
-**Migration.** If you have an existing App Service Environment or Isolated v2 App Service plan that supports zone-redundancy (the maximum available zones is greather than 1), you can enable zone redundancy at any time. To enable zone redundancy for the App Service Environment, set the `zoneRedundant` property to `true` or select the box in the Azure portal on the App Service Environment **Configuration** blade.
155
173
156
-
::: zone-end
174
+
<!-- TODO: add image for ZR prop for ASE in configuration blade -->
157
175
158
-
-**Migration.** If you have an existing App Service plan that supports zone-redundancy, and you are on a stamp that supports availability zones, you can enable zone redundancy by setting `-zoneRedundant` to `true`. However, if you are on a plan or a stamp that doesn't support availability zones, you must create a new App Service plan on a new stamp, accordingly.
176
+
For Isolated v2 App Service plans, if the App Service Environment is zone redundant, the App Service plans can be made zone redundant. Each App Service plan's zone redundancy status is independent, meaning you can have a mix of zone redundant and non-zone redundant plans in an App Service Environment. To enable zone redundancy on an Isolated v2 App Service plan, set the App Service plan `-zoneRedundant` property to `true` or select the box in the Azure portal.
159
177
178
+
:::image type="content" source="media/reliability-app-service/app-service-plan-zone-redundancy-portal-isolated.png" alt-text="Screenshot of the Isolated v2 App Service plan scale out blade in the Azure portal showing the zone redundant property to enable zone redundancy." border="false":::
160
179
161
-
-**Disable zone redundancy.** To disable zone redundancy, you can set the `zoneRedundant` property to `false`.
180
+
> [!NOTE]
181
+
> Changing the zone redundancy status of the App Service Environment starts an upgrade and takes 12-24 hours to complete. You don't experience downtime or performance issues during the process.
182
+
183
+
-**Disable zone redundancy.** To disable zone redundancy, you can set the App Service plan or App Service Environment `zoneRedundant` property to `false` or disable via the Azure portal.
0 commit comments