Considérations relatives à l’automatisation des plateformes et DevOps pour Azure Virtual Desktop
Azure Virtual Desktop est un service managé qui fournit un plan de contrôle Microsoft pour votre environnement de virtualisation des postes de travail.
Cet article s’intéresse aux tâches opérationnelles dont vous avez besoin pour exécuter un environnement Azure Virtual Desktop. Vous pouvez appliquer chaque recommandation de cet article de manière individuelle. Vous n’avez pas besoin d’implémenter chaque recommandation pour que l’automatisation soit utile.
Remarques relatives à la conception
Passez en revue les considérations suivantes pour la planification et la conception de votre environnement Azure Virtual Desktop.
Intégrer à DevOps
L’automatisation n’implique pas forcément une intégration à DevOps, mais elle offre de nombreux avantages. L’automatisation du processus de génération pour votre image de référence vaut la peine d’investir pour plusieurs raisons :
- Lorsque vous utilisez un pipeline DevOps, vous pouvez mieux gérer votre flux d’automatisation.
- Vous pouvez recevoir des rapports et des alertes sur les déploiements à partir d’un pipeline DevOps.
- Vous pouvez configurer votre pipeline pour intégrer des frameworks de test et créer des portes d’approbation pour les phases de votre processus d’automatisation.
- Vous pouvez démarrer des pipelines à partir de nombreux événements prédéfinis tels que la publication d’une nouvelle image de galerie ou d’une application, ou l’utilisation d’une planification définie.
- En automatisant la création de pools d’hôtes, il est facile de déplacer les métadonnées de vos pools d’hôtes vers de nouvelles zones géographiques lorsque de nouvelles localisations sont disponibles.
Infrastructure en tant que code
À mesure que vous adoptez des pratiques DevOps, vous devez choisir un outil pour déployer vos ressources Azure. Il existe deux catégories différentes d’outils IaC. L’option préférée est un outil IaC déclaratif.
Azure fournit des options natives avec des modèles ARM et Azure Bicep.
Vous pouvez également trouver des outils IaC tiers, tels que Terraform de HashiCorp.
En pools ou personnelle
À mesure que votre organisation développe son environnement, la majeure partie de la charge de travail se fait dans une configuration groupée plutôt que personnelle.
Les configurations personnelles sont souvent plus coûteuses à exécuter que les configurations groupées. Elles conviennent à des utilisateurs de charge de travail spécifiques tels que les développeurs qui ont généralement besoin d’autorisations élevées. Si vous exécutez des pools d’hôtes en mode personnel, essayez de gérer les ordinateurs comme vous gérez vos bureaux physiques afin de réduire la quantité d’outils requis dans votre environnement.
Les configurations groupées sont les plus courantes pour la virtualisation de bureau, c’est pourquoi elles sont le sujet de cet article. Les environnements groupés doivent être mis à jour différemment des environnements traditionnels. Mettez à jour vos machines virtuelles à partir d’une image Gold à un rythme qui convient à votre organisation (généralement tous les 1 à 3 mois). Si votre organisation est hautement automatisée, vous serez peut-être en mesure d’augmenter cette cadence à une fréquence hebdomadaire ou même toutes les nuits si nécessaire.
Création d'images
Lorsque vous effectuez une mise à l’échelle de votre environnement Azure Virtual Desktop, vous créez un pool d’hôtes à partir de votre image Gold, que vous créez idéalement par le biais d’un processus automatisé.
Vous pouvez également utiliser une liste de contrôle de génération pour effectuer un scale-up. Si vous disposez d’un environnement volumineux, le processus de liste de contrôle ne doit faire partie que de votre configuration initiale de développement/test. Plus vous automatisez la création de vos images Gold, plus vous serez sûr de la précision de votre génération et de la stabilité de votre environnement.
Nous vous déconseillons d’utiliser votre image existante pour créer une machine virtuelle que vous mettez à jour avec de nouvelles modifications d’application et de configuration, puis de la capturer afin de l’utiliser comme votre « nouvelle » image Gold. Le maintien de ce scénario implique un risque important et constitue un facteur majeur dans les environnements de virtualisation de bureau devenant statiques et fragiles.
Il existe de nombreux outils d’automatisation pour créer des images Gold, notamment le processus Packer décrit plus loin dans cet article. Utilisez l’ensemble d’outils qui convient le mieux à votre organisation. Quels que soient les outils que vous choisissez, automatisez autant que possible la création de votre image Gold afin de pouvoir gérer plus facilement l’intégrité de votre environnement Azure Virtual Desktop.
Installation d’application
Les applications sont mises à la disposition de vos utilisateurs de deux façons : installées dans l’image ou délivrées dynamiquement pour chaque utilisateur.
Les applications installées dans l’image doivent être universelles pour vos utilisateurs et pour une partie de votre processus de création d’image automatisé. Les applications installées dans l’image peuvent être des produits de sécurité et la suite Microsoft 365.
Les applications fournies dynamiquement par utilisateur doivent inclure tous les éléments nécessitant une approche plus flexible. Les applications fournies dynamiquement peuvent être des applications limitées à un groupe spécifique et des applications qui ne sont pas compatibles avec d’autres applications.
Déploiement de langues
Quand vous commencez à faire un scale-out de vos environnements Azure Virtual Desktop, vous devez peut-être traduire les images dans la langue natale de vos utilisateurs. Vous pouvez démarrer dans la langue locale si vous préférez ou vous pouvez ajouter des langues supplémentaires à votre image lors de la génération. Tenez compte de ce point lorsque vous sélectionnez votre image de base. L’image de la galerie Windows 10 préoptimisée par exemple, avec et sans Microsoft 365, est fournie seulement en anglais États-Unis (en-US).
Remarque
Si vous utilisez Windows 10 Entreprise multisession,vous ne pouvez pas la générer dans une autre langue. Dans ce cas, vous devez adapter l’image de la galerie fournie. Pour adapter l’image de la galerie en-US existante, installez les langues supplémentaires avant d’installer d’autres applications.
Emplacements de déploiement
Azure Virtual Desktop offre plus de liberté quant au placement géographique de vos pools d’hôtes que dans des environnements de bureau traditionnels. Cette liberté provient du fait que tous les emplacements Azure prennent en charge Azure Virtual Desktop. Vous pouvez éviter de créer des machines virtuelles à partir d’une image sur le réseau étendu (WAN) en rendant votre image Gold disponible aux mêmes emplacements que vos utilisateurs.
Mises à jour de l’image du pool d’hôtes
Il existe deux façons de mettre à jour l’image Gold de vos machines virtuelles dans un pool d’hôtes particulier.
Méthode 1 :
- Déployez un deuxième pool d’hôtes, puis transférez les utilisateurs sur le nouveau pool d’hôtes quand vous êtes prêt.
- Rendez l’ancien pool d’hôtes disponible si une restauration à un état antérieur est nécessaire.
- Vous pouvez supprimer l’ancien pool d’hôtes une fois que l’organisation a vérifié que le nouveau pool d’hôtes fonctionne correctement.
Méthode 2 :
- Définissez les machines virtuelles existantes en mode maintenance dans le pool d’hôtes.
- Déployez de nouvelles machines virtuelles à partir de l’image Gold mise à jour dans le même pool d’hôtes.
- Veillez à ne pas dépasser les contraintes des ressources ou les limitations des API quand vous doublez le nombre de machines virtuelles dans un même pool d’hôtes.
Recommandations de conception
Passez en revue les recommandations suivantes quand vous concevez l’environnement Azure Virtual Desktop de votre organisation.
Gestion du code source
Nous vous recommandons d’utiliser Git pour gérer le code source et de conserver une stratégie de branchement simple. Lorsque vous utilisez Git pour votre environnement :
- Maintenez votre référentiel Git et le projet Azure DevOps privés, à moins que la stratégie de votre entreprise ne spécifie que les référentiels doivent être publics.
- Initialisez votre référentiel avec un fichier README afin de commencer à renseigner des informations sur votre projet.
- Modifiez les autorisations de votre projet pour permettre à d’autres membres de l’équipe d’y accéder.
- Adoptez un processus d’éléments de travail de base pour développer le pipeline et garder vos charges de travail simplifiées.
- Au minimum, vous devez conserver deux référentiels : un référentiel pour la gestion de vos générations d’images Gold et un autre référentiel pour la gestion de vos déploiements Azure Virtual Desktop.
Pipelines
Votre système de déploiement de pipeline est dicté par le système de gestion du code source que vous choisissez.
Si votre organisation utilise Azure DevOps comme standard, utilisez Azure Pipelines. Si votre organisation utilise GitHub comme standard, utilisez GitHub Actions. L’une ou l’autre des options offre la possibilité de déployer un agent auto-hébergé dans votre réseau, ce qui présente plusieurs avantages, notamment :
- Allocation pour les durées de génération plus longues
- Possibilité d’accéder aux ressources au sein de votre réseau
Contrôlez vos pipelines de déploiement afin qu’ils puissent être automatiquement déclenchés pour être déployés sur un pool d’hôtes de validation, mais pas automatiquement envoyés à votre pool d’hôtes de production sans approbation explicite.
Variables et Azure Key Vault
Utilisez des groupes de variables quand vous travaillez dans Azure Pipelines.
- Les groupes de variables vous permettent d’avoir des paramètres reproductibles dans vos pipelines, comme des secrets et des emplacements de fichier.
- Les variables au sein de groupes de variables peuvent être stockées sous forme de paires clé/valeur, mais la méthode recommandée consiste à lier un groupe de variables à un coffre Azure Key Vault pour extraire des secrets à utiliser dans votre pipeline de déploiement.
Créer des images Azure Virtual Desktop
Utilisez le service Azure Image Builder (AIB) pour automatiser les processus de création, de mise à jour, de sysprep et de distribution pour vos images Gold. Ce service peut utiliser une image de base prise en charge à partir de la Place de marché Azure pour chaque génération afin de vous assurer que vous disposez des dernières mises à jour.
Remarque
Azure Image Builder est actuellement disponible dans certaines régions, mais vous pouvez distribuer des images en dehors de ces régions.
Dans le cadre de votre processus de génération d’image Gold, considérez toutes les applications dont vous avez besoin pour installer et déterminez si elles peuvent être installées via des scripts. Vérifiez que vous disposez de commandes d’installation d’application scriptées dans PowerShell et validées dans votre référentiel Git. Si vous ne pouvez pas télécharger les programmes d’installation d’applications via l’Internet public, envisagez de placer les applications dans le Stockage Blob Azure. Si le processus d’installation de votre application nécessite des secrets, envisagez de les placer dans le coffre Azure Key Vault.
Pour commencer à utiliser Azure Image Builder, consultez Créer une image Azure Virtual Desktop à l’aide d’Azure VM Image Builder et de PowerShell
Pour appeler Azure Image Builder à l’aide de pipelines CI/CD, utilisez la tâche DevOps du service Azure Image Builder pour Azure Pipelines ou l’action Créer une image de machine virtuelle Azure pour GitHub Actions.
HashiCorp Packer constitue une alternative open source. Il offre les mêmes fonctionnalités qu’Azure Image Builder (qui s’appuie sur HashiCorp Packer), y compris la possibilité de distribuer vers une galerie Azure Compute Gallery.
Pour plus d’informations sur Packer, consultez le site web Packer.
La méthode Packer requiert les conditions suivantes :
- Les licences Azure DevOps doivent utiliser la suite complète des outils Packer.
- Vous devez attribuer à un utilisateur le rôle approprié dans Microsoft Entra ID.
- Vous devez donner un principal de service avec un accès Contributeur à l’abonnement.
- Vous devez disposer d’un coffre Azure Key Vault pour stocker les secrets, ce qui permet la gestion des secrets du principal du service dans la stratégie d’accès.
Quand vous travaillez avec Packer dans votre pipeline de déploiement :
- Installez les outils Packer sur l’agent de build que vous utiliserez dans votre pipeline de déploiement.
- Créez une étape de validation dans votre pipeline pour valider le fonctionnement de la génération.
- Après la validation, clonez votre phase de validation et définissez le mode de déploiement sur Incrémentiel.
Autres considérations relatives au stockage de fichiers Packer :
- Stockez vos fichiers et vos provisions Packer à un emplacement centralisé auquel Azure Pipelines peut accéder. Nous vous recommandons d’utiliser des partages de fichiers Azure pour stocker ces fichiers de façon sécurisée.
- Stockez les informations d’identification d’accès pour Azure Files dans Key Vault. Vous pouvez tirer les informations d’identification d’accès de Key Vault lors de la génération à l’aide de variables de pipeline.
- De plus, stockez le nom de votre fichier Packer et la clé de compte dans le coffre de clés lié au groupe de variables dans Azure DevOps. Les pipelines accèdent à ces informations d’identification pour télécharger les fichiers Packer sur la machine virtuelle utilisée pour créer l’image.
- Stockez le chemin d’accès UNC en tant que variable dans le groupe de variables Azure DevOps.
Stocker des images Azure Virtual Desktop
Le service Azure Compute Gallery est l’option la plus simple pour créer une structure et une organisation autour de vos images Gold. Il offre :
- la réplication mondiale d’images vers différentes régions Azure.
- Vérifiez que vous avez déployé les images dans les régions où les hôtes de session Azure Virtual Desktop (machines virtuelles) sont déployés.
- Gestion des versions et regroupement d’images pour une gestion simplifiée. Le contrôle de version et le regroupement sont utiles pour restaurer les pools d’hôtes Azure Virtual Desktop vers les versions précédentes de l’image.
- Des images hautement disponibles avec des comptes de stockage redondant interzone (ZRS, Zone Redundant Storage) dans les régions qui prennent en charge les zones de disponibilité. Le stockage redondant interzone (ZRS) offre une meilleure résilience en cas de défaillances de zones.
- Le partage d’images Azure Virtual Desktop entre des abonnements, et même entre des locataires Microsoft Entra, en utilisant un contrôle d’accès en fonction du rôle (RBAC).
- La mise à l’échelle de vos déploiements avec des réplicas d’image dans chaque région.
- Planifiez le déploiement d’un réplica pour chaque lot de 20 machines virtuelles que vous envisagez de déployer simultanément.
Pour plus d’informations, consultez Vue d’ensemble du service Azure Compute Gallery.
Installation d’applications dans des images d’Azure Virtual Desktop
- Pour les applications universelles installées dans votre image Gold, utilisez la méthode Packer décrite précédemment dans cet article.
- App-V est actuellement la méthode prise en charge par Microsoft pour la diffusion d’applications par utilisateur.
- Utilisez le masquage d’applications FSLogix pour masquer ou afficher les applications ou les plug-ins quand ces applications ne fonctionnent pas correctement avec App-V.
- Utilisez l’attachement d’application MSIX si possible pour fournir dynamiquement des applications aux utilisateurs et réduire la taille globale de votre image Gold. Vous pouvez également utiliser des pipelines CI/CD pour automatiser le processus d’empaquetage d’applications au format MSIX. Pour plus d’informations, consultez la vue d’ensemble.
Déployer des langues dans les images Azure Virtual Desktop
Microsoft a des processus pour installer les modules linguistiques manuellement ou automatiquement. Nous vous recommandons de réduire au minimum la charge de travail d’administration et d’automatiser le processus d’installation des langues.
Ce processus implique de télécharger un script PowerShell sur la machine virtuelle qui sera convertie en image. Vous pouvez trouver des exemples de scripts d’automatisation dans la documentation Microsoft. Si vous suivez la recommandation pour les pipelines Packer, vous pouvez inclure ce processus comme tâche de génération supplémentaire.
Pour plus d’informations sur l’installation de modules linguistiques dans Windows 10 Entreprise multisession, consultez Installer des modules linguistiques sur des machines virtuelles Windows 10 dans Azure Virtual Desktop.
Créer des pools d’hôtes Azure Virtual Desktop à partir d’images de la galerie Azure Compute Gallery
Utilisez une approche d’infrastructure en tant que code (IaC) pour le déploiement et la personnalisation des ressources Azure Virtual Desktop. Ils doivent être utilisés dans la mesure du possible pour garantir la cohérence dans les déploiements. Les modèles ARM peuvent être utilisés pour déployer des ressources Azure Virtual Desktop dans le cadre d’une tâche de pipeline CI/CD. Vous pouvez aussi les utiliser avec le portail Azure, Azure PowerShell ou Azure CLI.
Voici une stratégie de mise à jour du pool d’hôtes recommandée :
- Configurez un pipeline CI/CD pour générer et distribuer des images Gold dans Azure Compute Gallery.
- Désignez un pool d’hôtes de validation et déployez de nouveaux hôtes de session dans le pool d’hôtes de validation à l’aide de pipelines CI/CD.
- Testez votre automatisation à l’aide d’un pool d’hôtes de validation.
- Étiquetez vos hôtes de session avec un numéro de build ou une version d’image pour identifier la version de l’image qu’ils exécutent.
- Avant de déployer, validez (ou vérifiez) pour vous assurer que vous disposez d’un quota de calcul suffisant dans votre abonnement.
- Une fois les tests réussis dans le pool de validation, placez les hôtes de session existants en mode maintenance : les machines virtuelles étiquetées seront faciles à identifier.
- Déployez de nouveaux hôtes de session et autorisez les utilisateurs à se connecter.
- Une fois les tests réussis en production, commencez à libérer les anciens hôtes de session pour ne pas entraîner de frais de calcul supplémentaires et éventuellement à les supprimer pour ne pas entraîner de frais de disque managé supplémentaires.
- Les hôtes de sessions supprimées ne seront supprimés que d’Azure. Les objets informatiques restent dans votre domaine d’application. Ces objets informatiques doivent donc être supprimés manuellement ou via un script.
L’exemple ci-dessus montre une méthode d’automatisation d’image en utilisant Azure DevOps ainsi qu’un pipeline d’intégration continue et de livraison continue (CI/CD). Il s’agit d’une approche native Cloud qui offre un déploiement des nouveaux hôtes de session moins perturbant sans temps d’arrêt. Il est important de noter que vous devez prendre en compte l’augmentation du nombre de machines virtuelles lorsque vous éliminez d’anciennes images et que vous mettez en ligne de nouvelles images.
Comme mentionné précédemment, Azure Compute Gallery est un service qui vous permet de créer une structure et une organisation pour vos images. Ces images peuvent être référencées dans vos déploiements IaC de vos hôtes de session Azure Virtual Desktop. Le service permet le versioning, le regroupement et la réplication d’images.
Quand vous déployez vos hôtes de session avec un modèle ARM ou Terraform, nous vous recommandons d’utiliser l’ID de ressource de l’image que vous avez créée dans votre galerie comme ID source de l’image personnalisée de machine virtuelle. L’image que vous utilisez doit être répliquée via le service Azure Compute Gallery vers les régions Azure où vous déployez vos pools d’hôtes Azure Virtual Desktop.
Étapes suivantes
Découvrez comment déployer Azure Virtual Desktop en utilisant l’accélérateur de zone d’atterrissage dans les scénarios à l’échelle de l’entreprise.