Pulumi
Infrastructure as Code using general-purpose languages (TypeScript, Python, Go, C#, Java) — real programming for real infrastructure.
Overview
Pulumi is an IaC platform that replaces domain-specific languages with general-purpose programming languages. Instead of HCL, you write infrastructure in TypeScript, Python, Go, C#, Java, or YAML — with full IDE support, unit testing, loops, conditionals, and package management. Pulumi can use Terraform providers under the hood, giving access to the same cloud resources.
Key Facts
| Attribute |
Detail |
| Repository |
github.com/pulumi/pulumi |
| Stars |
~22k+ ⭐ |
| Latest Version |
CLI v3.230.0 (April 2026) |
| Language |
Go (engine), TypeScript/Python/Go/C#/Java (SDKs) |
| License |
Apache 2.0 (engine), Proprietary (Cloud) |
| Company |
Pulumi Corp |
| Config Language |
TypeScript, Python, Go, C#, F#, Java, YAML |
Evaluation
| Pros |
Cons |
| Real programming languages — IDE, testing, refactoring |
Different paradigm from HCL — learning curve for ops |
| Reusable component packages (npm, PyPI, NuGet) |
Smaller ecosystem than Terraform |
| Full unit/integration testing |
Pulumi Cloud for state is SaaS (lock-in risk) |
| Pulumi Neo: AI-assisted IaC |
DIY backends need more setup |
| Apache 2.0 engine |
State management less mature than Terraform |
| Can use Terraform providers |
|
| Automation API for programmatic infra |
|
Architecture
flowchart LR
subgraph Developer["Developer"]
Code["TypeScript / Python / Go\nInfra Code"]
end
subgraph Engine["Pulumi Engine"]
CLI_P["Pulumi CLI"]
SDK["Language SDK\n(runtime)"]
Providers["Provider Plugins\n(AWS, GCP, K8s, etc.)"]
end
subgraph State["State Backend"]
Cloud["Pulumi Cloud\n(managed)"]
DIY["DIY Backend\n(S3, GCS, local)"]
end
subgraph Targets["Cloud Resources"]
AWS_T["AWS"]
GCP_T["GCP"]
K8s_T["Kubernetes"]
end
Code --> CLI_P --> SDK --> Providers
Providers --> Targets
CLI_P --> State
style Engine fill:#8b5cf6,color:#fff
Key Features
| Feature |
Detail |
| Languages |
TypeScript, Python, Go, C#, F#, Java, YAML |
| Testing |
Unit tests with Jest, pytest, Go test, etc. |
| Automation API |
Programmatic infrastructure management |
| Pulumi Neo |
AI-assisted natural language → infra code |
| Component packages |
Shareable via npm, PyPI, NuGet, Go modules |
| K8s Operator |
v2.3+, runs Pulumi programs natively in K8s |
| Policy as Code |
pulumi policy analyze against live state |
| Terraform bridge |
Use Terraform providers in Pulumi programs |
Sources