O Que É Terraform? Infrastructure as Code Explicado
Terraform é uma ferramenta de infrastructure-as-code que provisiona e gerencia recursos de nuvem a partir de arquivos de configuração declarativos, rastreando o que existe em um arquivo de state.
O Terraform permite descrever sua infraestrutura (servidores, bancos de dados, redes) em código e tê-la criada e atualizada automaticamente. Em vez de clicar nos consoles de nuvem, você escreve a configuração, revisa um plan de mudanças e o aplica, com o resultado rastreado para que mudanças futuras sejam incrementais.
O que é o Terraform
O Terraform é uma ferramenta open-source de infrastructure-as-code da HashiCorp. Você declara o estado desejado da sua infraestrutura em configuração HCL, e o Terraform usa provider plugins (AWS, GCP, Azure e centenas mais) para criar, atualizar e remover recursos de modo a corresponder. Ele registra o estado do mundo real em um arquivo de state.
Plan e apply
O Terraform compara sua configuração com o state registrado e a nuvem real, então "terraform plan" mostra exatamente o que ele adicionaria, alteraria ou destruiria. "terraform apply" executa esse plan. Esse fluxo plan-then-apply torna as mudanças previsíveis e revisáveis, e o arquivo de state permite que o Terraform gerencie recursos de forma incremental.
Um exemplo de configuração
Uma configuração curta declara um recurso.
resource "aws_s3_bucket" "logs" {
bucket = "my-app-logs"
tags = { Environment = "prod" }
}Papel no CI/CD
No CI/CD, as mudanças do Terraform costumam ser controladas: um pipeline executa "terraform validate" e "terraform plan" em um pull request para que os revisores vejam o diff, e então "terraform apply" é executado no merge. State remoto e state locking evitam que duas execuções entrem em conflito. Rodar plan e apply no CI fornece uma trilha de auditoria e mantém as mudanças de infraestrutura consistentes e revisáveis.
Alternativas
O Pulumi permite escrever infraestrutura em linguagens de propósito geral. O OpenTofu é um fork comunitário do Terraform. Opções cloud-native como AWS CloudFormation e CDK têm como alvo um único provider. O Terraform continua sendo a ferramenta de IaC multi-cloud mais amplamente utilizada.
Principais conclusões
- O Terraform provisiona infraestrutura a partir de configuração declarativa em HCL.
- O plan mostra o diff; o apply o executa; o state rastreia o que existe.
- No CI, faça plan nos PRs e apply no merge, com state remoto e locking.