Infrastructure as code

Effectué

IaC (Infrastructure as Code) est le processus de gestion et de provisionnement des ressources d’infrastructure cloud via du code lisible par machine qui est stocké dans le contrôle de code source. Le fait de pouvoir traiter votre infrastructure de la même façon que n’importe quel autre code source est la raison pour laquelle cette pratique est appelée Infrastructure as Code.

IaC est un composant clé de DevOps, car il permet d’automatiser la configuration et le déploiement de l’infrastructure. Cette automatisation réduit le temps et les efforts nécessaires pour gérer et provisionner l’infrastructure, et offre la garantie que l’infrastructure est configurée de manière cohérente et fiable. IaC permet également de s’assurer que l’infrastructure est sécurisée et conforme aux stratégies de l’organisation.

Outils Azure natifs ou cloud agnostiques

L’un des facteurs les plus importants dans le choix d’un outil IaC est votre environnement cloud :

  • Outils Azure natifs : les outils IaC, comme Azure CLI, Azure PowerShell et Bicep, sont disponibles uniquement sur Azure. Étant donné que la même entreprise fournit à la fois l’infrastructure cloud et les outils IaC, l’avantage est réduit entre la publication des fonctionnalités cloud et la prise en charge dans les outils.

  • Outils cloud agnostiques : les outils IaC, comme Terraform, vous permettent de gérer l’infrastructure en tant que code dans des environnements cloud mixtes. En fonction de l’outil IaC, les fonctionnalités Azure récemment publiées peuvent ne pas être prises en charge immédiatement.

Outils IaC impératifs ou déclaratifs

Il existe deux types d’outils de configuration IaC :

  • Outils IaC impératifs : un outil, ou langage impératif, est un outil dans lequel le code spécifie explicitement ce qui doit être fait et comment. Le code que vous écrivez effectue des actions dans un ordre spécifique, étape après étape, pour configurer votre infrastructure. La plupart des outils IaC impératifs ne sont pas idempotents parce que la configuration est effectuée étape par étape.

    Les outils IaC impératifs pour gérer et provisionner des ressources dans Azure sont les suivants :

    • L’interface de ligne de commande Azure
    • Azure PowerShell
  • Outils IaC déclaratifs : un outil, ou langage, déclaratif vous permet de spécifier le résultat souhaité plutôt que la façon dont vous souhaitez accomplir chaque étape. La plupart des outils IaC déclaratifs adhèrent à un modèle commun. Une fois que vous avez créé la définition de votre infrastructure, vous exécutez une commande pour provisionner ce que vous avez défini. Les outils IaC déclaratifs sont idempotents parce que la configuration peut être appliquée plusieurs fois, quel que soit l’état de la configuration de l’infrastructure. Cette fonctionnalité vous permet d’éviter une dérive de configuration en rétablissant la conformité de l’infrastructure non conforme.

    Les outils IaC déclaratifs pour gérer et provisionner des ressources dans Azure sont les suivants :

    • Bicep
    • Terraform

Recommandations

  • Adoptez une approche IaC pour déployer, gérer, gouverner et prendre en charge les déploiements Azure.
  • Utilisez des outils Azure natifs pour IaC dans les scénarios suivants :
    • Vous souhaitez utiliser uniquement des outils Azure natifs. Votre organisation a déjà déployé des modèles de Resource Manager Azure (modèles ARM).
    • Votre organisation souhaite prendre en charge immédiatement toutes les versions en préversion et en disponibilité générale (GA) des services Azure.
  • Utilisez des outils non natifs pour IaC dans les scénarios suivants :
    • Votre organisation gère l’infrastructure dans des environnements cloud mixtes.
    • Votre organisation n’a pas besoin de prendre en charge immédiatement toutes les versions en préversion et en disponibilité générale (GA) des services Azure.