Skip to content
Latchkey

Terraform vs Ansible vs Pulumi: qual IaC?

Terraform provisiona infraestrutura de forma declarativa em HCL com state; Ansible configura e orquestra de forma procedural; Pulumi escreve IaC em linguagens reais.

Terraform declara a infraestrutura desejada em HCL e reconcilia via um state file entre muitos providers, destacando-se em provisionamento. Ansible roda tarefas ordenadas sobre SSH (agentless) para configurar servidores e orquestrar mudanças, destacando-se em gestão de configuração e deploy de app. Pulumi expressa infraestrutura em TypeScript, Python ou Go, trazendo loops, funções e testes para a IaC. Eles se sobrepõem mas enfatizam camadas diferentes.

TerraformAnsiblePulumi
ModeloDeclarativo (HCL)Procedural (tarefas YAML)Declarativo (código real)
ForçaProvisionamentoGestão de configuraçãoProvisionamento + lógica
StateState fileStateless (majoritariamente)State (backend)
LinguagemHCLYAMLTS/Python/Go
Melhor paraProvisionamento de nuvemConfig de servidor, orquestraçãoIaC orientada a código

Papéis e sobreposição

Terraform é a escolha comum para provisionar recursos de nuvem de forma declarativa. Ansible é forte para configurar esses recursos, instalar software e orquestrar mudanças multi-etapa sem gerenciar state. Pulumi se adequa a times que querem todo o poder de uma linguagem de programação, abstrações e testes unitários em sua IaC. Muitas empresas combinam Terraform (provisionar) com Ansible (configurar), ou escolhem Pulumi para manter tudo em uma linguagem.

Em CI

Rode plan/preview nos PRs, faça o gate do apply atrás de review e armazene credenciais de nuvem no secret store do CI usando OIDC sempre que possível. Os três rodam em runners gerenciados, onde runners mais rápidos encurtam as etapas de plan, preview e apply.

O veredito

Provisionamento multi-cloud declarativo: Terraform. Configuração de servidores e orquestração procedural: Ansible. IaC em uma linguagem de programação real com lógica e testes: Pulumi. A combinação clássica é Terraform mais Ansible; Pulumi substitui a camada HCL quando os times preferem linguagens de propósito geral.

Guias relacionados