L’infrastructure en tant que code (IaC : Infrastructure as Code) est une approche de la gestion des infrastructures de systèmes informatiques qui repose sur l’utilisation de fichiers de configuration répétables pour générer des environnements de déploiement cohérents pour le développement CI/CD.
L’infrastructure en tant que code désigne l’approvisionnement et la gestion de l’infrastructure, y compris le matériel, les ressources virtuelles, les plateformes, les systèmes de conteneurs, les services et les topologies, par le biais de définitions déclaratives ou en script (en code) plutôt que par une configuration manuelle ou l’utilisation d’outils de configuration traditionnels. Elle sépare les configurations, les politiques, les profils, les scripts et les modèles du matériel ou des logiciels sur lesquels ils sont déployés afin qu’ils puissent être stockés, partagés, révisés et appliqués comme du code.
Cette approche, qui s’est développée avec la popularité des infrastructures en cloud, est issue d’un état d’esprit DevOps et applique le même type de contrôle de version et de répétabilité à l’orchestration de l’infrastructure que ce que les développeurs utilisent pour le code source des applications. L’approche IaC permet une intégration, une livraison et un déploiement continus en recréant le même environnement d’infrastructure à chaque réapplication.
La possibilité de traiter l’infrastructure comme du code apporte les avantages de l’automatisation, de la visibilité, de l’efficacité et de l’évolutivité à la gestion des infrastructures, de sorte que les applications peuvent être déployées plus rapidement et de manière plus fiable, avec moins d’efforts manuels et de risques d’erreurs humaines ou de vulnérabilités de sécurité. La configuration étant découplée du système, elle peut être plus facilement déployée sur un autre système similaire. De cette manière, elle réduit les difficultés liées à la migration d’un centre de données vers un cloud ou d’un cloud vers un autre.
L’IaC facilite également les stratégies de développement agile et de CI/CD en garantissant que les environnements de sandbox, de test et de production seront identiques et resteront fiables au fil du temps, car ils sont tous configurés avec le même code ou les mêmes scripts déclaratifs.
La configuration par IaC de serveurs, d’équilibreurs de charge, de machines virtuelles et d’autres ressources de centres de données ou de clouds peut être réalisée soit par des approches impératives qui spécifient des instructions (sans détailler le résultat), soit par des approches déclaratives qui spécifient le résultat de la configuration souhaitée (sans détailler la manière d’y parvenir, qui peut être basée sur des flux de travail et modèles préexistants). Pour percevoir la différence, on peut les comparer aux possibilités de demander un sandwich en faisant confiance au cuisinier pour savoir quelles étapes doivent être prises et dans quel ordre (approche déclarative), ou de spécifier chaque étape de la recette pour sans nécessairement mentionner qu’elles aboutiront à un sandwich (approche impérative).
Que l’on utilise une approche déclarative ou impérative, l’IaC automatise l’approvisionnement et la gestion des infrastructures.
La plateforme BIG-IP peut être traitée comme du code avec des plug-ins ou des extensions F5 Application Services 3 (AS3) pour la configuration IaC et des outils de contrôle de version tels que Terraform et Ansible.
L’Automation Toolchain de F5 comprend des extensions AS3 et Declarative Onboarding (DO). AS3 est un mécanisme flexible et peu coûteux, basé sur des déclarations JSON, pour configurer des services d’application de L4 à L7 sur un système BIG-IP. Les extensions DO permettent une intégration déclarative L1 à L3 pour les produits BIG-IP.