Qu’est-ce qu’Azure Resource Manager ?
Vous avez passé du temps avec votre équipe à apprendre les avantages d’Infrastructure as code et les différentes approches disponibles. Votre entreprise connaît une croissance rapide et votre équipe sait qu’elle va déployer un nombre important de ressources sur Azure. En tant qu’équipe, vous avez décidé que l’infrastructure as code déclarative est une bonne approche pour l’approvisionnement des ressources. L’équipe ne souhaite pas conserver les scripts qui répertorient chaque étape de déploiement. Avant de commencer le processus de création de votre premier modèle, vous devez comprendre le fonctionnement d’Azure Resource Manager. L’examen des types de modèles pouvant être utilisés avec Azure vous aidera à déterminer les étapes suivantes de votre infrastructure en tant que stratégie de code.
Dans cette unité, vous découvrez Resource Manager et les deux types de modèles de Resource Manager.
Concepts d’Azure Resource Manager
Azure Resource Manager est le service utilisé pour déployer et gérer des ressources dans Azure. Vous pouvez utiliser Resource Manager pour créer, mettre à jour et supprimer des ressources dans votre abonnement Azure. Vous pouvez interagir avec Resource Manager à l’aide de nombreux outils, y compris le Portail Azure. Resource Manager fournit également une série d’autres fonctionnalités, telles que le contrôle d’accès, l’audit et le balisage, pour faciliter la gestion de vos ressources après le déploiement.
Terminologie
Lorsque vous commencez votre parcours du cloud avec Resource Manager, il est important de comprendre certains termes et concepts :
Ressource : Élément gérable disponible sur la plateforme Azure. Les réseaux virtuels, machines virtuelles, comptes de stockage, applications web et bases de données sont des exemples de ressources.
Groupe de ressources : conteneur logique qui contient des ressources associées pour une solution Azure. Le groupe de ressources comprend des ressources que vous devez gérer ensemble. La plupart des ressources Azure sont contenues dans un groupe de ressources. Vous décidez quelles ressources appartiennent à un groupe de ressources en fonction de ce qui est le plus logique pour votre solution.
Notes
Un petit nombre de ressources ne sont pas contenues dans des groupes de ressources. Ces types de ressources ont des objectifs spécifiques, tels que la gestion du contrôle d’accès et l’application des stratégies. Vous en apprendrez davantage sur ces ressources dans un module ultérieur.
Abonnement : un conteneur logique et une limite de facturation pour vos ressources et groupes de ressources. Chaque ressource et groupe de ressources Azure est associée à un seul abonnement.
Groupe d’administration : un conteneur logique que vous utilisez pour gérer plusieurs abonnements. Vous pouvez définir une hiérarchie de groupes d’administration, d’abonnements, de groupes de ressources et de ressources pour gérer efficacement l’accès, les stratégies et la conformité par le biais de l’héritage.
Modèle Azure Resource Manager (modèle ARM) : fichier modèle qui définit une ou plusieurs ressources à déployer dans un groupe de ressources, un abonnement, un groupe d’administration ou un abonné. Vous pouvez utiliser le modèle pour déployer les ressources de manière cohérente et reproductible. Il existe deux types de fichiers de modèle ARM : JSON et Bicep. Ce module se concentre sur Bicep.
Avantages
Resource Manager offre de nombreux avantages et fonctionnalités liés à l’infrastructure en tant qu’approvisionnement de ressources de code :
- Vous pouvez déployer, gérer et analyser les ressources dans votre solution en tant que groupe plutôt qu’individuellement.
- Vous pouvez redéployer votre solution tout au long du cycle de vie de développement et vérifier que vos ressources sont déployées dans un état cohérent.
- Vous pouvez gérer votre infrastructure par le biais de modèles déclaratifs plutôt que par le biais de scripts.
- Vous pouvez spécifier des dépendances de ressources pour vous assurer que les ressources sont déployées dans le bon ordre.
Opérations : plan de contrôle et plan de données
Vous pouvez exécuter deux types d’opérations dans Azure : les opérations du plan de contrôle et les opérations de plan de données. Utilisez le plan de contrôle pour gérer les ressources de votre abonnement. Utilisez le plan de données pour accéder aux fonctionnalités exposées par une ressource.
Par exemple, vous utilisez une opération de plan de contrôle pour créer une machine virtuelle, mais vous utilisez une opération de plan de données pour vous connecter à la machine virtuelle à l’aide du protocole RDP (Remote Desktop Protocol).
Plan de contrôle
Quand vous envoyez une requête à partir d’outils Azure, d’une API ou d’un Kit de développement logiciel (SDK), Resource Manager reçoit, authentifie et autorise la requête. Il envoie ensuite la requête au fournisseur de ressources Azure, qui effectue l’action demandée. Étant donné que toutes les requêtes sont gérées via la même API, vous voyez des résultats et des fonctionnalités cohérentes dans tous les différents outils disponibles sur Azure.
L’image suivante montre le rôle joué par Resource Manager dans le traitement des requêtes Azure :
Toutes les demandes d’opération de plan de contrôle sont envoyées à une URL de Resource Manager. Par exemple, l’opération de création ou de mise à jour pour les machines virtuelles est une opération de plan de contrôle. Voici l’URL de la requête pour cette opération :
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}?api-version=2022-08-01
Le plan de contrôle comprend les ressources qui doivent être créées et les ressources qui existent déjà. Resource Manager comprend la différence entre ces requêtes et ne crée pas de ressources identiques ou ne supprime pas les ressources existantes, bien qu’il existe des moyens de remplacer ce comportement.
Plan de données
Lorsqu’une opération de plan de données commence, les requêtes sont envoyées à un point de terminaison spécifique dans votre abonnement Azure. Par exemple, l’opération Détection de langage dans Azure AI services est une opération du plan de données, car l’URL de la requête est :
POST https://eastus.api.cognitive.microsoft.com/text/analytics/v2.0/languages
Les fonctionnalités de Resource Manager telles que le contrôle d’accès et les verrous ne s’appliquent pas toujours aux opérations de plan de données. Par exemple, un utilisateur peut ne pas avoir les autorisations nécessaires pour gérer une machine virtuelle à l’aide du plan de contrôle, mais l’utilisateur peut se connecter au système d’exploitation.
Que sont les modèles ARM ?
Les modèles Azure Resource Manager sont des fichiers qui définissent l’infrastructure et la configuration de votre déploiement. Lorsque vous écrivez un modèle ARM, vous adoptez une approche déclarative de l’approvisionnement de vos ressources. Ces modèles décrivent chaque ressource du déploiement, mais ils ne décrivent pas comment déployer les ressources. Lorsque vous soumettez un modèle à Resource Manager pour le déploiement, le plan de contrôle peut déployer les ressources définies de manière organisée et cohérente. Dans l’unité précédente, vous avez appris les différences entre le code impératif et le code déclaratif.
Pourquoi utiliser des modèles ARM ?
Il existe de nombreux avantages à utiliser des modèles ARM, JSON et Bicep, pour l’approvisionnement de vos ressources.
Résultats reproductibles : les modèles ARM sont idempotents, ce qui signifie que vous pouvez déployer à plusieurs reprises le même modèle et obtenir le même résultat. Le modèle ne duplique aucune ressource.
Orchestration : lorsqu’un déploiement de modèle est soumis à Resource Manager, les ressources dans le modèle sont déployées en parallèle. Ce processus permet aux déploiements de se terminer plus rapidement. Resource Manager orchestre ces déploiements dans l’ordre approprié si une ressource dépend d’une autre.
Préversion : l’outil de simulation, disponible dans Azure PowerShell et Azure CLI, vous permet d’afficher un aperçu des modifications apportées à votre environnement avant le déploiement du modèle. Cet outil détaille toutes les créations, modifications et suppressions apportées par votre modèle.
Test et validation : vous pouvez utiliser des outils comme Bicep linter pour vérifier la qualité de vos modèles avant le déploiement. Les modèles ARM soumis à Resource Manager sont validés avant le processus de déploiement. Cette validation vous avertit des erreurs dans votre modèle avant l’approvisionnement des ressources.
Modularité : vous pouvez diviser vos modèles en composants plus petits et les lier au moment du déploiement.
Intégration CI/CD: vos modèles ARM peuvent être intégrés dans plusieurs outils d’intégration continue et livraison continue, comme Azure DevOps et GitHub Actions. Vous pouvez utiliser ces outils pour les modèles de version via le contrôle de code source et les pipelines de version de build.
Extensibilité : avec les scripts de déploiement, vous pouvez exécuter des scripts Bash ou PowerShell à partir de vos modèles ARM. Ces scripts effectuent des tâches, comme les opérations de plan de données, au moment du déploiement. Grâce à l’extensibilité, vous pouvez utiliser un seul modèle ARM pour déployer une solution complète.
Modèles JSON et Bicep
Deux types de modèles ARM peuvent être utilisés aujourd’hui : les modèles JSON et les modèles Bicep. JavaScript Object Notation (JSON) est un format de fichier standard ouvert que plusieurs langages peuvent utiliser. Bicep est un nouveau langage spécifique à un domaine qui a été récemment développé pour la création de modèles ARM à l’aide d’une syntaxe plus simple. Vous pouvez utiliser l’un ou l’autre format de modèle pour vos modèles ARM et vos déploiements de ressources.