Les Virtual Machine Scale Sets
Présentation
Les Virtual Machine Scale Sets (abrégés en VMSS et signifiant groupes de machines virtuelles identiques dans Azure), permettent de déployer et de gérer un ensemble de machines virtuelles. Ils facilitent l’exécution d’une application sur plusieurs instances. Ils répondent notamment à deux objectifs complémentaires : améliorer la disponibilité et adapter la capacité de traitement à la charge.
Le fonctionnement
Pour créer automatiquement des instances, le groupe utilise un modèle de configuration qui définit notamment l’image du système d’exploitation, la taille des machines, les disques et les paramètres réseau. Le déploiement des logiciels doit également être prévu afin que les nouvelles instances puissent assurer leur rôle.
Les machines peuvent être associées à un répartiteur de charge, comme Azure Load Balancer, ou à Azure Application Gateway pour une application Web. Ce composant distribue les demandes entre les instances opérationnelles.
Ce schéma présente un exemple de VMSS combinant haute disponibilité et élasticité : les instances sont réparties entre plusieurs zones, tandis que leur nombre évolue selon les règles de mise à l’échelle configurées.
La haute disponibilité
Un VMSS permet d’exécuter plusieurs instances d’une application. Lorsqu’une instance devient indisponible, les autres peuvent continuer à traiter les demandes, à condition que la répartition du trafic et les contrôles vérifiant la disponibilité soient correctement configurés.
Selon le déploiement choisi, les machines peuvent être réparties entre des domaines de défaillance ou entre plusieurs zones de disponibilité. Un déploiement dans plusieurs zones améliore la protection contre la perte d’une zone. La création d’un VMSS ne fournit donc pas, à elle seule, cette protection : elle dépend du placement des instances.
L’adaptation à la charge
Les VMSS permettent de réaliser une mise à l’échelle horizontale ; la capacité évolue en ajoutant ou en supprimant des machines virtuelles. Le nombre d’instances peut être modifié manuellement ou automatiquement. La mise à l’échelle automatique, appelée autoscaling (composée du scale-in et du scale-out), peut s’appuyer sur des règles utilisant des métriques, comme l’utilisation du processeur, ou sur une planification horaire.
Par exemple, une application pourrait utiliser les règles suivantes :
| Paramètre | Exemple de configuration |
|---|---|
| Nombre minimal d’instances | Conserver au moins deux machines. |
| Nombre maximal d’instances | Ne pas dépasser six machines. |
| Augmentation de capacité | Ajouter une machine si l’utilisation moyenne du processeur dépasse 70 % pendant dix minutes. |
| Réduction de capacité | Supprimer une machine si cette utilisation reste inférieure à 30 % pendant vingt minutes. |
Aussi, des durées d’observation et de stabilisation permettent d’éviter des ajouts et des suppressions trop fréquents. La création et l’initialisation d’une nouvelle machine prenant également du temps, cette adaptation n’est pas instantanée.
Les modes d’orchestration
Le mode d’orchestration détermine la manière dont Azure organise et gère les machines du groupe.
| Mode | Description |
|---|---|
| Uniforme - Uniform | Les instances sont créées à partir d’un modèle commun et gérées au moyen des mécanismes propres au VMSS. Ce mode convient notamment aux ensembles homogènes d’instances. |
| Flexible - Flexible | Les instances sont des machines virtuelles Azure standard, administrables individuellement. Ce mode offre davantage de souplesse et peut accueillir des machines de configurations différentes. |
Malgré l’appellation « machines virtuelles identiques », toutes les machines ne sont donc pas nécessairement identiques, notamment en mode flexible. Le mode d’orchestration est choisi lors de la création du groupe et ne peut pas être modifié ensuite.
Exemple de mise en œuvre
Prenons un site de vente en ligne exécuté sur deux machines virtuelles.
Lors d’une campagne promotionnelle, le nombre de visiteurs augmente. Une règle de mise à l’échelle détecte une utilisation élevée du processeur dans le temps, et déclenche l’ajout d’instances. Une fois initialisées et considérées comme opérationnelles, ces machines participent au traitement des demandes. Lorsque la fréquentation diminue, des instances peuvent être supprimées, tout en conservant le minimum configuré. Cette organisation permet d’adapter les ressources à l’activité.
Toutefois, l’application doit supporter l’ajout et la suppression des instances. Par exemple, des données indispensables ne doivent pas être conservées uniquement dans la mémoire ou sur le disque local d’une machine susceptible d’être supprimée. La disponibilité de la base de données et des autres dépendances doit également être réalisée.
La différence avec un groupe à haute disponibilité
Un groupe à haute disponibilité organise principalement le placement des machines virtuelles pour limiter leur exposition à des défaillances communes.
Un VMSS apporte une gestion de l’ensemble des instances et permet notamment d’automatiser l’évolution de leur nombre. Il peut également être configuré pour les répartir entre plusieurs zones de disponibilité.
Le coût
Le VMSS lui-même ne génère pas de frais supplémentaires. Cependant, les ressources utilisées (machines virtuelles, disques et réseau, etc.) sont facturées. L’augmentation du nombre d’instances accroît donc les dépenses, tandis que leur réduction peut limiter le coût pendant les périodes où l'activité est plus faible.
