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
+39-45Lines changed: 39 additions & 45 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,39 +55,11 @@ Microsoft-provided SDKs usually handle transient faults. Because you host your o
55
55
56
56
App Service can be configured as *zone redundant*, which means that your resources are distributed across multiple availability zones. Distribution across multiple zones helps your production workloads achieve resiliency and reliability. When you configure zone redundancy on App Service plans, all apps that use the plan are made zone redundant.
57
57
58
-
Instance distribution in a zone-redundant deployment follows specific rules. These rules remain applicable as the app scales in and scales out:
59
-
60
-
-**Minimum instances:** Your App Service plan must have a minimum of two instances for zone redundancy.
61
-
62
-
-**Maximum availability zones supported by your plan:** Azure determines the number of availability zones that your plan can use. To view the number of availability zones that your plan is able to use, see the *maximumNumberOfZones* property on the App Service plan. This is a read-only property. If this value is equal to 1, your App Service plan doesn't support zone redundancy. If the *maximumNumberOfZones* value is greater than 1, your App Service plan can be configured for zone redundancy.
63
-
64
-
```azurecli
65
-
az appservice plan show -n <app-service-plan-name> -g <resource-group-name> --query properties.maximumNumberOfZones
66
-
```
67
-
68
-
- **Instance distribution:** When zone redundancy is enabled, plan instances are distributed across multiple availability zones automatically. The distribution is based on the following rules:
69
-
70
-
- The instances distribute evenly if you specify a capacity (number of instances) greater than *maximumNumberOfZones* and the number of instances is divisible by *maximumNumberOfZones*.
71
-
- Any remaining instances are distributed across the remaining zones.
72
-
- When the App Service platform allocates instances for a zone-redundant App Service plan, it uses best-effort zone balancing that the underlying Azure virtual machine scale sets provide. An App Service plan is balanced if each zone has the same number of VMs or differs by plus one VM or minus one VM from all other zones. For more information, see [Zone balancing](/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-use-availability-zones#zone-balancing).
73
-
74
-
- **Physical zone placement:** You can view the [physical availability zone](availability-zones-overview.md#physical-and-logical-availability-zones) used for each of your App Service plan instances. Use the [REST API](/rest/api/appservice/web-apps/get-instance-info), which returns the `physicalZone` value for each instance.
75
-
76
-
```azurecli
77
-
az rest --method get --url https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Web/sites/{appName}/instances?api-version=2024-04-01
78
-
```
79
-
80
-
For App Service plans that aren't configured as zone redundant, the underlying VM instances aren't resilient to availability zone failures. They can experience downtime during an outage in any zone in that region.
58
+
Instance distribution in a zone-redundant deployment follows specific rules. These rules remain applicable as the app scales in and scales out. For more information, see [Considerations](#considerations).
81
59
82
60
### Region support
83
61
84
-
::: zone pivot="free-shared-basic"
85
-
86
-
Zone-redundant App Service plans can be deployed in [any region that supports availability zones](./regions-list.md).
87
-
88
-
::: zone-end
89
-
90
-
::: zone pivot="premium"
62
+
::: zone pivot="free-shared-basic, premium"
91
63
92
64
Zone-redundant App Service plans can be deployed in [any region that supports availability zones](./regions-list.md).
93
65
@@ -103,7 +75,8 @@ To see which regions support availability zones for App Service Environment v3,
103
75
104
76
::: zone pivot="free-shared-basic"
105
77
106
-
- You must use the [Premium v2, Premium v3, or Premium v4 plan types](/azure/app-service/overview-hosting-plans).
78
+
You must use the [Premium v2-4 plan types](/azure/app-service/overview-hosting-plans). To view more information, ensure that you select the appropriate tier at the top of this page.
79
+
107
80
108
81
::: zone-end
109
82
@@ -129,9 +102,29 @@ To see which regions support availability zones for App Service Environment v3,
129
102
130
103
### Considerations
131
104
132
-
During an availability zone outage, some aspects of Azure App Service might be affected, even though the application continues to serve traffic. These behaviors include App Service plan scaling, application creation, application configuration, and application publishing.
105
+
Instance distribution in a zone-redundant deployment follows specific rules. These rules remain applicable as the app scales in and scales out:
106
+
107
+
- **Minimum instances:** Your App Service plan must have a minimum of two instances for zone redundancy.
108
+
109
+
- **Maximum availability zones supported by your plan:** Azure determines the number of availability zones that your plan can use. To view the number of availability zones that your plan is able to use, see the *maximumNumberOfZones* property on the App Service plan. This is a read-only property. If this value is equal to 1, your App Service plan doesn't support zone redundancy. If the *maximumNumberOfZones* value is greater than 1, your App Service plan can be configured for zone redundancy.
110
+
111
+
```azurecli
112
+
az appservice plan show -n <app-service-plan-name> -g <resource-group-name> --query properties.maximumNumberOfZones
113
+
```
114
+
115
+
- **Instance distribution:** When zone redundancy is enabled, plan instances are distributed across multiple availability zones automatically. The distribution is based on the following rules:
116
+
117
+
- The instances distribute evenly if you specify a capacity (number of instances) greater than *maximumNumberOfZones* and the number of instances is divisible by *maximumNumberOfZones*.
118
+
- Any remaining instances are distributed across the remaining zones.
119
+
- When the App Service platform allocates instances for a zone-redundant App Service plan, it uses best-effort zone balancing that the underlying Azure virtual machine scale sets provide. An App Service plan is balanced if each zone has the same number of VMs or differs by plus one VM or minus one VM from all other zones. For more information, see [Zone balancing](/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-use-availability-zones#zone-balancing).
133
120
134
-
When you enable zone redundancy on your App Service plan, you also improve your resiliency to updates that the App Service platform rolls out. To learn more, see [Reliability during service maintenance](#reliability-during-service-maintenance).
121
+
- **Physical zone placement:** You can view the [physical availability zone](availability-zones-overview.md#physical-and-logical-availability-zones) used for each of your App Service plan instances. Use the [REST API](/rest/api/appservice/web-apps/get-instance-info), which returns the `physicalZone` value for each instance.
122
+
123
+
```azurecli
124
+
az rest --method get --url https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Web/sites/{appName}/instances?api-version=2024-04-01
125
+
```
126
+
127
+
For App Service plans that aren't configured as zone redundant, the underlying VM instances aren't resilient to availability zone failures. They can experience downtime during an outage in any zone in that region.
135
128
136
129
### Cost
137
130
@@ -157,13 +150,13 @@ If you enable availability zones but specify a capacity of less than two, the pl
157
150
158
151
::: zone pivot="free-shared-basic"
159
152
160
-
- **Create a new App Service plan with zone redundancy.** To deploy a new zone-redundant App Service plan, you must use either the [Premium v2 or Premium v3 plan types](/azure/app-service/overview-hosting-plans). To view more information, ensure that you select the appropriate tier at the top of this page.
153
+
To deploy a new zone-redundant App Service plan, you must use either the [Premium v2-4 plan types](/azure/app-service/overview-hosting-plans). To view more information, ensure that you select the appropriate tier at the top of this page.
161
154
162
155
::: zone-end
163
156
164
157
::: zone pivot="premium"
165
158
166
-
- **Create a new App Service plan with zone redundancy.** To deploy a new zone-redundant App Service plan, select the *Zone redundant* option when you deploy the plan in the Azure portal or set the App Service plan `zoneRedundant` property to `true` in the Azure CLI command, Azure PowerShell command, Bicep file, or Azure Resource Manager template.
159
+
- **Create a new App Service plan with zone redundancy.** To deploy a new zoneredundant App Service plan, select the *Zone redundant* option when you deploy the plan in the Azure portal or set the App Service plan `zoneRedundant` property to `true` in the Azure CLI command, Azure PowerShell command, Bicep file, or Azure Resource Manager template:
167
160
168
161
# [Azure CLI](#tab/azurecli)
169
162
@@ -194,7 +187,7 @@ If you enable availability zones but specify a capacity of less than two, the pl
194
187
195
188
---
196
189
197
-
- **Migration.** If you have an existing App Service plan that supports zone redundancy (the maximum available zones is greater than 1), you can enable zone redundancy by setting the App Service plan's `zoneRedundant` property to `true` in the Azure CLI, your Bicep file, or your Resource Manager template:
190
+
- **Migrate an existing App Service plan to zone-redundancy.** If you have an existing App Service plan that supports zone redundancy (the maximum available zones is greater than 1), you can enable zone redundancy by setting the App Service plan's `zoneRedundant` property to `true` in the Azure CLI, your Bicep file, or your Resource Manager template:
198
191
199
192
```azurecli
200
193
az appservice plan update -g <resource group name> -n <app service plan name> --set zoneRedundant=true sku.capacity=2
@@ -222,11 +215,9 @@ If you enable availability zones but specify a capacity of less than two, the pl
222
215
223
216
- **Create a new App Service plan with zone redundancy.**
224
217
225
-
1. If you don't have a pre-existing zone-redundant App Service Environment, deploy a new zone-redundant App Service Environment. For more information on how to create an App Service Environment, see [Create an App Service Environment](/azure/app-service/environment/creation).
226
-
227
-
218
+
1. If you don't have a pre-existing zone-redundant App Service Environment, deploy a new zone-redundant App Service Environment. For more information on how to create an App Service Environment, see [Create an App Service Environment](/azure/app-service/environment/creation).
228
219
229
-
1. Select the *Zone redundant* option when you deploy the plan in the Azure portal or set the App Service plan `zoneRedundant` property to `true`in the Azure CLI command, Azure PowerShell command, Bicep file, or Resource Manager template.
220
+
1. To create the App Service plan in Azure portal, select *Zone redundant*. To create the plan using Azure CLI command, Azure PowerShell command, Bicep file, or Resource Manager template, set the App Service plan `zoneRedundant` property to `true`, as in the following sample code:
230
221
231
222
# [Azure CLI](#tab/azurecli)
232
223
@@ -260,9 +251,7 @@ If you enable availability zones but specify a capacity of less than two, the pl
260
251
261
252
---
262
253
263
-
- **Migration.** If you have an existing App Service Environment or Isolated v2 App Service plan that supports zone redundancy, you can enable zone redundancy at any time.
264
-
265
-
To enable zone redundancy for the App Service Environment, set the `zoneRedundant` property to `true` or use the Azure CLI.
254
+
- **Migrate an existing App Service plan to zone-redundancy** If you have an existing App Service Environment or Isolated v2 App Service plan that supports zone redundancy, you can enable zone redundancy at any time. To enable zone redundancy for the App Service Environment, set the `zoneRedundant` property to `true` or use the Azure CLI:
266
255
267
256
# [Azure CLI](#tab/azurecli)
268
257
@@ -293,7 +282,7 @@ If you enable availability zones but specify a capacity of less than two, the pl
293
282
> When you change the zone redundancy status of the App Service Environment, you initiate an upgrade that takes 12-24 hours to complete. During the upgrade process, you don't experience any downtime or performance problems.
294
283
295
284
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 has its own independent zone redundancy setting, which means that 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's `zoneRedundant` property to `true` or use the Azure CLI.
296
-
285
+
297
286
# [Azure CLI](#tab/azurecli)
298
287
299
288
```azurecli
@@ -326,7 +315,7 @@ If you enable availability zones but specify a capacity of less than two, the pl
326
315
327
316
---
328
317
329
-
- **Disable zone redundancy.** To disable zone redundancy, you can set the App Service plan or App Service Environment `zoneRedundant` property to `false` or use the Azure CLI.
318
+
- **Disable zone redundancy.** To disable zone redundancy, you can set the App Service plan or App Service Environment `zoneRedundant` property to `false` or use the Azure CLI:
330
319
331
320
```azurecli
332
321
az resource update --ids /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Web/hostingEnvironments/{aseName} --set properties.zoneRedundant=false
@@ -358,6 +347,10 @@ The following section describes what to expect when App Service plans are config
358
347
359
348
### Zone-down experience
360
349
350
+
During an availability zone outage, some aspects of Azure App Service might be affected, even though the application continues to serve traffic. These behaviors include App Service plan scaling, application creation, application configuration, and application publishing.
351
+
352
+
The following section describes what to expect when App Service plans are configured for zone redundancy and one or more availability zones are unavailable:
353
+
361
354
- **Detection and response:** The App Service platform automatically detects failures in an availability zone and initiates a response. No manual intervention is required to initiate a zone failover.
362
355
363
356
- **Active requests:** When an availability zone is unavailable, any requests in progress that are connected to an App Service plan instance in the faulty availability zone are terminated. They need to be retried.
@@ -446,3 +439,4 @@ When you deploy a zone-redundant App Service plan, the uptime percentage defined
0 commit comments