Terraform (Open Source)
Overview
Terraform est un outil d'Infrastructure as Code développé par HashiCorp, permettant de définir, provisionner et gérer l'infrastructure via des fichiers de configuration déclaratifs écrits en HCL (HashiCorp Configuration Language). L'outil permet de créer, modifier et détruire des ressources dans de nombreux providers cloud (AWS, Azure, GCP, etc.) de manière idempotente et reproductible.
Terraform fonctionne selon un modèle d'état (state) qui enregistre l'infrastructure actuelle, permettant de comparer l'état désiré avec l'état réel et d'effectuer uniquement les modifications nécessaires.
Note importante : Depuis août 2023, Terraform utilise la Business Source License 1.1 (BSL) pour les nouvelles versions. Les versions antérieures restent sous licence MPL 2.0. Le projet OpenTofu maintient une version entièrement open-source.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://www.terraform.io/ |
| Licence | BSL 1.1 (Business Source License) depuis août 2023 |
| Nationalité | États-Unis (HashiCorp) |
| Type | Infrastructure as Code, provisioning multi-cloud |
| Déploiement | CLI, Terraform Cloud, CI/CD, cloud, on-prem |
| Difficulté | Intermédiaire |
| Technologies | Go, HCL, providers multi-cloud |
TL;DR
Terraform est idéal si tu veux provisionner et gérer l'infrastructure multi-cloud de manière déclarative et versionnée. Il offre un écosystème mature, une grande variété de providers, une syntaxe HCL lisible et une large communauté. L'outil convient aussi bien aux petits projets qu'aux grandes infrastructures complexes. En contrepartie, la nouvelle licence BSL peut poser des questions pour certains contextes d'usage commercial. La courbe d'apprentissage est significative pour maîtriser les concepts avancés (state management, modules, workspaces).
Compatibilité et intégrations
- Cloud providers : AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud, VMware, etc.
- Écosystème de providers officiels et communautaires très large
- Intégration CI/CD : GitLab CI, GitHub Actions, Jenkins, CircleCI, etc.
- Terraform Cloud/Enterprise pour le state management, collaboration et gouvernance
- Écosystème : Registry Terraform (modules), providers, extensions
Avantages
- Syntaxe HCL déclarative et relativement lisible
- Écosystème mature avec une grande communauté
- Large variété de providers (cloud, on-prem, SaaS)
- Gestion d'état intégrée pour suivre les ressources
- Modules réutilisables et partageables via Terraform Registry
- Plan avant apply pour prévisualiser les changements
Limites
- Licence BSL 1.1 depuis août 2023 (restrictions d'usage commercial dans certains cas)
- Gestion du state peut devenir complexe à grande échelle
- Courbe d'apprentissage pour les concepts avancés
- Dépendance aux providers tiers pour la qualité et la maintenance
- Coûts potentiels pour Terraform Cloud/Enterprise
Ressources
- Site officiel : https://www.terraform.io/
- Documentation : https://developer.hashicorp.com/terraform/docs
- Terraform Registry : https://registry.terraform.io/
- Repository GitHub : https://github.com/hashicorp/terraform