Implémenter la mise à l’échelle par application pour l’hébergement à haute densité

Remarque

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Vous pouvez mettre à l’échelle vos applications Azure App Service en mettant à l’échelle le plan App Service sur lequel ils s’exécutent. Par défaut, la propriété au niveau perSiteScaling du plan est false, et chaque application et chaque emplacement de déploiement utilise toutes les instances disponibles dans le forfait.

Lorsque perSiteScaling est true, chaque application et chaque emplacement de déploiement peuvent avoir leur propre siteConfig.numberOfWorkers limite. Par exemple, un plan peut avoir une capacité configurée de 10 travailleurs tandis qu’une application a une limite configurée de cinq travailleurs. Chaque emplacement de déploiement a sa propre limite ; la configuration de l’application de production ne configure pas aussi ses emplacements.

Remarque

  • La mise à l’échelle par application est disponible uniquement pour les niveaux tarifaires Standard, Premium, Premium V2, Premium V3 et Isolé .
  • Une limite par application ne réduit pas la capacité dédiée configurée pour le forfait App Service ni sa facturation elle-même.

Gardez ces valeurs distinctes :

  • Capacité du forfait configuré : La valeur du forfait sku.capacity.
  • Limite de rôle de travail configurée pour l’application ou l’emplacement : valeur de la ressource siteConfig.numberOfWorkers.
  • Instances actives de l’application observées : observation ponctuelle au moment de l’exécution. Le nombre réel ne peut pas dépasser le nombre de travailleurs disponibles dans le régime. La réduction du nombre d’instances du plan peut ramener ce nombre en dessous de la limite configurée pour l’application ou l’emplacement.

La plateforme place une application sur différents employés de plans disponibles en adoptant une approche de meilleur effort. Le placement est indépendant des métriques.

Scenario Sémantique des valeurs
Limite de 1 L’application ou le slot peut utiliser au plus un seul worker disponible du plan. Choisissez cette valeur uniquement lorsque le placement d’un seul employé est acceptable pour la charge de travail.
Limite supérieure à 1 La valeur limite le nombre d’employés distincts que l’application ou la machine à sous peut utiliser. Les instances actives réelles peuvent être moins nombreuses.
Limite supérieure à la capacité disponible du forfait Le nombre de workers disponibles plafonne le nombre réel d’instances de l’application ou de l’emplacement de déploiement.
Réduction planifiée de la capacité L’application ou la machine à sous peut fonctionner avec moins de travailleurs que sa limite configurée après la suppression des employés du régime.

La mise à l’échelle par application est fixe, avec une répartition indépendante des métriques parmi les instances de travail disponibles du plan. Il ne répond pas à la demande ni ne modifie la capacité du plan. Pour modifier la capacité en fonction de la demande, utilisez l’échelle automatique ou l’autoscale Azure Monitor.

Important

La redondance de zone distribue les instances du plan App Service ; elle ne crée pas de répliques d’applications cachées. Avec la mise à l’échelle par application, une limite de 1 pour une application ou un slot autorise le placement sur au plus une instance de plan et ne doit pas être traitée comme une réplique simultanée entre zones. Des limites de 2 ou plus permettent un déploiement sur plusieurs instances de travail du plan distinctes, mais n’offrent aucune garantie publique que ces instances d’application soient réparties sur plusieurs zones physiques. Pour des conseils sur la conception de la fiabilité, voir Fiabilité dans les services d’application.

Modèle de propriété et prérequis

Utilisez un fourchet tarifaire pris en charge, un compte pouvant mettre à jour le forfait, l’application, le créneau, ainsi que la version actuelle de l’outil choisi. Les exemples utilisent Azure CLI 2.89.1 et Az PowerShell 16.2.0.

Scope Propriété de la ressource Exemple
Caractéristique du plan properties.perSiteScaling true
Planifier la capacité sku.capacity 10
Limite souhaitée par l’application properties.siteConfig.numberOfWorkers 5
Limite de slot désirée properties.siteConfig.numberOfWorkers 2
Réponse GET de la configuration de l’application ou de l’emplacement. properties.numberOfWorkers 5 ou 2

Dans Azure CLI, les options au nom similaire ont des champs d’application différents : az appservice plan ... --number-of-workers définissent la capacité du plan, tandis que az webapp config set ... --number-of-workers fixent l’application ou la limite de créneaux.

Configurer la mise à l’échelle par application

Utilisez l’onglet pour votre outil préféré. Remplacez les noms et emplacements provisoires avant d’exécuter une commande ou de déployer un modèle.

Choisissez soit l’étape de création, soit l’étape de mise à jour pour le plan. L’étape de mise à jour ne change que perSiteScaling; elle ne modifie pas la capacité du plan existant.

resourceGroup='<resource-group-name>'
planName='<app-service-plan-name>'
appName='<app-name>'
slotName='staging'
location='westus3'

# Create a plan with capacity 10 and per-app scaling.
az appservice plan create \
    --resource-group $resourceGroup \
    --name $planName \
    --location $location \
    --sku P1V3 \
    --number-of-workers 10 \
    --per-site-scaling

# Or enable per-app scaling on an existing plan without changing its capacity.
az appservice plan update \
    --resource-group $resourceGroup \
    --name $planName \
    --set properties.perSiteScaling=true

# Configure the production app and its staging slot independently.
az webapp config set \
    --resource-group $resourceGroup \
    --name $appName \
    --number-of-workers 5

az webapp config set \
    --resource-group $resourceGroup \
    --name $appName \
    --slot $slotName \
    --number-of-workers 2

Ici, le plan --number-of-workers 10 , c’est la capacité. L’option de configuration de l’application web portant le même nom est l’application ou la limite de créneaux souhaitée. Inspectez les valeurs configurées :

az appservice plan show \
    --resource-group $resourceGroup \
    --name $planName \
    --query "{planCapacity:sku.capacity, perSiteScaling:perSiteScaling}"

az webapp config show \
    --resource-group $resourceGroup \
    --name $appName \
    --query "{appWorkerLimit:numberOfWorkers}"

az webapp config show \
    --resource-group $resourceGroup \
    --name $appName \
    --slot $slotName \
    --query "{slotWorkerLimit:numberOfWorkers}"

Pour les détails des commandes, voir le plan d’application d’az-appservice et la configuration d’az-webapp.

Vérifier la configuration

Vérifiez chaque valeur configurée après un changement ou un déploiement.

Valeur Exemple attendu Où vérifier
Caractéristique du plan true Réponse de plan properties.perSiteScaling
Planifier la capacité 10 Réponse du plan sku.capacity
Limite souhaitée par l’application de production 5 Réponse config/web de production properties.numberOfWorkers
Limite souhaitée du slot de préproduction 2 Réponse du créneau config/webproperties.numberOfWorkers

Ces valeurs sont la configuration, et non les comptes d’instances actifs observés. Le placement en temps d’exécution reste le meilleur effort et est limité par les travailleurs disponibles dans le plan. Avant de combiner la redimensionnabilité par application avec la redondance de zone, examinez la capacité du forfait et chaque limite d’application ou de slot dans Définir la redondance de zone pour un plan App Service existant.

Configurez un hébergement haute densité pour votre scénario

La mise à l’échelle par application est disponible aussi bien dans les régions Azure mondiales que dans les environnements de services applicatifs. Choisissez les limites des applications et des emplacements en fonction de la capacité de charge de travail et des exigences de fiabilité, plutôt que d’appliquer une seule limite à chaque charge de travail.

Pour un scénario d’hébergement à haute densité :

  1. Désignez un plan App Service en tant que plan haute densité et appliquez-lui un scale-out de façon à obtenir la capacité souhaitée.

  2. Définissez l’indicateur PerSiteScaling sur true sur le plan App Service.

  3. Fixez la limite de numberOfWorkers chaque application et de chaque emplacement de déploiement en fonction de ses besoins.

    • Une limite de 1 fournit la densité la plus élevée, mais utilisez-la uniquement pour les charges de travail où le placement sur au maximum un travailleur de régime est acceptable.
    • Utilisez une limite de 2 ou plus lorsque la charge de travail doit pouvoir être placée sur plusieurs nœuds de travail distincts du plan, sous réserve de la capacité disponible du plan.
  4. Examinez les limites de façon indépendante selon l’évolution des exigences de charge de travail. Par exemple, une application à usage plus élevé peut utiliser une limite de 3 pour plus de capacité de traitement, tandis qu’une autre application peut être utilisée 1 lorsque le placement d’un seul employé est approprié.