AVD + mise à l’échelle dynamique

Microsoft vient d’annoncer lors de l’Ignite 2024 le plan de mise à l’échelle dynamique pour Azure Virtual Desktop. Mais qu’apporte donc cette nouvelle méthode dite dynamique à cette fonctionnalité déjà existante sur Azure Virtuel Desktop? C’est ce que nous allons voir ensemble dans cet article, encore dans un état de préversion à l’heure où ces lignes sont écrites.

Mais qu’est-ce que le plan de mise à l’échelle ?

La plan de mise à l’échelle, ou autoscaling en anglais, est déjà disponible pour les environnements AVD mutualisés et individuels depuis déjà quelques temps. Deux articles parlant de ce sujet sont déjà disponibles sur ce blog :

La mise à l’échelle automatique vous permet d’effectuer un scale-up ou un scale-down de vos hôtes de session de machines virtuelles dans un pool d’hôtes pour optimiser les coûts de déploiement.

Microsoft Learn

Microsoft a mis à jour sa documentation afin d’expliquer en détail les 4 grandes fonctionnalités de la mise à l’échelle dans le cadre d’un environnement AVD partagé :

Voici d’ailleurs une représentation diapo de trois d’entre elles :

Grâce à ces différents mécanismes, le plan de mise à l’échelle vous permet de moduler à la hausse ou à la baisse le nombre de VMs allumées à un moment précis selon les besoins.

Mais quelles sont les 4 phases du plan de mise à l’échelle ?

Vous pouvez établir un plan de mise à l’échelle basé sur :

  • Des créneaux horaires exprimés en heures.
  • Des créneaux journaliers exprimés en jours.

Tous les plannings de mise à l’échelle AVD comprennent les 4 phases suivantes :

  1. Montée en charge : C’est le moment de la journée où vous anticipez que les utilisateurs commenceront à se connecter aux hôtes de session. Par exemple, si votre bureau ouvre à 9h, vous pouvez prévoir que les utilisateurs commencent à se connecter entre 8h30 et 9h.
  2. Période de pointe : C’est le moment de la journée où vous anticipez que les utilisateurs seront en état de connexion stable. Par exemple, entre 09h et 17h, la plupart des utilisateurs sont connectés et travaillent activement. De nouveaux utilisateurs peuvent se connecter, mais à un rythme plus lent que pendant la montée en charge.
  3. Descente en charge : C’est le moment de la journée où vous anticipez que les utilisateurs commenceront à se déconnecter et à terminer leurs sessions pour la journée de travail. Par exemple, entre 17h et 18h, les utilisateurs commencent à se déconnecter. Dans cette phase, vous pouvez définir un pourcentage minimum plus bas d’hôtes actifs et une taille minimale de pool d’hôtes pour réduire le nombre de VM d’hôtes de session en état de fonctionnement ou arrêtées.
  4. Hors-période : C’est le moment de la journée où vous anticipez que les utilisateurs seront en état de déconnexion stable. Par exemple, après 20h, la plupart des utilisateurs sont déconnectés. De nouveaux utilisateurs peuvent se connecter pour des scénarios d’urgence, mais ces cas peuvent être rares.

Azure Virtual Desktop propose également des graphiques afin de comprendre le gain et l’efficacité du mécanisme :

Mais qu’apporte la méthode dynamique du plan de mise à l’échelle ?

Peu importe la méthode choisie, les phases et les fonctionnalités d’un plan de mise à l’échelle restent les mêmes. Mais ce qui change concerne directement les machines virtuelles AVD :

  • Dans la méthode dite Gestion de l’énergie : la plan de mise à l’échelle peut allumer et éteindre des machines virtuelles AVD selon les usages et la programmation mise en place.
  • Dans la méthode dite dynamique : la plan de mise à l’échelle peut créer ou supprimer des machines virtuelles AVD selon les usages et la programmation mise en place.

La méthode dynamique du plan de mise à l’échelle s’appuie également sur la toute nouvelle fonctionnalité AVD, appelée Mise à jour de l’hôte de session pour Azure Virtual Desktop, pour recréer les machines virtuelles.

La mise à jour de l’hôte de session vous permet de mettre à jour le type de disque de la machine virtuelle (VM) sous-jacente, l’image du système d’exploitation (OS) et d’autres propriétés de configuration de tous les hôtes de session dans un pool d’hôtes avec une configuration d’hôte de session. La mise à jour de l’hôte de session désalloue ou supprime les machines virtuelles existantes et en crée de nouvelles qui sont ajoutées à votre pool d’hôtes avec la configuration mise à jour. Cette méthode de mise à jour des hôtes de session est conforme à la suggestion de gestion des mises à jour au sein de l’image source principale, plutôt que de distribuer et d’installer les mises à jour sur chaque hôte de session individuellement selon un calendrier répété continu pour les maintenir à jour.

Voici les modifications que vous pouvez apporter lors d’une mise à jour :

  • Image de machine virtuelle
  • Taille de la machine virtuelle
  • Type de disque de machine virtuelle
  • Type de sécurité de la machine virtuelle
  • Informations d’identification de jonction de domaine Active Directory
  • Inscription à Microsoft Intune
  • Informations d’identification de l’administrateur local
  • Exécutez un script PowerShell de configuration personnalisé

Microsoft Learn

Cette approche de création / suppression intégrée permet donc de réduire encore plus les coûts.

Couplée avec la mise à jour de l’hôte de session, la création et la suppression de machines virtuelles AVD devient d’autant plus simple, et assure de toujours disposer de ressources Azure Virtual Desktop dans leur dernière version.

Maintenant, il nous reste plus qu’à tester tout cela 😎💪

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur la méthode dynamique du plan de mise à l’échelle d’Azure Virtual Desktop, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide
  • Un environnement AVD configuré avec la mise à jour de l’hôte de session

Il ne faut pas oublier que certaines contraintes AVD sont de rigueur :

  • Ne fonctionne pas pour les pool d’hôtes AVD individuels
  • Ne fonctionne pas pour le moment sur un environnement AVD joint uniquement à Entra ID
  • Ne fonctionne pas sur un AVD hébergé sur Azure Local
  • Nécessite également de disposer d’un AVD déjà configuré avec la mise à jour de l’hôte de session

Cette information est disponible ici :

Il est également nécessaire de renseigner un nombre maximal de sessions AVD :

Commençons par ajouter des permissions RBAC nécessaires à la gestion des VMs AVD.

Etape I – Ajout des permissions RBAC :

Le traitement de création/suppression des machines virtuelles AVD a besoin de lire la configuration gérée par le nouvelle orchestrateur en chargement de votre pool d’hôtes. Il est pour l’instant nécessaire créer un rôle Azure personnalisé afin de pouvoir récupérer ces informations.

Pour cela, rendez-vous dans le portail Azure, puis commencez sa création depuis le groupe de ressources contenant votre environnement AVD :

Nommez votre nouveau rôle personnalisé, puis cliquez sur Suivant :

Recherchez la permission suivante, puis cliquez sur lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de votre rôle Azure personnalisé :

Toujours sur votre groupe de ressources AVD, assignez à l’application Azure Virtual Desktop les 3 rôles suivant, en plus de votre nouveau rôle personnalisé :

  • Contributeur de mise sous et hors tension de la virtualisation du Bureau
  • Contributeur à la machine virtuelle de la virtualisation des postes de travail
  • Utilisateur de Key Vault Secrets

Une fois les droits en place, il ne reste qu’à rajouter la mise à l’échelle dynamique sur notre environnement Azure Virtual Desktop.

Etape II – Création du plan de mise à l’échelle dynamique :

Comme avant, la création d’un plan de mise à l’échelle dynamique AVD apporte les avantages / restrictions suivants :

  • Le plan de mise à l’échelle dynamique est utilisable pour un ou plusieurs environnement Azure Virtual Desktop, à la condition que ces derniers nécessitent une gestion horaire identique
  • Ne pas associer le plan de mise à l’échelle dynamique avec d’autres solutions tierces de gestion des ressources Azure
  • Il n’est pas possible d’associer plusieurs plans de mise à l’échelle dynamique sur un seul environnement AVD
  • Le plan de mise à l’échelle dynamique est dépendant d’un seul fuseau horaire
  • Le plan de mise à l’échelle dynamique est configurable sur plusieurs périodes distinctes
  • Le plan de mise à l’échelle dynamique est opérationnel dès sa configuration terminée

Avant cela, prenez le temps de vérifier la configuration de l’hôte de session AVD déjà en place :

La création du plan de mise à l’échelle dynamique se fait directement sur la page d’Azure Virtual Desktop, cliquez ici pour démarrer sa création :

Remplissez le premier onglet avec vos informations de base et indiquez que votre environnement AVD est partagé :

Choisissez l’option le plan de mise à l’échelle dynamique, puis cliquez sur Suivant :

L’onglet suivant vous permet de définir quand le plan de mise à l’échelle dynamique s’active pour suivre les besoins de montée / descente en puissance tout au long de la journée.

Cliquez comme ceci pour ajouter votre première période :

Choisissez un Nom, puis sélectionnez les Jours adéquats (les valeurs par défaut qui s’affichent lorsque vous créez une planification sont les valeurs suggérées pour les jours de la semaine, mais vous pouvez les modifier selon vos besoins) :

Les informations ci-dessous de l’onglet Général ne servent qu’à définir les valeurs reprises dans les autres onglets :

  • Pourcentage minimum d’hôtes actifs : exprimée en pourcentage, cette valeur se base sur le nombre de minimal de VM AVD et détermine le nombre de machines virtuelles allumée :
Par exemple, si le pourcentage minimum d’hôtes actifs (%) est fixé à 10 et que la taille minimum du pool d’hôtes est fixée à 10, le plan de mise à l’échelle dynamique veillera à ce qu’un hôte de session soit toujours disponible pour accepter les connexions des utilisateurs.
  • Nombre min de VMs : nombre de machines virtuelles hôtes de session devant toujours faire partie du pool d’hôtes. Ces dernières peuvent être active ou à l’arrêt niveau OS.
  • Nombre max de VMs : nombre de machines virtuelles hôtes de session que le plan de mise à l’échelle dynamique ne dépassera pas. Ces dernières peuvent être active ou à l’arrêt niveau OS.

Puis cliquez sur Suivant :

Montée en charge : C’est le moment de la journée où vous anticipez que les utilisateurs commenceront à se connecter aux hôtes de session.

  • Heure de début : sélectionnez une heure dans le menu déroulant pour commencer à préparer les machines virtuelles pour les heures de pointe.
  • Algorithme : la préférence d’équilibrage de charge que vous sélectionnez ici remplacera celle que vous avez sélectionnée pour vos paramètres de pool d’hôtes d’origine.
  • Seuil de capacité : pourcentage de la capacité disponible du pool d’hôtes qui déclenchera une action de mise à l’échelle.

Puis cliquez sur Suivant :

Dans mon exemple, je n’ai pas modifié les 49% indiqués sur mon environnement avec un minimum 1 et maximum de 2 machines virtuelles. Cela force AVD a :

  • Si le nombre d’utilisateurs AVD reste sous la limite du nombres de sessions par VM :
    • Conserver une seule machine virtuelle créée et allumée
  • Si le nombre d’utilisateurs AVD dépasse la limite du nombres de sessions par VM :
    • Créer et allumer la seconde machine virtuelle

Période de pointe : C’est le moment de la journée où vous anticipez que les utilisateurs seront en état de connexion stable. Il n’est possible que de modifier :

  • Heure de début : sélectionnez une heure dans le menu déroulant pour commencer à préparer les machines virtuelles pour les heures de pointe.
  • Algorithme : la préférence d’équilibrage de charge que vous sélectionnez ici remplacera celle que vous avez sélectionnée pour vos paramètres de pool d’hôtes d’origine.

Puis cliquez sur Suivant :

Descente en charge : C’est le moment de la journée où vous anticipez que les utilisateurs commenceront à se déconnecter et à terminer leurs sessions pour la journée de travail. Il vous est possible de modifier les champs suivant :

  • Heure de début : sélectionnez une heure dans le menu déroulant pour commencer à préparer les machines virtuelles pour les heures de pointe.
  • Algorithme : la préférence d’équilibrage de charge que vous sélectionnez ici remplacera celle que vous avez sélectionnée pour vos paramètres de pool d’hôtes d’origine.
  • Seuil de capacité : pourcentage de la capacité disponible du pool d’hôtes qui déclenchera une action de mise à l’échelle.
  • Forcer la déconnexion des utilisateurs : Oui / non
  • Pourcentage minimum d’hôtes actifs : exprimée en pourcentage, cette valeur se base sur le nombre de minimal de VM AVD et détermine le nombre de machines virtuelles allumée :
  • Limite du nombre de machines virtuelles actives : exprimée en pourcentage, cette valeur se base sur le nombre de minimal de VM AVD et détermine le nombre de machines virtuelles allumée.
  • Nombre min de VMs : nombre de machines virtuelles hôtes de session devant toujours faire partie du pool d’hôtes. Ces dernières peuvent être active ou à l’arrêt niveau OS.
  • Nombre max de VMs : nombre de machines virtuelles hôtes de session que le plan de mise à l’échelle dynamique ne dépassera pas. Ces dernières peuvent être active ou à l’arrêt niveau OS.

Puis cliquez sur Suivant :

Hors-période : C’est le moment de la journée où vous anticipez que les utilisateurs seront en état de déconnexion stable. Il n’est possible que de modifier :

  • Heure de début : sélectionnez une heure dans le menu déroulant pour commencer à préparer les machines virtuelles pour les heures de pointe.
  • Algorithme : la préférence d’équilibrage de charge que vous sélectionnez ici remplacera celle que vous avez sélectionnée pour vos paramètres de pool d’hôtes d’origine.

Puis cliquez sur Ajouter :

Il est possible d’ajouter une second planning si besoin, mais uniquement sur les autres jours restants, sinon cliquez sur Suivant :

Sélectionnez le pool d’hôtes concerné et lancez la validation Azure :

Une fois la validation Azure réussie, lancez la Création :

Consultez le plan de mise à l’échelle dynamique :

Avant l’application du plan de mise à l’échelle dynamique, je retrouve bien 3 en nombre de machines virtuelles AVD :

Etape III – Test de suppression de VM :

Après l’application du plan de mise à l’échelle dynamique, je retrouve bien une seule machine virtuelle AVD :

Seule une machine virtuelle est bien encore présente dans mon environnement Azure :

Grâce à Azure Monitor, il est possible de consulter les actions faites par le plan de mise l’échelle dynamique :

Du côté des insights AVD, un nouvel onglet dédié au plan de mise à l’échelle a fait son apparition :

Etape IV – Test de création de VM :

Afin de vérifier la création automatique des machines virtuelles AVD, je décide de connecter un utilisateur à mon environnement afin de dépasser le seuil de capacité :

L’utilisateur est bien référencé comme connecté :

Un nouvel événement est alors visible dans la table et indiquant la création d’une seconde machine virtuelle :

Ce même événement est également visible depuis les insights AVD avec son explication textuelle :

Dans la liste des machines virtuelles de mon environnement, je retrouve bien la seconde VM en cours de création :

Azure Virtual Desktop met à jour au besoin les agents AVD sur la nouvelle machine rajoutée au pool d’hôtes :

La nouvelle machine virtuelle contient bien la dernière version disponible et son nom confirme la bonne jointure au domaine AD :

La nouvelle machine virtuelle devient alors disponible et prête à recevoir des utilisateurs AVD :

Etape V – Second test de création de VM :

Toujours dans la même phase je décide de connecter un second utilisateur AVD :

Ayant configuré un algorithme de répartition de la charge en Depth-first, le second utilisateur se retrouve sur la même machine virtuelle que le premier utilisateur :

Rien ne se passe malgré le dépassement de 50% du total car j’ai configuré un plafond de 2 machines virtuelles durant cette phase de mon plan de mise à l’échelle :

Cette analyse est confirmée ici par le 3ème événement :

Je décide néanmoins de modifier dans mon plan de mise à l’échelle dynamique les 2 valeurs suivantes :

La validation du plan de mise à l’échelle dynamique entraîne, comme attendu, la création immédiate d’une 3ème machine virtuelle AVD :

Cette analyse est confirmée par le 4ème événement :

La 3ème machine virtuelle AVD apparaît bien dans le pool d’hôtes avec un statut disponible :

Etape VI – Second test de suppression de VM :

Pour mon dernier test, je décide de déconnecter mes 2 utilisateurs de test AVD :

Les sessions Azure Virtual Desktop ouvertes disparaissent bien de la console Azure :

Et il ne reste plus aucune machine virtuelle Azure :

Cette analyse est confirmée par le 5ème événement :

A noter qu’un minimum de 0 sessions actives entraîne le message d’erreur suivant pour l’utilisateur :

Conclusion

En conclusion, nous avons découvert que ce plan permet une gestion flexible et efficace des ressources, assurant ainsi une optimisation des coûts et une disponibilité continue des services.

L’activation automatique d’une machine virtuelle supplémentaire en réponse à une demande accrue, ainsi que la réduction rapide du nombre de machines en cas de baisse d’activité, illustrent la capacité de ce service à s’ajuster en temps réel aux besoins des utilisateurs.

En somme, Azure Virtual Desktop, grâce à son plan de mise à l’échelle dynamique, propose une solution robuste pour la gestion des environnements de travail virtuels.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *