Skip to content
aicoolies logo

Terraform Review: The Infrastructure as Code Tool That Defined the Category — And the License Change That Shook It

Terraform is the most widely adopted Infrastructure as Code tool, enabling declarative provisioning of cloud resources across AWS, Azure, GCP, and hundreds of other providers. Its HCL language and state management model set the standard for IaC — but HashiCorp's BSL license change in 2023 reshaped the competitive landscape.

reviewed by Raşit Akyol March 28, 2026

Documented evidence

rubric editorial-review-v1

This review is grounded in documented sources and repository analysis. It does not claim a unique hands-on reproducibility record.

Sources checked

Verdict

Terraform is the most mature and widely adopted IaC tool available, with an unmatched provider ecosystem and a workflow that has become the industry standard. The BSL license change is a legitimate concern for organizations that require open-source guarantees — OpenTofu offers a credible alternative in those cases. For teams evaluating IaC tools in 2026, Terraform's capability is not in question; the decision is whether the license terms and HashiCorp's commercial direction align with your organization's values and requirements.

85/100

overall

Speed72
Privacy80
Dev Experience78

What Terraform Does

Terraform didn't invent Infrastructure as Code, but it made it accessible to a generation of developers and operations engineers who had been provisioning cloud resources through web consoles and ad-hoc scripts. The concept is deceptively simple: describe the infrastructure you want in declarative configuration files, run 'terraform apply', and let Terraform figure out how to make reality match your description.

HCL and the Provider Ecosystem

HCL (HashiCorp Configuration Language) is the domain-specific language that defines Terraform configurations. It strikes a balance between readability and expressiveness that most developers find approachable — more structured than YAML, less verbose than JSON, and more constrained than general-purpose languages. Variables, modules, loops, conditionals, and data sources provide enough flexibility for complex infrastructure without the footguns of arbitrary code execution.

The provider ecosystem is Terraform's most significant moat. Over 4,000 providers cover AWS, Azure, Google Cloud, Kubernetes, Cloudflare, Datadog, GitHub, PagerDuty, and virtually every cloud service with an API. Each provider translates HCL configurations into API calls, meaning you can manage your entire infrastructure stack — compute, networking, DNS, monitoring, version control — through a single tool and workflow.

State Management and Modules

State management is both Terraform's superpower and its most common source of pain. Terraform maintains a state file that maps your configuration to real-world resources, enabling it to determine what needs to be created, updated, or destroyed on each apply. This works well when state is properly managed — stored remotely in S3, GCS, or Terraform Cloud — but state drift, state locks, and state corruption are operational realities that every Terraform team eventually encounters.

Modules enable reusable, composable infrastructure patterns. Instead of duplicating VPC configurations across environments, you write a module once and instantiate it with different variables. The Terraform Registry hosts thousands of community modules for common patterns — EKS clusters, RDS databases, VPC networking — that accelerate infrastructure development. Well-structured modules are the difference between maintainable and unmaintainable Terraform codebases.

The Plan-and-Apply Workflow

The plan-and-apply workflow provides a safety net that manual provisioning lacks. Running 'terraform plan' shows exactly what changes will be made before any resource is touched. In CI/CD pipelines, plan output becomes a reviewable artifact that teammates can audit before applying. This preview capability has prevented countless accidental resource deletions and configuration errors.

The License Change and Enterprise Offerings

The BSL license change in August 2023 was the most consequential event in Terraform's history. HashiCorp switched from the open-source MPL 2.0 to the Business Source License, which restricts competitive use. This prompted the creation of OpenTofu, a community fork under the Linux Foundation that maintains MPL 2.0 licensing. For organizations that require truly open-source infrastructure tooling, OpenTofu has become a viable alternative with growing ecosystem support.

Terraform Cloud and Terraform Enterprise add collaboration, governance, and operational features on top of the CLI. Remote state management, policy-as-code with Sentinel, cost estimation, private module registries, and team-based access controls address enterprise needs. Terraform Cloud's free tier covers small teams, but the pricing for larger organizations reflects HashiCorp's commercial ambitions.

Learning Curve

The learning curve is moderate but real. Understanding the declarative model, resource dependencies, state management, and module patterns takes time. Debugging 'terraform plan' output that doesn't match expectations requires understanding the provider's API behavior, not just Terraform's abstractions. For complex infrastructure, Terraform configurations can become sprawling and difficult to reason about without disciplined code organization.

The Bottom Line

Terraform remains the tool that most infrastructure engineers know and most organizations use. Its provider ecosystem is unmatched, the plan-and-apply workflow is genuinely valuable, and the community knowledge base is vast. The license change is a legitimate concern that has created a meaningful fork in the ecosystem, but for pure capability and maturity, Terraform is still the benchmark against which every IaC tool is measured.

Pros

  • Provider ecosystem of 4,000+ covers virtually every cloud service, SaaS platform, and API available
  • Plan-and-apply workflow shows exact changes before execution, preventing accidental resource modifications
  • Module system enables reusable, composable infrastructure patterns with a rich community registry
  • HCL language balances readability and expressiveness — approachable without sacrificing capability
  • Terraform Cloud adds collaboration, policy enforcement, and governance for team-based infrastructure management
  • Massive community knowledge base with extensive documentation, tutorials, and battle-tested patterns
  • State management enables tracking of real-world resources and intelligent change detection across applies

Cons

  • BSL license change restricts competitive use and has fractured the community with the OpenTofu fork
  • State management is a persistent operational concern — drift, locks, and corruption require active management
  • Complex configurations can become sprawling and difficult to reason about without disciplined organization
  • HCL is a proprietary DSL — skills don't transfer to other tools and lack general-purpose language flexibility
  • Debugging plan output requires understanding provider API behavior beneath Terraform's abstractions

View Terraform on aicoolies

Pricing, platforms, and community stacks — explore the full tool page

Comparisons with Terraform

Terraform logo
Terraform
vs
OpenTofu logo
OpenTofu

Terraform vs OpenTofu — Established IaC Standard vs Community-Governed Open-Source Fork

Terraform and OpenTofu share the same codebase origin but diverge on licensing and governance. Terraform operates under HashiCorp's Business Source License with the largest IaC ecosystem of 4,800+ providers. OpenTofu is the Linux Foundation-governed fork under the Mozilla Public License 2.0 with 100 percent backward compatibility to Terraform 1.5.x, offering an open-source guarantee that Terraform no longer provides.

Terraform logo
Terraform
vs
Pulumi logo
Pulumi

Terraform vs Pulumi — Declarative HCL vs Programmatic IaC with Real Languages

Terraform and Pulumi are the two most prominent Infrastructure as Code tools in 2026, representing fundamentally different approaches to cloud provisioning. Terraform uses HCL, a purpose-built declarative language with the largest provider ecosystem of 4,800+ integrations. Pulumi lets you define infrastructure in general-purpose programming languages like TypeScript, Python, and Go, bringing full language features to infrastructure management.

Atlantis logo
Atlantis
vs
Terraform logo
Terraform

Atlantis vs Terraform Cloud — Open-Source PR Automation vs HashiCorp's Managed Platform

Atlantis and Terraform Cloud both automate Terraform workflows through pull requests, but they represent fundamentally different approaches. Atlantis is a free, self-hosted Go binary that adds plan/apply automation to your existing Git workflow. Terraform Cloud is HashiCorp's managed platform with state management, policy enforcement, and a full governance suite. This comparison helps platform teams choose between open-source freedom and managed enterprise features.

Alternatives to Terraform

Web platform for modern development

Jamstack-focused cloud platform specializing in deploying static sites, serverless functions, and modern web applications with Git-based CI/CD. Features instant rollbacks, deploy previews for every PR, split testing, edge functions, form handling, identity/auth, and a global CDN with automatic HTTPS. Native support for Next.js, Nuxt, Gatsby, Hugo, Astro, and all major static site generators. Free $0 forever plan plus Personal and Pro credit-based tiers for growing traffic and team workflows.

freemium

Infrastructure, instantly

Modern cloud platform for deploying full-stack apps, databases, and workers with instant provisioning and usage-based pricing. Deploy from GitHub or CLI with zero config for Node.js, Python, Go, Rust, and Docker. Built-in PostgreSQL, MySQL, Redis, and MongoDB with auto backups. Features private networking, environment management, cron jobs, TCP proxying, and real-time logs. Popular with indie hackers and startups for fast MVPs with a generous free trial including $5 monthly credits.

paid

Run your app close to users

Global application hosting platform that runs full-stack apps, databases, and services close to users in 30+ regions using lightweight Firecracker micro-VMs. Deploy Docker containers or use built-in builders for Rails, Laravel, Django, Node.js, and Go. Features persistent volumes, private networking, auto-scaling, PostgreSQL/Redis managed databases, and a powerful CLI. Ideal for latency-sensitive apps needing multi-region presence. Generous free allowance with pay-as-you-go pricing.

paid

Kubernetes-native cloud infrastructure control plane

Crossplane is a CNCF Graduated open-source project that extends Kubernetes to manage cloud infrastructure through declarative APIs. Platform teams compose custom infrastructure abstractions as Compositions and publish them as self-service APIs. It provisions resources across AWS, Azure, GCP, and 200+ providers directly from kubectl. Used by 450+ organizations with 11,000+ GitHub stars.

Open Source

FAQ

How does Terraform enforce state locking using S3 and DynamoDB?

Writes a LockID item to DynamoDB using conditional writes during plan/apply; preventing concurrent runs and state file corruption across team CI pipelines.

What are the implications of the BSL 1.1 license transition?

HashiCorp moved Terraform from MPLv2 to BSL 1.1, restricting competitive commercial IaC hosting; sparking the Linux Foundation OpenTofu fork with state encryption features.

How does Terraform compute DAGs during plan generation?

Parses HCL into an AST to construct a dependency graph, performing a 3-way diff between configuration, recorded state, and cloud API state to execute concurrent non-dependent nodes.

How should monolithic state files be architected to prevent bottlenecks?

Decompose infrastructure into modular state files by blast radius (Network -> EKS -> App Data), passing cross-layer outputs via remote_state or secret stores (Vault/SSM).

Sources & verification

Sources checked
Content verified

Verification dates are editorial checks. Routine CMS saves and automatic updatedAt timestamps do not advance them.