Cet article fournit des conseils d’implémentation pour l’automatisation du distributeur d’abonnements. Le distributeur d’abonnements normalise le processus de demande, de déploiement et de gouvernance des abonnements, pour que les équipes d’application puissent déployer leurs charges de travail plus rapidement.
Figure 1. Implémentation du distributeur d’abonnements dans un exemple d’environnement Azure.
Nous avons créé des modules Bicep et Terraform du distributeur d’abonnements que vous devez utiliser comme point de départ. Vous devez modifier les modèles en fonction de vos besoins d’implémentation. Pour plus d’informations sur le processus de distributeur d’abonnements, consultez Vue d’ensemble du distributeur d’abonnements.
Vous devez concevoir l’automatisation du distributeur de votre abonnement pour accomplir trois tâches principales. L’automatisation du distributeur d’abonnements doit (1) collecter les données de demande d’abonnement, (2) lancer l’automatisation de la plateforme et (3) créer l’abonnement à l’aide de l’infrastructure en tant que code. Il y a de nombreuses approches pour implémenter l’automatisation du distributeur d’abonnements pour accomplir ces trois tâches. L’exemple d’implémentation (figure 2) montre une approche qui utilise un Gitflow . La conception Gitflow s’aligne sur l’approche déclarative que de nombreuses équipes de plateforme utilisent pour gérer la plateforme.
Figure 2. Exemple d’implémentation de l’automatisation du distributeur d’abonnements.
Dans l'exemple de mise en œuvre (figure 2), l'outil de collecte de données recueille les données relatives aux demandes d'abonnement. Lorsque la demande d’abonnement reçoit l’approbation, elle lance l’automatisation de la plateforme. L’automatisation de la plateforme se compose du pipeline de requête, du contrôle de code source et du pipeline de déploiement. Le pipeline de requête crée un fichier de paramètres d’abonnement JSON ou YAML avec les données de l’outil de collecte de données. Le pipeline de requête crée également une branche, valide le fichier de paramètres d’abonnement et ouvre une demande de tirage dans le contrôle de code source. La nouvelle branche fusionne avec la branche principale dans le contrôle de code source. La fusion déclenche le pipeline de déploiement pour créer l’abonnement avec les modules d’infrastructure en tant que code.
Le déploiement doit placer l’abonnement dans le groupe d’administration approprié en fonction des exigences de gouvernance (voir figure 1). Le déploiement crée un budget d’abonnement préliminaire comme base de la gestion des coûts. En fonction des besoins de la charge de travail, le déploiement peut créer un réseau virtuel vide et configurer le peering vers un hub régional. L’équipe de plateforme doit remettre l’abonnement à l’équipe d’application après sa création et sa configuration. L’équipe d’application doit mettre à jour le budget de l’abonnement et créer les ressources de charge de travail.
L’objectif de la collecte de données est de recevoir l’approbation de l’entreprise et de définir les valeurs du fichier de paramètres d’abonnement JSON/YAML. Vous devez utiliser un outil de collecte de données pour collecter les données requises lorsque l’équipe de l’application envoie la demande d’abonnement. L’outil de collecte de données doit s’interfacer avec d’autres systèmes du flux de travail du distributeur d’abonnement pour lancer l’automatisation de la plateforme.
Utilisez un outil de collecte de données. Vous pouvez utiliser un outil de gestion des services informatiques (ITSM) pour collecter les données ou générer un portail client avec un outil à faible code ou sans code comme Microsoft PowerApps. L’outil de collecte de données doit fournir une logique métier pour approuver ou refuser la demande d’abonnement.
Collectez les données requises. Vous devez collecter suffisamment de données pour définir les valeurs du paramètre d’abonnement JSON/YAML afin de pouvoir automatiser le déploiement. Les valeurs spécifiques que vous collectez dépendent de vos besoins. Vous devez capturer les exigences relatives à l’autorisation de demande, au centre de coûts et à la mise en réseau (connectivité Internet ou locale). Il peut être utile de demander à l’équipe d’application les composants de charge de travail prévus (plateforme d’application, exigences de données), la sensibilité des données et le nombre d’environnements (développement, test, préproduction, production).
Validez des données. Vous devez valider les données pendant le processus de collecte de données. Il est plus difficile de résoudre les problèmes plus tard dans les phases d’automatisation de la plateforme.
Créez une demande pouvant être suivie. Votre outil de collecte de données doit créer une demande journalisée et pouvant être suivie pour un nouvel abonnement (par exemple, un ticket dans un outil ITSM). La demande doit contenir toutes les données nécessaires pour répondre aux exigences de cet abonnement. Vous devez lier la logique métier et le suivi des autorisations à la demande.
Interface avec d’autres systèmes internes. Si nécessaire, l’outil de collecte de données doit s’interfacer avec d’autres outils ou systèmes de votre organisation. L’objectif est d’enrichir la requête avec des données provenant d’autres systèmes. Vous aurez peut-être besoin de données d’identité, de finances, de sécurité et de mise en réseau pour exécuter l’automatisation. Par exemple, l’automatisation peut s’interfacer avec un outil de gestion des adresses IP (IPAM) pour réserver l’espace d’adressage IP approprié.
Créer un déclencheur. Lorsque la demande d’abonnement reçoit l’approbation, le transfert de données doit déclencher l’automatisation de la plateforme. Il est préférable de créer une notification Push avec les données nécessaires à partir de votre outil de collecte de données. Vous aurez peut-être besoin d’une couche d’intergiciels, telle que Azure Functions ou Azure Logic Apps, pour lancer le processus.
La notification et les données de l’outil de collecte de données doivent déclencher l’automatisation de la plateforme. L’objectif de l’automatisation de la plateforme est de créer un fichier de paramètres d’abonnement JSON/YAML, de fusionner le fichier avec la branche principale et de le déployer avec les modules d’infrastructure en tant que code pour créer l’abonnement. L’équipe de plateforme doit posséder et gérer l’automatisation de la plateforme. L’automatisation de la plateforme dans l’exemple d’implémentation se compose du pipeline de requête, du contrôle de code source et du pipeline de déploiement (voir la figure 2).
Utilisez des fichiers JSON ou YAML. Vous devez utiliser des fichiers de données structurées (JSON ou YAML) pour stocker les données afin de créer un abonnement. Vous devez documenter la structure du fichier et le rendre extensible pour prendre en charge les besoins futurs. Par exemple, l’extrait de code JSON suivant définit les valeurs de paramètre d’abonnement pour l’un des modules Bicep dans GitHub.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionDisplayName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionAliasName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionBillingScope": {
"value": "providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456"
},
// Insert more parameters here
}
}
Voir le fichier entier. Pour plus d’exemples, consultez Exemples Bicep et Exemples Terraform
Utilisez un fichier par demande d’abonnement. L’abonnement étant l’unité de déploiement dans le processus du distributeur d’abonnements, chaque demande d’abonnement doit avoir un fichier de paramètres d’abonnement dédié.
Utilisez un système de demande de tirage. Le processus Gitflow qui crée le fichier de paramètres d’abonnement doit automatiser les étapes suivantes :
- Créez une nouvelle branche pour chaque demande d’abonnement.
- Utilisez les données collectées pour créer un fichier de paramètres d’abonnement YAML/JSON unique pour le nouvel abonnement dans la branche.
- Créez une demande de tirage à partir de votre branche dans
main
. - Mettez à jour l’outil de collecte de données avec un changement d’état et une référence à cette demande de tirage.
Le pipeline de requête dans l’exemple d’implémentation exécute ces étapes (voir la figure 2). Vous pouvez également utiliser une solution basée sur le code hébergée dans Azure si le flux de travail est complexe.
Valider le fichier de paramètres d’abonnement. La demande de tirage doit déclencher un processus de linting pour valider les données de la demande. L’objectif est de s’assurer que le déploiement est réussi. Il doit valider le fichier de paramètres d’abonnement YAML/JSON. Il peut également vérifier que la plage d’adresses IP est toujours disponible. Vous pouvez également ajouter une porte de révision manuelle avec intervention humaine. Ils peuvent effectuer la révision finale et apporter des modifications au fichier de paramètres d’abonnement. La sortie doit être un fichier de paramètres d’abonnement JSON/YAML avec toutes les données permettant de créer un abonnement.
Déclenchez le pipeline de déploiement. Lorsque la demande de tirage fusionne dans la branche main
, la fusion doit déclencher le pipeline de déploiement.
La dernière tâche de l’automatisation du distributeur automatique d’abonnement consiste à créer et configurer le nouvel abonnement. L’exemple d’implémentation utilise le pipeline de déploiement pour déployer le module d’infrastructure en tant que code avec le fichier de paramètres d’abonnement JSON/YAML (voir la figure 2).
Utilisez l’infrastructure en tant que code (IaC). Votre déploiement doit utiliser l’infrastructure en tant que code pour créer l’abonnement. L’équipe de plateforme doit créer et gérer ces modèles pour garantir une gouvernance appropriée. Vous devez utiliser les modules Bicep et Terraform du distributeur d’abonnements et les modifier en fonction de vos besoins d’implémentation.
Utilisez un pipeline de déploiement. Le pipeline de déploiement orchestre la création et la configuration du nouvel abonnement. Le pipeline doit exécuter les tâches suivantes :
Catégorie de la tâche | Tâche de pipeline |
---|---|
Identité | • Créer ou mettre à jour des ressources Microsoft Entra pour représenter la propriété de l’abonnement. • Configurer des identités de charge de travail privilégiées pour les déploiements d’équipe de charge de travail. |
Gouvernance | • Place dans la hiérarchie du groupe de gestion. • Attribuer un propriétaire d’abonnement. • Configurer les contrôles d’accès en fonction du rôle (RBAC) au niveau de l’abonnement pour les groupes de sécurité configurés. • Attribuer des Azure Policy au niveau de l’abonnement. • Configurer le Microsoft Defender pour l’inscription cloud. |
Mise en réseau | • Déployer des réseaux virtuels. • Configurer l’appairage de réseaux virtuels avec les ressources de la plateforme (hub régional). |
Budgets | • Créer des budgets pour les propriétaires d’abonnements à l’aide des données collectées. |
Reporting | • Mettre à jour des systèmes externes, tels qu’IPAM pour valider les réservations IP. • Mettre à jour la demande d’outil de collecte de données avec le nom de l’abonnement final et l’identificateur unique global (GUID). • Informer l’équipe d’application que l’abonnement est prêt. |
Vous avez besoin d’un contrat commercial pour créer un abonnement par programmation. Si vous n’avez pas de contrat commercial, vous devez introduire un processus manuel pour créer l’abonnement, mais vous pouvez toujours automatiser tous les autres aspects de la configuration de l’abonnement.
Établissez une identité de charge de travail. Le pipeline de déploiement doit être autorisé à effectuer ces opérations avec tous les systèmes avec lesquels il s’interface. Vous devez utiliser une identité managée ou OpenID Connect (OIDC) pour vous authentifier auprès d’Azure.
L’automatisation du distributeur automatique d’abonnements se termine par la création et la configuration de l’abonnement. L’équipe de plateforme doit remettre le nouvel abonnement à l’équipe d’application après sa création. L'équipe chargée de l'application doit mettre à jour le budget d'abonnement, créer les ressources de charge de travail et déployer la charge de travail. L’équipe de plateforme contrôle la gouvernance de l’abonnement et gère les modifications apportées à la gouvernance de l’abonnement au fil du temps.
Appliquez la gestion des coûts. Les budgets d’abonnement fournissent des notifications critiques pour la gestion des coûts. Le déploiement doit créer un budget d’abonnement préliminaire basé sur les données de demande d’abonnement. L’équipe d’application reçoit l’abonnement. Ils doivent actualiser le budget pour répondre aux besoins de la charge de travail. Pour plus d'informations, consultez les pages suivantes :
- Créer et gérer des budgets
- Gérer les coûts avec Azure Budgets
- Affectation des coûts
- Suivi des coûts dans les unités commerciales, les environnements ou les projets
Gérez la gouvernance des abonnements. Vous devez mettre à jour l’abonnement à mesure que les exigences de gouvernance de la charge de travail changent. Par exemple, vous devrez peut-être déplacer un abonnement vers un autre groupe d’administration. Vous devez générer l’automatisation pour certaines de ces opérations de routine. Pour plus d'informations, consultez les pages suivantes :
- Déplacement de groupes d’administration et d’abonnement
- Maintenir des stratégies et des initiatives de stratégie à jour
- Identification des ressources
- Personnaliser l’architecture d’une zone d’atterrissage Azure pour répondre aux besoins
Le distributeur automatique d’abonnements simplifie et normalise le processus de création d’abonnement et le place sous la gouvernance de l’organisation. Vous devez implémenter l’automatisation du distributeur automatique d’abonnements pour aider vos équipes d’application à accéder plus rapidement aux zones d’atterrissage des applications et à intégrer les charges de travail plus rapidement. Pour plus d'informations, consultez les pages suivantes :