Comparison table
Side-by-side facts from official documentation where available.
This table is a selection aid; it does not provide a global ranking.
| Ansible | Configuration management | Declarative YAML playbooks | Managed nodes (servers) | YAML | No separate state backend | GPL-3.0 |
|---|---|---|---|---|---|---|
| AWS CDK | Infrastructure provisioning | General-purpose programming languages | AWS | TypeScript, JavaScript, Python, Java, C#, Go | Service-managed (CloudFormation stack state) | Apache-2.0 |
| AWS CloudFormation | Infrastructure provisioning | Declarative templates | AWS | YAML, JSON | Service-managed (CloudFormation stack state) | AWS Service Terms (proprietary) |
| Chef Infra | Configuration management | Desired-state configuration (Ruby DSL: resources and recipes) | Not stated in official docs | Ruby DSL | No separate state backend | Apache-2.0 |
| Crossplane | Control plane and orchestration | Kubernetes custom resources (declarative APIs) | Kubernetes-based control planes | Kubernetes YAML | Kubernetes API state | Apache-2.0 |
| formae | Infrastructure provisioning | Declarative code (Pkl) | Not stated in official docs | Pkl | No separate state backend | FSL-1.1-ALv2 |
| OpenTofu | Infrastructure provisioning | Declarative configuration (OpenTofu language) | Multi-cloud | Terraform/OpenTofu language (HCL) | OpenTofu state backend (local or remote) | MPL-2.0 |
| Pulumi | Infrastructure provisioning | General-purpose programming languages (optional YAML) | Multi-cloud | TypeScript, JavaScript, Python, Go, .NET, Java, YAML | Pulumi state backend (managed or self-managed) | Apache-2.0 |
| Puppet | Configuration management | Declarative Puppet language | Not stated in official docs | Puppet DSL | No separate state backend | Apache-2.0 |
| Terraform | Infrastructure provisioning | Declarative configuration language (HCL) | Multi-cloud | HCL | Terraform state backend (local or remote) | Business Source License 1.1 |