Comparison table

Side-by-side facts from official documentation where available.

This table is a selection aid; it does not provide a global ranking.

AnsibleConfiguration managementDeclarative YAML playbooksManaged nodes (servers)YAMLNo separate state backendGPL-3.0
AWS CDKInfrastructure provisioningGeneral-purpose programming languagesAWSTypeScript, JavaScript, Python, Java, C#, GoService-managed (CloudFormation stack state)Apache-2.0
AWS CloudFormationInfrastructure provisioningDeclarative templatesAWSYAML, JSONService-managed (CloudFormation stack state)AWS Service Terms (proprietary)
Chef InfraConfiguration managementDesired-state configuration (Ruby DSL: resources and recipes)Not stated in official docsRuby DSLNo separate state backendApache-2.0
CrossplaneControl plane and orchestrationKubernetes custom resources (declarative APIs)Kubernetes-based control planesKubernetes YAMLKubernetes API stateApache-2.0
formaeInfrastructure provisioningDeclarative code (Pkl)Not stated in official docsPklNo separate state backendFSL-1.1-ALv2
OpenTofuInfrastructure provisioningDeclarative configuration (OpenTofu language)Multi-cloudTerraform/OpenTofu language (HCL)OpenTofu state backend (local or remote)MPL-2.0
PulumiInfrastructure provisioningGeneral-purpose programming languages (optional YAML)Multi-cloudTypeScript, JavaScript, Python, Go, .NET, Java, YAMLPulumi state backend (managed or self-managed)Apache-2.0
PuppetConfiguration managementDeclarative Puppet languageNot stated in official docsPuppet DSLNo separate state backendApache-2.0
TerraformInfrastructure provisioningDeclarative configuration language (HCL)Multi-cloudHCLTerraform state backend (local or remote)Business Source License 1.1