Search iThub

Search tools, categories and collections. Type at least two characters.

Explore all tools
↑ ↓ to explore resultsEnter to open · Esc to close

Pulumi vs Terraform

Key differences, specifications and fit guidance for Pulumi and Terraform, compiled from official documentation and the iThub profiles.

Pulumi is an infrastructure as code platform where you define cloud resources in languages such as Python, Go, .NET, Java and YAML, with a free tier.

Pricing
Freemium
Deployment
Self-hosting supported
Source
Open-source edition
Platforms
Not recorded

Terraform codifies infrastructure as declarative configuration; versions 1.6.0 and later are source-available under the Business Source License, owned by IBM.

Pricing
Freemium · Free edition or plan
Deployment
Self-hosting supported
Source
Open source not recorded
Platforms
Windows, macOS, Linux
Written by
iThub editorial team
Updated
Sources checked
Official sources
8
Views
0
On this page
  1. Quick verdict
  2. Key differences
  3. Specifications
  4. What are Pulumi and Terraform?
  5. How to evaluate
  6. FAQ
  7. Sources

Quick verdict

Choose Terraform if your team wants a declarative configuration language (HCL) and the HashiCorp workflow around HCP Terraform; choose Pulumi if you want to write infrastructure in Python, TypeScript, Go, .NET or Java and reuse the testing and packaging tools of those languages. Both preview changes before applying them and track state. The deciding factors are language and licence: Terraform 1.6 and later uses the Business Source License 1.1 with a production-use grant, while the Pulumi CLI and SDKs are Apache 2.0. Pulumi can adapt Terraform providers and read Terraform state, which makes a gradual move possible.

Choose Pulumi if

Shortlist Pulumi when developers want infrastructure in the same language as their applications, need an Apache 2.0 licensed CLI, or want to embed deployments in internal tools through the Automation API.

Choose Terraform if

Shortlist Terraform when your team prefers declarative HCL configuration, relies on modules and providers from the Terraform Registry, and plans to run shared state and remote runs in HCP Terraform or Terraform Enterprise.

Key differences

Key differences between Pulumi vs Terraform
AspectPulumiTerraform
Configuration languagePulumi runs programs written in Python, TypeScript, JavaScript, Go, .NET or Java, and also accepts YAML and HCL, so loops, functions and classes come from the host language.Terraform describes infrastructure in HCL configuration files that are declarative: they state the desired end result and Terraform works out the steps.
Licence modelThe Pulumi CLI and SDKs are open source under the Apache 2.0 license; Pulumi Cloud, the service for managed state, secrets and policy, is a commercial product.Terraform 1.6.0 and later is under the Business Source License 1.1, which allows production use but not offering it to third parties as a competing hosted or embedded product.
Default state storageThe hosted Pulumi Cloud backend is the default; self-managed backends include Amazon S3, Azure Blob Storage, Google Cloud Storage and local files, with locking on the cloud backends.By default state sits in a local terraform.tfstate file; HashiCorp recommends HCP Terraform or a remote backend so a team can share state safely.
Managed service pricingPulumi Cloud bills managed IaC resources by the hour, $0.00025 per resource hour on Essentials and from $0.0005 on Pro, and stays free for open source and individuals.HCP Terraform lets small teams start free with remote runs and remote state; paid editions add more than five users, team permissions, audit logging and drift detection.
Self-hosted control planeA self-hosted Pulumi Cloud is available in the Enterprise edition for companies with specific data control requirements.Terraform Enterprise is HashiCorp's self-hosted distribution of HCP Terraform, sold to organizations with advanced security and compliance needs.
Automation and embeddingThe Automation API lets a host application drive Pulumi deployments without shelling out to the CLI, for example inside an internal developer platform.Terraform is driven through its CLI: the core repository holds the command line interface and the main graph engine, and HCP Terraform adds remote runs.
Reuse and testingPulumi programs are ordinary code, so they are tested with the frameworks of their language, such as Jest, pytest, Go's testing package or xUnit.Reuse comes through modules, configurable collections of infrastructure that you write yourself or take from the public Terraform Registry.
Providers and interoperabilityPulumi can adapt any Terraform provider through its Terraform bridge, read outputs from existing Terraform state, and convert HCL into a Pulumi program.Thousands of providers written by HashiCorp and the community let Terraform manage many types of resources and services.

More specifications

From the iThub profiles. “Not recorded” means the profile does not confirm it. Confirm prices and editions with each vendor.

Pulumi vs Terraform specifications
AttributePulumiTerraform
Starting priceSee vendor pricing ↗Free edition or plan
APINot recordedYes ↗
Founded20172014
HeadquartersSeattle, USASan Francisco, California, USA
GitHub stars25.8K ↗50.2K ↗
DocumentationOfficial docs ↗Official docs ↗

What are Pulumi and Terraform?

Pulumi

Pulumi is an infrastructure as code platform. Instead of a separate configuration language, engineers write code in languages they already know, and Pulumi provisions and manages the resources on AWS, Azure, Google Cloud, Kubernetes and a large set of other providers. Its About page lists Node.js, Python, Go, .NET, Java and YAML as the supported options.

Because the programs are ordinary code, teams can use standard language features such as loops, functions and classes, and reuse the package management of their language. The Automation API lets teams embed infrastructure as code inside other software.

Terraform

Terraform is an infrastructure-as-code tool: infrastructure across supported providers is described in HCL configuration, and Terraform computes a plan of changes before applying them, tracking state to manage resources over time. Since version 1.6 (August 2023), Terraform is licensed under the Business Source License 1.1, which the Open Source Initiative does not recognize as open source, though free use for most internal purposes is still permitted. HashiCorp and Terraform's license are now owned by IBM, which completed its acquisition of HashiCorp in February 2025. OpenTofu is a separately governed, fully open-source (MPL-2.0) fork for teams that require an OSI-approved license.

How to evaluate Pulumi and Terraform

Terraform and Pulumi solve the same problem, provisioning infrastructure from code with a plan step and tracked state, but differ in how that code is written and licensed. Terraform uses declarative HCL files and, from version 1.6, the Business Source License. Pulumi uses general-purpose languages with an Apache 2.0 CLI and SDKs, and defaults to its hosted Pulumi Cloud backend for state.

Decide first who writes and reviews infrastructure code: platform engineers who favour a configuration language, or application developers who already work in a general-purpose language. Then check your licence obligations, where state must live, and how the managed service bills your expected resource count.

Criteria to verify

  • Language skills of the people writing infrastructure
  • Licence terms against your product and hosting plans
  • State backend location, locking and encryption
  • Provider coverage for every platform you manage
  • Managed service cost at your resource count
  • Migration path for existing configuration

Proof-of-concept plan

Pick one real service with networking, compute, IAM and a database. Define it in both tools, store state in the backend you would use in production, run a plan or preview, apply, change one setting, and destroy. Record review effort, test coverage, drift handling, run time in CI and the managed service bill for the same resources.

Advertisements

Frequently asked questions

What is the main difference between Terraform and Pulumi?

The main difference is the language. Terraform uses HCL, a declarative configuration language in which you describe the end state of your infrastructure. Pulumi lets you write infrastructure in Python, TypeScript, JavaScript, Go, .NET or Java, and also supports YAML and HCL. Both tools show planned changes before applying them and keep state that maps your code to real resources.

Is Terraform still open source?

Not under an OSI-approved licence. Terraform 1.6.0 and later is distributed under the Business Source License 1.1, with IBM as licensor. The licence allows production use and internal hosting, but not offering Terraform to third parties on a hosted or embedded basis to compete with IBM's paid versions. Teams that need an open source licence often look at OpenTofu, the MPL-2.0 fork.

Is Pulumi free to use?

The Pulumi CLI and SDKs are open source under Apache 2.0. Pulumi Cloud, the hosted backend, has a free tier that Pulumi says stays free for open source and individuals, and paid editions bill managed IaC resources hourly, for example $0.00025 per resource hour on Essentials. You can also skip Pulumi Cloud and keep state in Amazon S3, Azure Blob Storage, Google Cloud Storage or local files.

Can Pulumi use Terraform providers and existing Terraform state?

Yes. Pulumi's Terraform bridge can adapt any Terraform provider into a Pulumi provider, and Pulumi programs can read outputs from an existing Terraform state file, local or remote. The pulumi convert --from terraform command translates HCL into a Pulumi program. Teams can therefore keep part of their infrastructure in Terraform while new work moves to Pulumi.

Can Terraform and Pulumi be self-hosted?

Yes, both. The Terraform CLI runs on your own machines with local or remote state, and Terraform Enterprise is HashiCorp's self-hosted distribution of HCP Terraform. The Pulumi CLI can store state in your own Amazon S3, Azure Blob Storage, Google Cloud Storage or local files, and a self-hosted Pulumi Cloud is offered in the Enterprise edition for companies with specific data control requirements.

How do HCP Terraform and Pulumi Cloud differ on pricing?

HCP Terraform lets small teams sign up for free, and paid editions add more than five users, team permissions, audit logging and drift detection. Pulumi Cloud bills each managed IaC resource by the hour, at $0.00025 per resource hour on Essentials and from $0.0005 on Pro, and keeps a free tier for open source and individuals. Validate the resource count of your own stacks with each vendor.

Sources

Facts on this page come from these official pages, checked on , and from the iThub profiles. Vendors change plans and features: confirm with them before buying.