Terraform

An open-source infrastructure as code (IaC) tool by HashiCorp.

Terraform é uma ferramenta open-source de Infrastructure as Code (IaC) desenvolvida pela HashiCorp. Ela permite aos usuários definir e provisionar infraestrutura usando uma linguagem de configuração declarativa (HCL - HashiCorp Configuration Language, ou JSON). Terraform permite construir, alterar e versionar infraestrutura de forma segura e eficiente em múltiplos cloud providers (como AWS, Azure, Google Cloud) e ambientes on-premises. O fluxo de trabalho principal envolve escrever arquivos de configuração, planejar a execução das alterações e aplicar essas alterações para criar ou atualizar recursos de infraestrutura. Terraform mantém um state file que rastreia o estado atual da infraestrutura gerenciada, permitindo fazer alterações incrementais e detectar drift. Sua modularidade, extenso ecossistema de providers e foco em um fluxo de trabalho consistente em diversas plataformas o tornam uma ferramenta poderosa para gerenciar implantações de infraestrutura complexas, automatizar o provisionamento e garantir a consistência e repetibilidade da infraestrutura.

        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;

      

🧠 Teste de conhecimento

1 / 4

🧒 Explique como se eu tivesse 5 anos

Terraform é como um projeto para construir seus sistemas de computador na nuvem. Você escreve exatamente o que quer (como servidores, bancos de dados e redes), e o Terraform constrói para você automaticamente e pode até atualizá-lo depois.

🤓 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.

📚 Fontes