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 d’utilisation du processeur indique l’utilisation du processeur à travers toutes les instances. Un pourcentage élevé d’UC indique que les instances deviennent liées au processeur, ce qui peut entraîner des retards dans le traitement des demandes clientes.
  • Le pourcentage de mémoire capture l’occupation de la mémoire de l’application dans toutes les instances. Un pourcentage élevé de mémoire indique que la mémoire libre peut être faible, ce qui peut entraîner l’échec d’une ou de plusieurs instances.
  • La longueur de file d’attente du disque mesure le nombre de requêtes d’E/S en attente sur toutes les instances. Une longueur de file d’attente de disque élevée signifie que la contention de disque peut se produire.
  • La longueur de la file d’attente Http indique le nombre de requêtes clientes en attente de traitement par l’application web. Si la longueur de la file d’attente Http est importante, les requêtes clientes peuvent échouer avec des erreurs HTTP 408 (délai d’attente).
  • Données entrantes sont le nombre d’octets reçus par toutes les instances.
  • Data Out est le nombre d’octets envoyés dans 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.

Dans la première étape, une règle de mise à l’échelle automatique agrège les valeurs récupérées pour une métrique pour toutes les instances sur une période connue sous le nom de grain 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 l'agrégation de temps . Les options d’agrégation de temps sont Moyenne, Minimum, Maximum, Total, Last et Count.

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. Par conséquent, une règle de mise à l’échelle automatique effectue une deuxième agrégation de la valeur calculée par l’agrégation de 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 sur 10 minutes, par exemple, la règle de mise à l’échelle automatique agrège les 10 valeurs calculées pour le grain de temps.

Le calcul d’agrégation pour la durée peut être différent du calcul d’agrégation pour le grain de temps. Par exemple, si l’agrégation de temps est moyenne et que la métrique collectée est pourcentage d’UC sur un grain de temps d’une minute, chaque minute l’utilisation moyenne du pourcentage d’UC sur toutes les instances de cette minute est calculée.

Pour un autre exemple, supposons que l’agrégation de 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 scale-out ou 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 (par exemple inférieur à, supérieur à, égal à, etc.) pour déterminer comment réagir au seuil. Les actions de scale-out utilisent généralement l'opérateur supérieur à pour comparer la valeur de la métrique au seuil. Les actions de scale-in ont tendance à comparer la valeur de la 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 , spécifié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

Lorsque vous déterminez s’il faut effectuer un scale-out, l’action de mise à l’échelle automatique est effectuée si l’une des règles de scale-out est remplie (la longueur de file d’attente HTTP dépasse 10 ou l’utilisation du processeur dépasse 70 %). Lors de la mise à l’échelle, l’action de mise à l’échelle automatique s’exécute uniquement si toutes les règles de mise à l’échelle sont remplies (la longueur de file d’attente HTTP passe à zéro et l’utilisation du processeur est inférieure à 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.