Compare tools
Side-by-side facts pulled from official documentation.
| Ansible | Configuration management | Declarative YAML playbooks | Not stated in official docs | YAML | No separate state backend |
|---|---|---|---|---|---|
| AWS CDK | Infrastructure provisioning | General-purpose programming languages | AWS | TypeScript, JavaScript, Python, Java, C#, Go | CloudFormation-managed (stack state) |
| AWS CloudFormation | Infrastructure provisioning | Declarative templates | AWS | YAML, JSON | Service-managed (stack state) |
| Chef Infra | Configuration management | Chef Infra resources and recipes | Not stated in official docs | Ruby DSL | No separate state backend |
| Crossplane | Control plane and orchestration | Kubernetes custom resources (declarative APIs) | Kubernetes-based control planes | Kubernetes YAML | Kubernetes API state |
| formae | Infrastructure provisioning | Declarative code (Pkl) | Not stated in official docs | Pkl | No separate state backend |
| OpenTofu | Infrastructure provisioning | Declarative configuration (OpenTofu language) | Multi-cloud | OpenTofu language | OpenTofu state backend (local or remote) |
| Pulumi | Infrastructure provisioning | General-purpose programming languages (and YAML) | Multi-cloud | TypeScript, JavaScript, Python, Go, .NET, Java, YAML | Pulumi state backend (managed or self-managed) |
| Puppet | Configuration management | Declarative Puppet language | Not stated in official docs | Puppet DSL | No separate state backend |
| Terraform | Infrastructure provisioning | Declarative configuration language (HCL) | Multi-cloud | HCL | Terraform state backend (local or remote) |