Qu'est-ce que Infrastructure as Code
Gestion de l'infrastructure par le code
Infrastructure as Code (IaC) est une approche de gestion et de déploiement d'infrastructure utilisant des fichiers de configuration lisibles par machine au lieu d'une configuration manuelle.
Avantages
- Contrôle de version — infrastructure dans Git, historique des modifications
- Reproductibilité — même environnement partout
- Automatisation — déploiement rapide sans actions manuelles
- Documentation — le code sert de documentation
Outils IaC
- Terraform — agnostique au cloud, déclaratif
- AWS CloudFormation — pour AWS
- Pulumi — IaC dans des langages classiques (Python, TypeScript)
- Ansible — gestion de configuration
Déclaratif vs Impératif
- Déclaratif (Terraform) : décrit l'état désiré
- Impératif (scripts) : décrit les étapes à suivre
Pratiques
- Stockage de l'état dans un stockage distant
- Modules pour la réutilisation du code
- CI/CD pour l'application automatique
- Politiques et vérifications (OPA, Sentinel)
Exemple Terraform
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}