Automação de Infraestrutura com Pulumi e Crossplane: IaC de Próxima Geração
A Evolução do Infrastructure as Code
Terraform estabeleceu o padrão de IaC declarativo com HCL. Mas HCL tem limitações: não é uma linguagem de programação completa (sem loops complexos, sem testes unitários nativos, sem type safety). Pulumi resolve isso usando TypeScript, Python, Go ou Java para definir infraestrutura — aproveita toda a toolchain de software (linters, testes, IDEs). Crossplane vai além: transforma o cluster Kubernetes em um control plane universal que provisiona recursos em qualquer cloud usando Custom Resources.
📊 Adoção de IaC Avançado — 2025
Pulumi: IaC com Linguagens de Programação
Com Pulumi, você escreve infraestrutura em TypeScript/Python/Go, com loops reais, condicionais, abstrações de classe e testes unitários. `pulumi up` calcula o diff entre o estado atual e o desejado (similar ao terraform plan/apply). O Pulumi Cloud (ou self-hosted) armazena o state. Componentes reutilizáveis podem ser publicados no Pulumi Registry como pacotes NPM/PyPI — infraestrutura como biblioteca. Isso permite que a equipe de plataforma distribua abstrações de alto nível (crie um cluster EKS com uma linha de código).
TypeScript para Infra
Type safety, autocompletion no IDE, refactoring seguro. Loop sobre lista de ambientes para criar 10 buckets com uma função.
Testes Unitários
Pulumi permite testes com Jest/pytest que validam configurações de infraestrutura antes do deploy — IaC com TDD.
Crossplane Providers
Providers para AWS, Azure, GCP, Kubernetes — cada um expõe CRDs que representam recursos cloud nativamente no K8s.
Composite Resources
Crossplane Compositions criam abstrações: um único CRD “Database” provisiona RDS + security group + DNS + backup automaticamente.
GitOps com Crossplane
ArgoCD gerencia Crossplane Claims via Git — infraestrutura provisionada automaticamente quando PR é mergeado.
Segredos e IRSA
Pulumi ESC e Crossplane integram com Vault e AWS Secrets Manager — sem secrets hardcoded em código ou Git.
⚠️ Quando Usar Cada Ferramenta
Para equipes que já usam Terraform com sucesso, migrar não é obrigatório. Terraform é estável e amplamente documentado.
Ideal para times de plataforma que querem criar bibliotecas de infraestrutura reutilizáveis com type safety e testes.
Ideal quando K8s já é a plataforma central e você quer unificar infra e aplicações no mesmo control plane.
Usar Terraform + Pulumi + Crossplane simultaneamente cria sobrecarga cognitiva. Escolha uma estratégia e seja consistente.
Infrastructure as Code é o fundamento da confiabilidade moderna. Sem IaC, cada mudança de infraestrutura é um risco manual não documentado.
— iSecPlus Platform Engineering, 2026
Migrando de Terraform para Pulumi
A migração não precisa ser big bang. Pulumi pode importar state existente do Terraform com `pulumi convert –from terraform`. Comece migrando componentes novos para Pulumi enquanto mantém os existentes no Terraform. O Pulumi Terraform Bridge permite usar providers Terraform dentro do Pulumi — aproveitando o ecossistema massivo de providers Terraform. Para Crossplane, adote gradualmente: comece com um provider (AWS S3, por exemplo) e expanda. A tendência é plataformas de developer internas onde developers solicitam infraestrutura via Crossplane Claims sem escrever IaC diretamente.
