Case Study
Fábrica de módulos Terraform: 200+ módulos, 15 teams, governance as code
Registry privado, semantic versioning, terratest, checkov, infracost, renovate, OPA policies. Provisionamento self-service via ServiceNow.
TerraformIaCMulti-cloudEnterprise

O Desafio
Enterprise com 15 squads de plataforma, cada uma escrevendo Terraform do zero, duplicação massiva, drift constante, sem padronização de naming, tagging, security. Provisionamento manual via ticket: 4 horas, erro humano frequente, auditoria impossível.
Gaps
- Código duplicado: 80% boilerplate (VPC, IAM, networking, monitoring) replicado
- Sem versionamento: Módulos copiados, não versionados, breaking changes silenciosos
- Zero testes: Nenhum terratest, checkov, plan validation no CI
- Custo invisível: infracost ausente, surpresas na fatura
- Governança manual: Review humano, lento, inconsistente, sem policy-as-code
A Solução: Module Factory + Self-Service
Infra como produto interno: módulos versionados, testados, documentados, com policy enforcement automatizado e portal self-service.
Estrutura do Registry Privado
- Monorepo (GitHub): /modules/{network,security,compute,data,observability,identity} Semantic versioning: v1.0.0 → v1.1.0 (minor) → v2.0.0 (breaking) Changelog automático (conventional commits + release-please) Documentação: README gerado (terraform-docs), examples/, CHANGELOG.md Registry: Terraform Cloud Private Registry / GitHub Pages + index.json
Qualidade Automatizada (Pipeline)
- Terratest (Go): unit + integration tests em conta AWS/Azure/GCP efêmera Checkov: 200+ policies (CIS, PCI, custom) — fail no PR se high/critical Infracost: breakdown por recurso, diff no PR, alerta se > 10% change TFLint: naming conventions, deprecated syntax, provider versions Renovate: auto-update providers, modules, GitHub Actions — PRs agrupados
Policy-as-Code (OPA + Sentinel)
- Mandatory tags: cost-center, owner, environment, data-classification Naming: regex padrões (rg-{env}-{app}-{region}, vnet-{env}-{region}) Security: no public IP, encryption at rest, private endpoints, NSG default-deny Cost: max instance size, require savings plan eligibility, infracost threshold Drift: Terraform Cloud run tasks → OPA eval plan → block apply se violado
Self-Service via ServiceNow
- Catálogo: VPC, AKS/EKS/OKE, PostgreSQL, Kafka, Redis, VM, Storage, DNS Formulário dinâmico: validação client-side (OPA Rego no browser via WASM) Aprovação: workflow ServiceNow (gestor → sec → finops → auto-provision) Execução: GitHub Actions OIDC → Terraform Cloud workspace efêmero → apply Output: link run, recursos criados, custos estimados, documentação auto-linkada
FinOps & Showback Integrado
- Infracost no PR: custo estimado antes de merge, alerta Slack se > threshold Tagging enforcado → Cost Explorer / Cost Management nativo por cost-center Relatório mensal: custo real vs estimado, drift financeiro, otimizações Chargeback opcional: rateback por squad via ServiceNow CMDB integration
Enablement & Inner Source
- Inner source: squads contribuem módulos, review por platform team Office hours semanais: dúvidas, patterns, new module requests Treinamento: Terraform Associate, testing, contributing guide Métricas: adoção (% recursos via módulo), lead time PR, defect rate
Resultados Mensuráveis
200+módulos publicados
85%recursos via módulo
4h→15minprovisionamento
0drift não detectado
Depoimento do Platform Engineering Lead: "Antes cada squad reinventava a roda. Hoje provisionam VPC+EKS+RDS+Monitoring em 15 min via ServiceNow, com security, cost e compliance garantidos por código. A fábrica pagou-se no 3º mês."
Tecnologias & Ferramentas
Terraform Cloud
Terratest
Checkov
Infracost
Renovate
OPA Gatekeeper
ServiceNow
GitHub Actions
Resumo do Case
- Cliente
- Enterprise (Multinacional)
- Setor
- Tecnologia / Serviços Financeiros
- Squads
- 15 platform teams
- Providers
- AWS, Azure, GCP, OCI
- Módulos
- 200+ (v1.x → v2.x)
- Pipeline
- GitHub Actions + Terraform Cloud
- Duração
- 6 meses (contínuo)
- Equipe IT Cloud
- 3 platform engineers + 1 sec
Próximos Passos
- Crossplane: compor recursos K8s + cloud via GitOps Terraform Test (native) migração gradual do Terratest Module registry UI custom (Backstage plugin)
Seu próximo case começa com uma conversa.
Tem desafio parecido? Vamos entender seu contexto e mostrar o caminho mais curto para o resultado.
Falar com a IT Cloud