Infrastructure as Code : déclaratif, idempotence, dérive
Informatique de gestion · Bachelor 3
Infrastructure as Code : décrire, versionner et reproduire l'infrastructure par du code.
Introduction
Dans une démarche DevOps, l'infrastructure (serveurs, réseaux, bases de données, droits) n'est plus configurée à la main mais décrite dans des fichiers texte versionnés. C'est l'Infrastructure as Code (IaC) : les mêmes principes que pour le logiciel s'appliquent, à savoir revue de code, historique, tests et reproductibilité.
On distingue l'approche déclarative, où l'on décrit l'état souhaité et où l'outil calcule les actions nécessaires, et l'approche impérative, où l'on écrit la suite d'étapes à exécuter. Une bonne définition est idempotente : l'appliquer plusieurs fois donne le même résultat qu'une seule fois.
Le principal ennemi est la dérive de configuration (configuration drift) : des modifications manuelles faites en urgence font diverger l'environnement réel du code. Les remèdes sont la détection régulière des écarts, l'interdiction des changements manuels et le recours à des serveurs immuables, remplacés plutôt que modifiés. Pour la gouvernance, le dépôt de code devient aussi le journal des changements d'infrastructure.
Objectifs d'apprentissage
- Définir l'Infrastructure as Code et ses bénéfices
- Distinguer approches déclarative et impérative
- Expliquer l'idempotence sur un exemple
- Décrire la dérive de configuration et ses remèdes
- Identifier les risques liés à la gestion de l'état et des secrets
Concepts clés
- Infrastructure décrite en code
- Les ressources sont définies dans des fichiers versionnés, relus et rejouables.
- Déclaratif et impératif
- Déclaratif : on décrit le résultat voulu ; impératif : on décrit les étapes pour y arriver.
- Idempotence
- Appliquer une opération plusieurs fois produit le même état final que de l'appliquer une fois.
- Dérive de configuration
- Écart progressif entre l'infrastructure réelle et sa description, causé surtout par des modifications manuelles.
- Serveur immuable
- On ne modifie jamais un serveur en place : on déploie une nouvelle version et on supprime l'ancienne.
Conclusion
L'Infrastructure as Code transforme l'exploitation en discipline d'ingénierie : tout changement est écrit, relu, testé et rejouable. L'idempotence rend l'automatisation sûre, tandis que la lutte contre la dérive impose de ne plus toucher l'infrastructure à la main.
Les points de vigilance restent l'état de l'outil, les secrets et la formation des équipes, car un code d'infrastructure erroné peut se déployer très vite.
Cartes
- Qu'est-ce que l'Infrastructure as Code ?
- La description de l'infrastructure dans des fichiers lisibles par machine, versionnés et exécutés par un outil pour créer ou modifier les ressources.
- Quels bénéfices apporte l'IaC ?
- Reproductibilité, rapidité de création d'environnements, traçabilité des changements, revue par les pairs, réduction des erreurs manuelles.
- Quelle différence entre déclaratif et impératif ?
- En déclaratif on indique l'état final souhaité, l'outil détermine les actions ; en impératif on écrit chaque étape dans l'ordre.
- Qu'est-ce qu'une opération idempotente ?
- Une opération qui, rejouée, laisse le système dans le même état : créer un utilisateur « s'il n'existe pas » est idempotent, ajouter une ligne à chaque exécution ne l'est pas.
- Qu'est-ce que la dérive de configuration ?
- La divergence entre l'état réel d'un environnement et l'état décrit dans le code, souvent due à des corrections manuelles non reportées.
- Comment détecter la dérive ?
- En comparant périodiquement l'état réel avec l'état décrit (plan ou audit) et en alertant sur tout écart.
- Qu'est-ce qu'un serveur immuable ?
- Un serveur jamais modifié après son déploiement ; toute évolution passe par la création d'une nouvelle image et le remplacement de l'ancienne instance.
- Pourquoi l'état d'un outil d'IaC doit-il être protégé ?
- Il décrit les ressources gérées et peut contenir des données sensibles ; il doit être stocké de façon partagée, verrouillée et chiffrée.
- Où ranger les mots de passe et clés d'accès ?
- Jamais dans le dépôt de code, mais dans un coffre-fort de secrets dont le pipeline lit les valeurs au moment du déploiement.
- Pourquoi relire les changements d'infrastructure comme du code ?
- Une erreur de réseau ou de droits peut exposer des données ; la revue par les pairs et l'aperçu du plan de changement limitent ce risque.
Glossaire
- Infrastructure as Code
- Pratique qui consiste à gérer l'infrastructure par des fichiers de définition versionnés.
- Approche déclarative
- Description de l'état final souhaité, que l'outil réalise lui-même.
- Idempotence
- Propriété d'une opération dont l'effet est identique qu'on l'exécute une ou plusieurs fois.
- Dérive de configuration
- Écart entre l'infrastructure réelle et sa définition.
- Serveur immuable
- Serveur remplacé plutôt que modifié lors de chaque évolution.
- Coffre-fort de secrets
- Service qui stocke et distribue de façon contrôlée mots de passe, clés et certificats.