IaC
Infrastructure as Code Tools: The 2026 Guide
The IaC tools platform teams use in 2026: Terraform, OpenTofu, Pulumi, CloudFormation, CDK, Bicep, Crossplane and Ansible, and the platforms that run them.
2026-11-09 · 6 min read
"Infrastructure as code tools" covers three different layers, and most comparisons mix them up:
- Languages and engines that describe infrastructure and apply it: Terraform, OpenTofu, Pulumi, CloudFormation.
- Platforms that run those engines for a team: remote runs, state, policy, approvals. HCP Terraform, Spacelift, env0, Scalr, Atlantis.
- Governance around them: drift detection, risk-based review, audit.
Pick the engine first. The platform and governance choices depend on it.
IaC tools at a glance
| Tool | How you write it | Clouds | State | Best for |
|---|---|---|---|---|
| Terraform | HCL | Any, through providers | State file you store | The default for multi-cloud teams |
| OpenTofu | HCL | Any, through providers | State file you store, optional encryption | Terraform users who want an open-source license |
| Pulumi | TypeScript, Python, Go, C#, Java, YAML | Any, through providers | Pulumi Cloud or your own backend | Teams that want real programming languages |
| AWS CloudFormation | JSON or YAML | AWS | Managed by AWS | AWS-only shops that want AWS to hold state |
| AWS CDK | TypeScript, Python, Java, C#, Go | AWS | Through CloudFormation | AWS teams who prefer code to templates |
| Azure Bicep | Bicep language | Azure | Azure itself, no state file | Azure-only teams |
| Crossplane | Kubernetes YAML | Any, through providers | Kubernetes API | Platform teams building on Kubernetes |
| Ansible | YAML playbooks | Any | None | Configuring servers and apps after provisioning |
Terraform
The most widely used IaC tool. You describe resources in HCL, Terraform compares them with a state file, and plan shows exactly what will change before apply changes it. Thousands of providers cover every major cloud and most SaaS products.
- Choose it when you run more than one cloud, or want the biggest pool of modules, examples, and engineers who already know it.
- Watch for the license. Since August 2023 Terraform uses the Business Source License, which restricts some competing commercial uses. Most teams using it internally are unaffected.
- Read next: Terraform best practices that hold up in production, and complete Terraform examples for common AWS and Google Cloud architectures.
OpenTofu
The open-source fork of Terraform, maintained under the Linux Foundation with the MPL 2.0 license. It reads the same HCL and state format and works with the same providers, and has added features of its own, such as state encryption.
- Choose it when you want Terraform's workflow under an open-source license, or need a feature OpenTofu has shipped first.
- Watch for small differences between versions. Pin the CLI in CI and rehearse the switch on a copy of state.
- Read next: Terraform vs OpenTofu and the OpenTofu migration checklist.
Pulumi
Infrastructure written in general-purpose languages instead of a configuration language. You get loops, functions, types, unit tests, and your normal package manager.
- Choose it when your team is stronger in TypeScript or Python than in HCL, or your infrastructure needs real logic.
- Watch for code review. Programs can hide what will change; always review the
pulumi previewoutput, not just the code diff.
AWS CloudFormation and AWS CDK
CloudFormation is AWS's own IaC service: JSON or YAML templates, with state held by AWS and built-in drift detection. The AWS CDK lets you write the same thing in TypeScript, Python, Java, C#, or Go, and turns it into CloudFormation.
- Choose them when you are AWS-only and want AWS to own state and rollback.
- Watch for lock-in. Neither manages other clouds or most SaaS products.
Azure Bicep
Microsoft's language for Azure resources. It compiles to ARM templates, has no state file to manage, and offers a what-if preview before deploying.
- Choose it when you are Azure-only and want first-party support on the day new Azure features ship.
- Watch for the same lock-in as CloudFormation.
Crossplane
Crossplane turns Kubernetes into the control plane for cloud resources. You declare a database or a bucket as a Kubernetes object, and Crossplane keeps reconciling it, so drift is corrected continuously.
- Choose it when your platform team already runs everything through Kubernetes and wants self-service APIs for developers.
- Watch for the operating cost: you are running a control plane that your infrastructure depends on.
Ansible
Ansible configures machines and applications: packages, files, services. It can create cloud resources, but it keeps no state, so it cannot show a plan of what will change or detect drift the way Terraform can.
- Choose it when you need to configure servers after they exist. Many teams provision with Terraform and configure with Ansible.
Platforms that run IaC for a team
Once more than a few people apply changes, you need somewhere other than a laptop to run plans: remote state, locking, policy, approvals, and an audit trail. The usual options are HCP Terraform, Spacelift, env0, Scalr, and the open-source Atlantis.
We compare them in Terraform Cloud alternatives and Spacelift alternatives.
Governance: drift, approvals, and policy
Every tool above can tell you what it is about to change. Few tell you what changed without it. Console edits, scripts, and incidents create drift, and someone has to decide whether to import it, reconcile it, or accept it.
- Start with the Terraform drift detection guide. It works with plain Terraform or OpenTofu in CI.
- Decide who approves a terraform apply by risk, not by job title.
- Keep policy in code: policy-as-code patterns.
OrchesTerra sits in this layer. It generates Terraform or OpenTofu from an existing repository, then detects drift and routes fixes through approvals and policy packs across AWS, Azure, GCP, and OCI.
How to choose an IaC tool
- One cloud or several? One: the native tool is reasonable. Several: Terraform, OpenTofu, or Pulumi.
- Who writes it? Infrastructure engineers usually prefer HCL. Application developers often prefer Pulumi or CDK.
- Does the license matter to you? If you need an open-source license, choose OpenTofu over Terraform.
- Do you already run Kubernetes for everything? Then Crossplane is worth a look.
- How will changes be reviewed and drift handled? Decide before you have fifty workspaces, not after.
For most multi-cloud teams in 2026, the practical default is Terraform or OpenTofu for provisioning, Ansible only where servers need configuring, and a platform plus a governance layer once the team grows.
