Configurer un groupe de machines virtuelles identiques

Effectué

Quand vous effectuez une mise à l’échelle, vous ajoutez des instances à votre groupe de machines virtuelles identiques. Dans le scénario de l’entreprise de transport, la mise à l’échelle est une bonne manière de gérer le nombre fluctuant de demandes au fil du temps. La mise à l’échelle ajuste le nombre de machines virtuelles qui exécutent l’application web à mesure que le nombre d’utilisateurs change. De cette façon, le système conserve un temps de réponse uniforme, quelle que soit la charge.

Dans cette unité, vous allez apprendre à mettre à l’échelle un groupe de machines virtuelles identiques. Vous pouvez effectuer une mise à l’échelle manuelle en définissant explicitement le nombre d’instances de machine virtuelle dans le groupe identique. Vous pouvez aussi configurer une mise à l’échelle automatique en définissant des règles de mise à l’échelle qui déclenchent l’allocation et la désallocation de machines virtuelles. Ces règles de mise à l’échelle déterminent quand mettre à l’échelle le système en surveillant différentes métriques de performances.

Mettre à l’échelle manuellement des groupes de machines virtuelles identiques

Vous mettez à l’échelle un groupe de machines virtuelles identiques manuellement en augmentant ou en diminuant le nombre d’instances. Vous pouvez effectuer cette tâche par programmation ou dans le portail Azure.

Le code suivant utilise Azure CLI pour changer le nombre d’instances dans un groupe de machines virtuelles identiques :

az vmss scale \
  --name webServerScaleSet \
  --resource-group MyResourceGroup \
  --new-capacity 6

Mettre l’échelle automatiquement des groupes de machines virtuelles identiques

La mise à l’échelle manuelle est pratique dans certaines circonstances. Cependant, dans de nombreux cas, la mise à l’échelle automatique est préférable. Elle permet au système de contrôler le nombre d’instances d’un groupe identique.

Vous pouvez baser la mise à l’échelle automatique sur :

  • Planification : utilisez cette approche si vous savez que vous avez une charge de travail accrue sur une date ou une période spécifiée.
  • Métriques : ajustez la mise à l’échelle en surveillant les indicateurs de performance associés à l'ensemble de mise à l'échelle. Quand ces métriques dépassent un seuil spécifié, le groupe identique peut démarrer automatiquement de nouvelles instances de machine virtuelle. Quand les métriques indiquent que les ressources supplémentaires ne sont plus nécessaires, le groupe identique peut arrêter les instances excédentaires.

Définir les conditions, règles et limites de la mise à l’échelle automatique

La mise à l’échelle automatique est basée sur un ensemble de conditions, de règles et de limites. Une condition de mise à l’échelle combine l’heure et un ensemble de règles de mise à l’échelle. Si l’heure actuelle se trouve dans la période définie dans la condition de mise à l’échelle, les règles de mise à l’échelle de la condition sont évaluées. Les résultats de cette évaluation déterminent s’il faut ajouter ou supprimer des instances dans le groupe identique. La condition de mise à l’échelle définit également les limites de mise à l’échelle pour le nombre maximal et le nombre minimal d’instances.

Dans le scénario de l’entreprise de transport, vous pouvez ajouter des règles de mise à l’échelle qui supervisent l’utilisation du processeur dans le groupe identique. Si l’utilisation du processeur dépasse le seuil de 75 %, la règle de mise à l’échelle peut augmenter le nombre d’instances de machine virtuelle. Une deuxième règle de mise à l’échelle peut également superviser l’utilisation du processeur, mais réduire le nombre d’instances de machines virtuelles quand l’utilisation passe sous les 50 %. Comme l’application est mondiale, ces règles doivent être actives à tout moment, et pas seulement à des heures spécifiques.

Un groupe de machines virtuelles identiques peut contenir de nombreuses conditions de mise à l’échelle. Chaque condition de mise à l’échelle satisfaite est traitée. Un groupe identique peut également contenir une condition de mise à l’échelle par défaut à utiliser si aucune autre condition de mise à l’échelle ne correspond aux métriques de temps et de performances actuelles. La condition de mise à l’échelle par défaut est toujours active. Il ne contient aucune règle de mise à l’échelle, agissant efficacement comme une condition de mise à l’échelle null qui ne s'étend ni ne se réduit. Toutefois, vous pouvez modifier la condition de mise à l’échelle par défaut pour définir un compte d'instances par défaut, ou ajouter une paire de règles de mise à l’échelle qui augmentent et diminuent.

Utiliser la mise à l’échelle automatique basée sur une planification

La mise à l’échelle basée sur une planification spécifie une heure de début et une heure de fin ainsi que le nombre d’instances à ajouter au groupe identique. La capture d’écran suivante montre un exemple dans le portail Azure. Le nombre d’instances passe à 20 (scale-out) entre 6h00 et 18h00 le lundi et le mercredi. En dehors de ces heures, s’il n’y a pas d’autres conditions de mise à l’échelle, la condition de mise à l’échelle par défaut est appliquée.

Dans ce cas, la règle par défaut met à l’échelle le système en le ramenant à deux instances. Cette valeur est la valeur Maximale dans cette condition d’échelle par défaut.

Capture d’écran montrant un exemple de condition de mise à l’échelle basée sur une planification.

Utiliser une mise à l’échelle automatique basée sur des métriques

Une règle de mise à l’échelle basée sur des métriques spécifie les ressources à superviser, comme l’utilisation du processeur ou le temps de réponse. Cette règle de mise à l’échelle ajoute ou supprime des instances du groupe identique en fonction des valeurs de ces métriques. Vous pouvez spécifier des limites sur le nombre d’instances pour empêcher un scale-in ou un scale-out excessif sur un groupe identique.

Dans l’exemple de scénario, vous voulez augmenter le nombre d’instances d’une unité quand l’utilisation moyenne du processeur dépasse 75 %. Vous voulez aussi limiter l’opération de scale-out à 50 instances. Cette limite peut aider à empêcher une mise à l’échelle coûteuse provoquée par une attaque. De même, vous voulez effectuer un scale-in quand l’utilisation moyenne du processeur passe sous la barre des 50 %.

Ces métriques sont couramment utilisées pour superviser un groupe de machines virtuelles identiques :

  • Pourcentage d’UC : Cette métrique indique l’utilisation du processeur sur toutes les instances. Une valeur élevée indique que les instances commencent à utiliser le processeur de manière intensive, ce qui peut retarder le traitement des demandes des clients.
  • Flux entrants et flux sortants : ces métriques montrent la vitesse à laquelle le trafic réseau circule vers et depuis les machines virtuelles dans le groupe de mise à l'échelle.
  • Opérations de lecture sur disque/s et Opérations d’écriture sur disque/s : Ces métriques indiquent le volume d’E/S disque sur le groupe identique.
  • Profondeur de file d’attente des disques de données : cette métrique indique le nombre de requêtes d’E/S adressées uniquement aux disques de données sur les machines virtuelles qui attendent d’être pris en charge.

Une règle de mise à l’échelle agrège les valeurs récupérées pour une métrique sur toutes les instances. Il agrège les valeurs sur une période appelée grain de temps. Chaque métrique a un 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, dernier et compte.

Un intervalle d’une minute est trop court pour déterminer si un changement de la métrique est suffisamment long pour justifier une mise à l’échelle automatique. Une règle de mise à l’échelle passe à une deuxième étape, agrégeant la valeur de l’agrégation de temps sur une période plus longue spécifiée par l’utilisateur. Cette période est appelée durée. La durée minimale est de cinq minutes. Par exemple, si la durée est définie sur 10 minutes, la règle de mise à l’échelle agrège les dix valeurs calculées pour le fragment de temps.

Le calcul de l’agrégation de la durée peut différer du calcul de l’agrégation du fragment de temps. Par exemple, supposons que l’agrégation temporelle soit une moyenne et que la statistique collectée soit le pourcentage d’utilisation CPU sur un grain de temps d’une minute. Pour chaque minute, le pourcentage moyen d’utilisation du processeur sur toutes les instances pendant cette minute est calculé. Si la statistique de grain de temps est définie sur une valeur maximale et que la durée de la règle est définie sur 10 minutes. Ensuite, le maximum des 10 valeurs moyennes pour le pourcentage d’utilisation du processeur détermine si le seuil de règle a été franchi.

Lorsqu’une règle d’échelle détecte qu’une métrique dépasse un seuil, elle peut effectuer une action de mise à l’échelle. Une action de mise à l’échelle peut être un scale-out ou un scale-in. Une action de scale-out augmente le nombre d’instances. Une action de scale-in réduit le nombre d’instances.

Une action d’échelle utilise un opérateur tel que inférieur, supérieur ou égal à, 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 définit également le nombre d’instances à un niveau spécifique, au lieu d’en incrémenter ou d’en décrémenter le nombre disponible.

Une action de mise à l’échelle a une période de refroidissement , spécifiée en minutes. Pendant cette période, la règle de mise à l’échelle n’est pas redéclenchée. Le « refroidissement » permet au système de se stabiliser entre des événements de mise à l’échelle. Le démarrage ou l’arrêt des instances prenant un certain temps, les métriques collectées peuvent ne pas présenter de changements significatifs pendant plusieurs minutes. La période de refroidissement minimale est de cinq minutes.

Enfin, vous devriez planifier un scale-in quand la charge de travail diminue. Envisagez de définir des règles de mise à l’échelle par paires dans la même condition de mise à l’échelle. Une règle de mise à l’échelle doit indiquer comment effectuer un scale-out du système quand une métrique dépasse un seuil supérieur. L’autre règle doit définir comment effectuer un scale-in du système quand la même métrique passe en dessous d’un seuil inférieur. Ne définissez pas les deux seuils sur la même valeur. Sinon, vous pourriez déclencher une série d’événements oscillant entre le scale-out et le scale-in.

L’illustration suivante montre un exemple de règle de mise à l’échelle définie dans le portail Azure.

Capture d’écran d’une règle de mise à l’échelle basée sur des métriques dans le portail Azure.