Skip to content

Commit 3ef3c30

Browse files
authored
Merge pull request #187697 from seligj95/azdocupdates
app service AZ doc updates
2 parents 31ec0e8 + adbb67b commit 3ef3c30

File tree

3 files changed

+33
-11
lines changed

3 files changed

+33
-11
lines changed

articles/app-service/how-to-zone-redundancy.md

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Availability Zone support for public multi-tenant App Service
33
description: Learn how to deploy your App Service so that your apps are zone redundant.
44
author: seligj95
55
ms.topic: article
6-
ms.date: 11/16/2021
6+
ms.date: 2/8/2022
77
ms.author: jordanselig
88
ms.custom: references_regions
99
---
@@ -40,33 +40,46 @@ Zone redundancy is a property of the App Service plan. The following are the cur
4040
- Zone redundancy can only be specified when creating a **new** App Service plan
4141
- Currently you can't convert a pre-existing App Service plan. See next bullet for details on how to create a new App Service plan that supports zone redundancy.
4242
- Zone redundancy is only supported in the newer portion of the App Service footprint
43-
- Currently if you're running on Pv3, then it is possible that you're already on a footprint that supports zone redundancy. In this scenario, you can create a new App Service plan and specify zone redundancy when creating the new App Service plan.
43+
- Currently if you're running on Pv3, then it's possible that you're already on a footprint that supports zone redundancy. In this scenario, you can create a new App Service plan and specify zone redundancy when creating the new App Service plan.
4444
- If you aren't using Pv3 or a scale unit that supports zone redundancy, are in an unsupported region, or are unsure, follow the steps below:
4545
- Create a new resource group in a region that is supported
46-
- This ensures the App Service control plane can find a scale unit in the selected region that supports zone redundancy
46+
- This ensures the App Service control plane can find a scale unit in the selected region that supports zone redundancy
4747
- Create a new App Service plan (and app) in a region of your choice using the **new** resource group
4848
- Ensure the zoneRedundant property (described below) is set to true when creating the new App Service plan
49-
- Must be created using [Azure Resource Manager (ARM) templates](../azure-resource-manager/templates/overview.md)
5049

51-
In the case when a zone goes down, the App Service platform will detect lost instances and automatically attempt to find new replacement instances. If you also have autoscale configured, and if it decides more instances are needed, autoscale will also issue a request to App Service to add more instances (autoscale behavior is independent of App Service platform behavior). It's important to note there's no guarantee that requests for additional instances in a zone-down scenario will succeed since back filling lost instances occurs on a best-effort basis. The recommended solution is to provision your App Service plans to account for losing a zone as described in the next section of this article.
50+
Traffic is routed to all of your available App Service instances. In the case when a zone goes down, the App Service platform will detect lost instances and automatically attempt to find new replacement instances and spread traffic as needed. If you have [autoscale](manage-scale-up.md) configured, and if it decides more instances are needed, autoscale will also issue a request to App Service to add more instances. Note that [autoscale behavior is independent of App Service platform behavior](../azure-monitor/autoscale/autoscale-overview.md) and that your autoscale instance count specification doesn't need to be a multiple of three. It's also important to note there's no guarantee that requests for additional instances in a zone-down scenario will succeed since back filling lost instances occurs on a best-effort basis. The recommended solution is to create and configure your App Service plans to account for losing a zone as described in the next section of this article.
5251

53-
Applications deployed in an App Service plan enabled for zone redundancy will continue to run and serve traffic even if other zones in the same region suffer an outage. However it's possible that non-runtime behaviors including App Service plan scaling, application creation, application configuration, and application publishing may still be impacted from an outage in other Availability Zones. Zone redundancy for App Service plans only ensures continued uptime for deployed applications.
52+
Applications that are deployed in an App Service plan that has zone redundancy enabled will continue to run and serve traffic even if other zones in the same region suffer an outage. However it's possible that non-runtime behaviors including App Service plan scaling, application creation, application configuration, and application publishing may still be impacted from an outage in other Availability Zones. Zone redundancy for App Service plans only ensures continued uptime for deployed applications.
5453

55-
When the App Service platform allocates instances to a zone redundant App Service plan, it uses [best effort zone balancing offered by the underlying Azure Virtual Machine Scale Sets](../virtual-machine-scale-sets/virtual-machine-scale-sets-use-availability-zones.md#zone-balancing). An App Service plan will be "balanced" if each zone has either the same number of VMs, or +/- 1 VM in all of the other zones used by the App Service plan.
54+
When the App Service platform allocates instances to a zone redundant App Service plan, it uses [best effort zone balancing offered by the underlying Azure Virtual Machine Scale Sets](../virtual-machine-scale-sets/virtual-machine-scale-sets-use-availability-zones.md#zone-balancing). An App Service plan will be "balanced" if each zone has either the same number of VMs, or +/- one VM in all of the other zones used by the App Service plan.
5655

5756
## How to Deploy a Zone Redundant App Service
5857

59-
Currently, you need to use an ARM template to create a zone redundant App Service. Once created via an ARM template, the App Service plan can be viewed and interacted with via the Azure portal and CLI tooling. An ARM template is only needed for the initial creation of the App Service plan.
58+
You can create a zone redundant App Service using the [Azure CLI](/cli/azure/install-azure-cli), [Azure portal](https://portal.azure.com), or an [Azure Resource Manager (ARM) template](../azure-resource-manager/templates/overview.md).
6059

61-
The only changes needed in an ARM template to specify a zone redundant App Service are the new ***zoneRedundant*** property (required) and optionally the App Service plan instance count (***capacity***) on the [Microsoft.Web/serverfarms](/azure/templates/microsoft.web/serverfarms?tabs=json) resource. If you don't specify a capacity, the platform defaults to three. The ***zoneRedundant*** property should be set to ***true*** and ***capacity*** should be set based on the workload requirement, but no less than three. A good rule of thumb to choose capacity is to ensure sufficient instances for the application such that losing one zone of instances leaves sufficient capacity to handle expected load.
60+
To enable zone redundancy using the Azure CLI, include the `--zone-redundant` parameter when you create your App Service plan. You can also include the `--number-of-workers` parameter to specify capacity. If you don't specify a capacity, the platform defaults to three. Capacity should be set based on the workload requirement, but no less than three. A good rule of thumb to choose capacity is to ensure sufficient instances for the application such that losing one zone of instances leaves sufficient capacity to handle expected load.
61+
62+
```azurecli
63+
az appservice plan create --resource-group MyResourceGroup --name MyPlan --zone-redundant --number-of-workers 6
64+
```
6265

6366
> [!TIP]
6467
> To decide instance capacity, you can use the following calculation:
6568
>
66-
> Since the platform spreads VMs across 3 zones and you need to account for at least the failure of 1 zone, multiply peak workload instance count by a factor of zones/(zones-1), or 3/2. For example, if your typical peak workload requires 4 instances, you should provision 6 instances: (2/3 * 6 instances) = 4 instances.
69+
> Since the platform spreads VMs across three zones and you need to account for at least the failure of one zone, multiply peak workload instance count by a factor of zones/(zones-1), or 3/2. For example, if your typical peak workload requires four instances, you should provision six instances: (2/3 * 6 instances) = 4 instances.
6770
>
6871
69-
The ARM template snippet below shows the new ***zoneRedundant*** property and ***capacity*** specification.
72+
To create a zone redundant App Service using the Azure portal, enable the zone redundancy option during the "Create Web App" or "Create App Service Plan" experiences.
73+
74+
![zone redundant enablement using the portal](./media/how-to-zone-redundancy/zone-redundancy-portal.png)
75+
76+
The capacity/number of workers/instance count can be changed once the App Service Plan is created by navigating to the **Scale out (App Service plan)** settings.
77+
78+
![capacity update using the portal](./media/how-to-zone-redundancy/capacity-portal.png)
79+
80+
The only changes needed in an Azure Resource Manager template to specify a zone redundant App Service are the ***zoneRedundant*** property (required) and optionally the App Service plan instance count (***capacity***) on the [Microsoft.Web/serverfarms](/azure/templates/microsoft.web/serverfarms?tabs=json) resource. The ***zoneRedundant*** property should be set to ***true*** and ***capacity*** should be set based on the same conditions described previously.
81+
82+
The Azure Resource Manager template snippet below shows the new ***zoneRedundant*** property and ***capacity*** specification.
7083

7184
```json
7285
"resources": [
@@ -97,3 +110,12 @@ The ARM template snippet below shows the new ***zoneRedundant*** property and **
97110
98111
> [!div class="nextstepaction"]
99112
> [ARM Quickstart Templates](https://azure.microsoft.com/resources/templates/)
113+
114+
> [!div class="nextstepaction"]
115+
> [Learn how to scale up an app in Azure App Service](manage-scale-up.md)
116+
117+
> [!div class="nextstepaction"]
118+
> [Overview of autoscale in Microsoft Azure](../azure-monitor/autoscale/autoscale-overview.md)
119+
120+
> [!div class="nextstepaction"]
121+
> [Manage disaster recovery](manage-disaster-recovery.md)
173 KB
Loading
53.9 KB
Loading

0 commit comments

Comments
 (0)