Identifier les facteurs pour l’implémentation de la mise à l’échelle automatique

Effectué

La mise à l’échelle automatique vous permet de spécifier les conditions dans lesquelles une application web doit faire l’objet d’un scale-out, puis d’un scale-in. Une mise à l’échelle automatique efficace garantit que des ressources suffisantes sont disponibles pour gérer de gros volumes de demandes aux périodes de pointe, tout en limitant les coûts quand la demande diminue.

Vous pouvez configurer la mise à l’échelle automatique pour détecter quand effectuer un scale-out et un scale-in en fonction d’une combinaison de facteurs et de l’utilisation des ressources. Vous pouvez également configurer la mise à l’échelle automatique en fonction d’une planification.

Dans cette unité, vous découvrez comment spécifier les facteurs qui peuvent être utilisés pour mettre à l’échelle un service automatiquement.

Mise à l’échelle automatique et plans App Service

Quand vous créez une application web, vous créez également un plan App Service. Le plan App Service définit le système d’exploitation (Windows ou Linux) utilisé pour héberger l’application web. Le niveau tarifaire du plan spécifie le matériel disponible (capacité mémoire, capacité de traitement du processeur, stockage sur disque) et les autres services, comme des sauvegardes régulières pour chaque instance de l’application web.

La mise à l’échelle automatique est une fonctionnalité du plan App Service utilisé par l’application web. Quand l’application web fait l’objet d’un scale-out, Azure démarre plus d’instances du matériel défini par le plan App Service pour l’application.

Pour que les coûts de la mise à l’échelle automatique restent maîtrisés, un plan App Service a une limite d’instances. Les plans rattachés à des niveaux tarifaires plus coûteux ont des limites d’instances plus élevées. La mise à l’échelle automatique ne peut pas dépasser la limite d’instances de son plan App Service. Par exemple, la série de plans de service Standard prend en charge jusqu’à 10 instances avec un coût estimé de 0,40 $/heure pour chaque instance. La série de plans de service Premium prend en charge jusqu’à 20 instances avec un coût estimé de 0,80 $/heure pour chaque instance. Le plan de service Isolé autorise jusqu’à 100 instances avec un coût estimé de 1,60 $/heure pour chaque instance.

Remarque

Tous les niveaux tarifaires du plan App Service ne prennent pas en charge la mise à l’échelle automatique.

Conditions de mise à l’échelle automatique

Vous indiquez comment doit être effectuée la mise à l’échelle automatique en créant des conditions de mise à l’échelle automatique. Azure fournit deux options pour la mise à l’échelle automatique :

  • Effectuez une mise à l’échelle en fonction d’une métrique, comme la longueur de la file d’attente du disque ou le nombre de requêtes HTTP en attente de traitement.
  • Mise à l’échelle à un nombre d’instances spécifique en fonction d’une planification. Par exemple, vous pouvez prévoir un scale-out à une heure spécifique de la journée, ou à une date ou un jour spécifique de la semaine. Vous pouvez également spécifier une heure ou une date pour que le système effectue un scale-in.

La mise à l’échelle à un nombre d’instances spécifique vous permet uniquement d’effectuer un scale-out jusqu’à un nombre défini d’instances. Pour effectuer le scale-out de façon incrémentielle, vous pouvez combiner une métrique et une planification dans une même condition de mise à l’échelle automatique. Par exemple, vous pouvez faire en sorte que le système fasse l’objet d’un scale-out si le nombre de requêtes HTTP dépasse un certain seuil, mais seulement entre certaines heures de la journée.

Vous pouvez créer plusieurs conditions de mise à l’échelle automatique pour gérer différentes métriques et planifications. Azure met automatiquement à l’échelle votre service quand une des conditions que vous avez définies s’applique. Chaque plan App Service a également une condition de mise à l’échelle automatique par défaut qui est utilisée si aucune des autres conditions ne s’applique. La condition de mise à l’échelle automatique par défaut est toujours active et n’a pas de planification.

Métriques pour les règles de mise à l’échelle automatique

Pour une mise à l’échelle automatique par métrique, vous devez définir une ou plusieurs règles de mise à l’échelle automatique. Une règle de mise à l’échelle automatique spécifie une métrique à superviser et comment la mise à l’échelle automatique doit répondre quand cette métrique dépasse un seuil défini. La liste suivante décrit les métriques que vous pouvez surveiller pour une application web :

  • Pourcentage de processeur indique l’utilisation du processeur pour toutes les instances. Une valeur élevée de Pourcentage de processeur indique que les instances commencent à être limitées par le processeur, ce qui peut entraîner des retards dans le traitement des requêtes de clients.
  • Pourcentage de mémoire capture l’occupation mémoire de l’application pour toutes les instances. Une valeur élevée de Pourcentage de mémoire indique que la mémoire libre pourrait être insuffisante, ce qui pourrait entraîner l’échec d’une ou de plusieurs instances.
  • Longueur de la file d’attente du disque mesure le nombre de demandes d’E/S en suspens pour toutes les instances. Une valeur élevée de Longueur de la file d’attente du disque signifie qu’il peut y avoir des problèmes de contention sur le disque.
  • Longueur de la file d’attente HTTP montre le nombre de requêtes de clients en attente de traitement par l’application web. Si la valeur de Longueur de la file d’attente HTTP est élevée, les requêtes de clients risquent d’échouer avec des erreurs HTTP 408 (Délai d’expiration dépassé).
  • Données entrantes est le nombre d’octets reçus pour toutes les instances.
  • Données sortantes est le nombre d’octets envoyés pour toutes les instances.

Vous pouvez également effectuer une mise à l’échelle en fonction de métriques pour les autres services Azure. Par exemple, si une application web traite des demandes provenant d’une file d’attente Service Bus, vous pouvez lancer plus d’instances de cette application si le nombre d’éléments présents dans une file d’attente Azure Service Bus dépasse une longueur critique.

Comment une règle de mise à l’échelle automatique analyse les métriques

La mise à l’échelle automatique repose sur l’analyse des tendances des valeurs de métriques dans le temps et sur toutes les instances. L’analyse est un processus en plusieurs étapes.

Au cours de la première étape, une règle de mise à l’échelle automatique agrège les valeurs récupérées pour une métrique concernant toutes les instances sur une période de temps appelée fragment de temps. Chaque mesure a son propre fragment de temps intrinsèque, mais dans la plupart des cas, cette période est d’une minute. La valeur agrégée est appelée agrégation de temps. Les options d’agrégation du temps sont Moyenne, Minimum, Maximum, Total, Dernier et Nombre.

Une minute est un intervalle court pour déterminer si un changement dans une métrique est d’une durée suffisante pour justifier une mise à l’échelle automatique. Ainsi, une règle de mise à l’échelle automatique effectue une deuxième agrégation de la valeur calculée par l’agrégation du temps sur une période plus longue spécifiée par l’utilisateur, appelée Durée. La durée minimale est de cinq minutes. Si la Durée est définie par exemple sur 10 minutes, la règle de mise à l’échelle automatique agrège les 10 valeurs calculées pour le fragment de temps.

Le calcul de l’agrégation pour la Durée peut être différent du calcul de l’agrégation pour le fragment de temps. Par exemple, si l’agrégation du temps est Moyenne et que la métrique collectée est Pourcentage de processeur sur un fragment de temps d’une minute, c’est le pourcentage moyen d’utilisation du processeur sur toutes les instances pour cette minute qui est calculé.

Pour un autre exemple, supposons que l’agrégation du temps est définie sur Maximum et que la Durée de la règle est définie sur 10 minutes. Cet exemple de configuration va utiliser le maximum des 10 valeurs moyennes pour le pourcentage d’utilisation du processeur pour déterminer si le seuil de la règle a été franchi.

Actions de mise à l’échelle automatique

Quand une règle de mise à l’échelle automatique détecte qu’une métrique a atteint un certain seuil, elle peut effectuer une action de mise à l’échelle automatique. Une action de mise à l’échelle automatique peut être un scale-out ou un scale-in. Une action de scale-out augmente le nombre d’instances, tandis qu’une action de scale-in le réduit. Une action de mise à l’échelle automatique utilise un opérateur (tel que inférieur à, supérieur à, égal à, etc.) pour déterminer comment réagir au seuil. En règle générale, les actions de scale-out utilisent l’opérateur supérieur à pour comparer la valeur de métrique au seuil. Les actions de scale-in ont tendance à comparer la valeur de métrique au seuil avec l’opérateur inférieur à. Une action de mise à l’échelle automatique peut également définir le nombre d’instances à un niveau spécifique, au lieu d’incrémenter ou de décrémenter le nombre disponible.

Une action de mise à l’échelle automatique a une période de refroidissement, exprimée en minutes. Pendant la période de refroidissement, la règle de mise à l’échelle n’est pas redéclenchée. La période de refroidissement permet au système de se stabiliser entre des événements de mise à l’échelle. Rappelez-vous que le démarrage ou l’arrêt des instances prend un certain temps : les métriques collectées peuvent donc ne pas montrer de changements significatifs pendant plusieurs minutes. La période de refroidissement minimale est de cinq minutes.

Appariement des règles de mise à l’échelle automatique

Vous devez planifier un scale-in quand la charge de travail diminue. Envisagez de définir des règles de mise à l’échelle automatique par paires dans la même condition de mise à l’échelle automatique. Une règle de mise à l’échelle automatique doit indiquer comment effectuer un scale-out du système quand une métrique dépasse un seuil haut. Une autre règle doit ensuite définir comment effectuer un scale-in du système quand la même métrique tombe en dessous d’un seuil bas.

Combinaison de règles de mise à l’échelle automatique

Une même condition de mise à l’échelle automatique peut contenir plusieurs règles de mise à l’échelle automatique (comme une règle de scale-out et la règle de scale-in correspondante). Toutefois, il n’est pas nécessaire que les règles de mise à l’échelle automatique dans une condition de mise à l’échelle automatique soient directement liées. Par exemple, vous pouvez définir les quatre règles suivantes dans une même condition de mise à l’échelle automatique :

  • Si la longueur de la file d’attente HTTP dépasse 10, effectuer un scale-out de 1
  • Si l’utilisation du processeur dépasse 70 %, effectuer un scale-out de 1
  • Si la longueur de la file d’attente HTTP est égale à zéro, effectuer un scale-in de 1
  • Si l’utilisation du processeur descend sous 50 %, effectuer un scale-in de 1

Quand il s’agit de déterminer s’il faut effectuer un scale-out, l’action de mise à l’échelle automatique est effectuée si une des règles de scale-out est satisfaite (la longueur de la file d’attente HTTP dépasse 10 ou l’utilisation du processeur dépasse 70 %). Dans le cas du scale-in, l’action de mise à l’échelle automatique s’exécute seulement si toutes les règles de scale-in sont satisfaites (la longueur de la file d’attente HTTP tombe à zéro et l’utilisation du processeur passe sous 50 %). Si vous devez effectuer un scale-in seulement si une règle de scale-in est satisfaite, vous devez définir les règles dans des conditions de mise à l’échelle automatique distinctes.