Terraform é simples de começar e fácil de complicar. Quando várias pessoas passam a mexer na mesma infraestrutura, algumas regras fazem toda a diferença.
1. Estado remoto com locking
Nunca guarde o terraform.tfstate localmente ou no Git. Use um backend remoto com bloqueio para evitar alterações concorrentes.
terraform {
backend "s3" {
bucket = "empresa-tfstate"
key = "prod/network/terraform.tfstate"
region = "eu-west-1"
use_lockfile = true
encrypt = true
}
}
2. Fixe as versões
Defina required_version e restrinja as versões dos providers. Faça commit do .terraform.lock.hcl.
3. Módulos pequenos e reutilizáveis
Um módulo deve fazer uma coisa bem feita (rede, cluster, base de dados) e expor apenas as variáveis necessárias.
4. Um estado por ambiente e por domínio
Separar dev, staging e prod, e também rede, dados e aplicações, reduz o raio de impacto de cada apply.
5. Validação automática no pipeline
terraform fmt -checketerraform validatetflintpara erros e convençõescheckovoutrivy configpara segurança
6. Plan no pull request, apply após aprovação
O resultado do terraform plan deve ser publicado no PR para revisão. O apply corre apenas a partir do ramo principal.
7. Sem segredos no código
Use um gestor de segredos (AWS Secrets Manager, Azure Key Vault, Vault) e marque as variáveis sensíveis com sensitive = true.
Estas práticas funcionam igualmente com OpenTofu, o fork open source do Terraform.
Precisa de ajuda com isto?
Fale connosco para um orçamento ou uma análise da sua infraestrutura.