Terraform
An open-source infrastructure as code (IaC) tool by HashiCorp.
Terraform est un outil open-source d'Infrastructure as Code (IaC) développé par HashiCorp. Il permet aux utilisateurs de définir et de provisionner l'infrastructure en utilisant un langage de configuration déclaratif (HCL - HashiCorp Configuration Language, ou JSON). Terraform vous permet de construire, modifier et versionner l'infrastructure de manière sûre et efficace sur plusieurs cloud providers (comme AWS, Azure, Google Cloud) et environnements on-premises. Le workflow principal implique l'écriture de fichiers de configuration, la planification de l'exécution des changements et l'application de ces changements pour créer ou mettre à jour des infrastructure resources. Terraform maintient un state file qui suit l'état actuel de l'infrastructure gérée, lui permettant d'effectuer des changements incrémentiels et de détecter le drift. Sa modularité, son vaste écosystème de providers et son focus sur un workflow cohérent sur diverses plateformes en font un outil puissant pour gérer des déploiements d'infrastructure complexes, automatiser le provisioning et assurer la cohérence et la répétabilité de l'infrastructure.
graph LR
Center["Terraform"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Test de connaissances
🧒 Explique-moi comme si j'avais 5 ans
Terraform est comme un plan pour construire vos systèmes informatiques dans le cloud. Vous écrivez exactement ce que vous voulez (comme des serveurs, des bases de données et des réseaux), et Terraform le construit pour vous automatiquement et peut même le mettre à jour plus tard.
🤓 Expert Deep Dive
Terraform's declarative approach contrasts with imperative IaC tools by focusing on the desired end-state rather than the sequence of commands to achieve it. Its state management is crucial; the state file acts as a real-time mapping of configured resources to actual infrastructure objects. This state allows Terraform to perform diffing operations, identifying discrepancies between the configuration and the live environment for planning and applying changes. Providers are plugins that abstract the APIs of various cloud and service providers, enabling Terraform's multi-cloud capabilities. The execution plan generated before applying changes provides a critical safety net, detailing resource creation, modification, and destruction. Advanced features include modules for code reuse, workspaces for managing multiple environments, and a registry for sharing modules and providers.