Manually clicking through cloud consoles to create infrastructure is unsustainable. It is slow, error-prone, undocumented, and impossible to reproduce. Infrastructure as Code (IaC) tools solve this by defining infrastructure in configuration files that can be version-controlled, reviewed, tested, and applied consistently.

The IaC landscape has shifted significantly in the past two years. HashiCorp changed Terraform's license from open source to BSL, spawning OpenTofu as a fork. Pulumi has matured into a serious alternative. AWS CDK has evolved beyond an AWS-only tool. Choosing the right IaC tool now requires understanding not just features but also licensing and community dynamics.

Terraform

Terraform remains the most widely adopted IaC tool. According to HashiCorp, Terraform manages infrastructure across 3,000+ providers using a declarative configuration language called HCL (HashiCorp Configuration Language).

Strengths

Limitations

Best for: Teams wanting the largest provider ecosystem and the most community resources.

Pricing: Open source (BSL). Terraform Cloud free tier (up to 500 managed resources). Plus at $0.00014/hour per resource. Standard at $19/user/month. Enterprise pricing available.

OpenTofu

OpenTofu is a community fork of Terraform created in response to the BSL license change. Managed by the Linux Foundation, OpenTofu aims to maintain an MPL-licensed (truly open source) alternative that is compatible with Terraform.

Strengths

Limitations

Best for: Teams that want Terraform's capabilities without the BSL license, and organizations with open-source policies.

Pricing: Free and open source.

Pulumi

Pulumi takes a different approach — instead of a domain-specific language like HCL, you define infrastructure using general-purpose programming languages: TypeScript, Python, Go, C#, Java, or YAML.

Strengths

Limitations

Best for: Development teams that want infrastructure code in the same languages as their application code, with testing and type safety.

Pricing: Free tier (individual, up to 200 resources). Team at $50/month (includes 5 members). Business at $225/month. Enterprise and self-hosted options available.

AWS CDK

AWS CDK (Cloud Development Kit) lets you define AWS infrastructure using TypeScript, Python, Java, C#, or Go. It synthesizes CloudFormation templates from your code.

Strengths

Limitations

Best for: Teams fully committed to AWS that want high-level abstractions with managed state.

Pricing: Free. CloudFormation itself is free (you pay for the resources it creates).

Other Notable Options

Crossplane

Crossplane manages infrastructure using Kubernetes custom resources. If your team already thinks in Kubernetes, Crossplane lets you manage cloud resources using kubectl and Kubernetes manifests.

Best for: Platform teams building internal developer platforms on Kubernetes.

SST (Serverless Stack)

SST provides a modern framework for building serverless applications on AWS, with infrastructure defined in TypeScript. It focuses on the developer experience of building and deploying serverless apps rather than general-purpose infrastructure.

Best for: Teams building serverless applications on AWS.

Ansible

Ansible handles configuration management and application deployment rather than infrastructure provisioning. While it can create cloud resources, it is better suited for configuring servers, deploying applications, and managing operational tasks.

Best for: Server configuration and application deployment (often used alongside Terraform for provisioning).

Comparison Table

FeatureTerraformOpenTofuPulumiAWS CDK
LicenseBSL 1.1MPL 2.0Apache 2.0Apache 2.0
LanguageHCLHCLTypeScript, Python, Go, C#, Java, YAMLTypeScript, Python, Java, C#, Go
State managementSelf-managed or Terraform CloudSelf-managed (encrypted)Pulumi Cloud or self-managedCloudFormation (managed)
Provider count3,000+3,500+ (via registry)150+ native, 1,000+ via bridgeAWS only (200+ services)
Multi-cloudYesYesYesNo (AWS only)
Built-in testingterraform test (basic)YesYes (native frameworks)CDK Assertions
State encryptionPaid (Cloud)Free (built-in)Yes (Cloud or self-managed)N/A (CloudFormation)
AI featuresNoNoPulumi Copilot, Pulumi AIAmazon Q integration
Free tier500 resourcesUnlimited200 resourcesUnlimited

2026 Landscape Update

The IaC landscape continues to evolve rapidly in 2026:

Decision Framework

Choose Terraform if:

Choose OpenTofu if:

Choose Pulumi if:

Choose AWS CDK if:

Migration Considerations

Switching IaC tools is not trivial. Key considerations:

For most teams, the pragmatic choice is to use the new tool for new infrastructure and migrate existing infrastructure gradually rather than attempting a big-bang migration.

The IaC tool you choose matters less than the practice of defining infrastructure as code. Any of these tools is vastly better than manual cloud console operations. Pick the one that matches your team's skills and constraints, and invest in the practice.

Frequently Asked Questions

Should I switch from Terraform to OpenTofu?

If the BSL license is a concern for your organization or you have open-source policies that preclude it, OpenTofu is a drop-in replacement. Existing HCL configurations work with minimal or no changes, and state migration is straightforward. For most teams already using Terraform without license issues, there is no urgent reason to switch — but evaluating OpenTofu for new projects is worthwhile given its Linux Foundation governance and features like built-in state encryption.

Is Pulumi better than Terraform in 2026?

Neither is universally better — it depends on your team's skills and priorities. Pulumi is better for teams that want infrastructure in general-purpose languages with type safety and unit testing. Terraform is better for teams that want the largest provider ecosystem and the most community resources. Pulumi's AI features (Copilot and Pulumi AI) give it an edge for teams wanting AI-assisted infrastructure development, while Terraform's HCL is simpler for teams new to IaC.

Can I use multiple IaC tools together?

Yes, and many organizations do. Common combinations include Terraform or OpenTofu for core infrastructure provisioning with Ansible for server configuration, or AWS CDK for AWS-specific resources alongside Terraform for multi-cloud resources. The key is clear ownership boundaries — each resource should be managed by exactly one tool to avoid state conflicts and drift.

What is the easiest IaC tool for beginners?

AWS CDK is easiest if you are already on AWS and know TypeScript or Python — the high-level L2 and L3 constructs handle security groups, IAM policies, and other details automatically. Terraform has the most learning resources (tutorials, courses, Stack Overflow answers). Pulumi has the gentlest learning curve for developers already comfortable with a supported programming language, since you use familiar tools like IDEs, package managers, and test frameworks.

How do I migrate from Terraform to Pulumi?

Pulumi provides a pulumi import command to import existing cloud resources and a pulumi convert tool to translate HCL to Pulumi code automatically. For large estates, migrate incrementally — start new infrastructure with Pulumi and convert existing Terraform configurations over time. State conversion is the trickiest part; test thoroughly in a staging environment before migrating production infrastructure.

Recommended Reading & Gear

Master infrastructure as code with these resources:

  • Terraform: Up & Running (3rd Ed.) by Yevgeniy Brikman — the most practical guide to Terraform modules, state management, and team workflows — equally useful for OpenTofu
  • Infrastructure as Code (2nd Ed.) by Kief Morris — tool-agnostic patterns for managing infrastructure at scale, covering testing, pipelines, and team topologies
  • Logitech MX Keys S Keyboard — low-profile keys reduce fatigue during long HCL and YAML editing sessions managing infrastructure definitions