Skip to content

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