L’infrastructure en tant que code (IaC) est une approche de gestion des infrastructures des systèmes informatiques qui repose sur l’utilisation de fichiers de configuration réutilisables afin de générer des environnements de déploiement cohérents pour le développement CI/CD.

Qu’est-ce que l’infrastructure en tant que code ?

L’infrastructure en tant que code désigne le provisionnement et la gestion de l’infrastructure, notamment du matériel, des ressources virtuelles, des plateformes, des systèmes de conteneurs, des services et des topologies, au moyen de définitions déclaratives ou de scripts — autrement dit, de code — plutôt que par une configuration manuelle ou l’utilisation d’outils de configuration traditionnels. L’IaC dissocie 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 l’essor des infrastructures cloud, découle d’une culture DevOps et applique à l’orchestration de l’infrastructure les mêmes principes de gestion des versions et de reproductibilité que ceux utilisés par les développeurs pour le code source des applications. Une approche IaC prend en charge l’intégration, la livraison et le déploiement continus en créant le même environnement d’infrastructure à chaque application.

schéma

Figure 1 : l’IaC dissocie les ressources de configuration du matériel ou des logiciels afin qu’elles puissent être stockées, partagées et gérées comme du code

Pourquoi l’infrastructure en tant que code est-elle importante ?

La possibilité de traiter l’infrastructure comme du code permet de bénéficier des avantages de l’automatisation, de la visibilité, de l’efficacité et de l’évolutivité dans la gestion de l’infrastructure. Les applications peuvent ainsi être déployées plus rapidement et de manière plus fiable, avec moins d’interventions manuelles et de risques d’erreurs humaines ou de failles de sécurité. La configuration étant dissociée du système, elle peut être déployée plus facilement sur un système similaire situé ailleurs. Cela simplifie les migrations d’un centre de données vers le cloud ou d’un cloud à un autre.

L’IaC prend également en charge les stratégies de développement agile et de CI/CD en garantissant que les environnements sandbox, de test et de production sont identiques et restent cohérents au fil du temps, puisqu’ils sont tous configurés à l’aide du même code déclaratif ou des mêmes scripts.

Comment fonctionne l’infrastructure en tant que code ?

La configuration IaC des serveurs, des répartiteurs de charge, des machines virtuelles et d’autres ressources de centre de données ou de cloud peut être réalisée soit à l’aide d’approches impératives qui définissent des instructions (sans préciser le résultat), soit à l’aide d’approches déclaratives qui définissent le résultat de configuration souhaité (sans préciser comment y parvenir, ce qui peut s’appuyer sur des workflows et des modèles préexistants). Cette différence revient à demander un sandwich en faisant confiance à la personne qui le prépare pour savoir quelles étapes suivre et dans quel ordre (approche déclarative), ou à préciser chaque étape nécessaire à sa préparation sans nécessairement indiquer qu’elles aboutiront à un sandwich (approche impérative).

Qu’une approche déclarative ou impérative soit utilisée, l’IaC automatise le provisionnement et la gestion de l’infrastructure.

Comment F5 gère-t-il l’infrastructure en tant que code ?

La plateforme F5 BIG-IP peut être gérée « comme du code » à l’aide de plug-ins ou d’extensions F5 Application Services 3 (AS3), avec des outils de configuration IaC et de gestion des versions tels que Terraform et Ansible.

La chaîne d’outils d’automatisation F5 intègre les extensions AS3 et F5 Declarative Onboarding (DO). AS3 est un mécanisme flexible et léger, basé sur des déclarations JSON, qui permet de configurer les services applicatifs L4 à L7 sur un système BIG-IP. Les extensions DO permettent l’intégration déclarative L1 à L3 des produits BIG-IP.