Skip to main content
Account

Pulumi

Pulumi defines cloud infrastructure in languages like TypeScript, Python and Go. Learn how stacks, components, state and the Automation API work.

Status
Stable
Category
Provisioning
Subcategory
Automation & Configuration
License
Apache-2.0
Technology matrix Learn Investing time See the matrix

Pulumi is an Infrastructure as Code tool that lets you define cloud resources in real programming languages — TypeScript, JavaScript, Python, Go, C#, F#, Java, and YAML — instead of a DSL like HCL. It was founded in 2017 by Joe Duffy and colleagues from Microsoft.

Under the hood, a Pulumi program constructs a resource graph by instantiating provider-backed classes. That graph is diffed against a state file during pulumi up, which then calls into provider plugins to create, update, or delete actual cloud resources. Many of Pulumi’s providers are bridged from Terraform providers, so day-one coverage of AWS, Azure, GCP, Kubernetes, and thousands of other services matches Terraform’s, while native providers for AWS, Azure, Google Cloud, and Kubernetes are generated directly from the upstream API specifications for same-day support of new resources. State is stored in a backend — Pulumi Cloud by default, or S3/GCS/Azure Blob/local filesystem.

Because programs are normal code, Pulumi supports real abstractions (functions, classes, packages on npm/PyPI), unit testing with standard frameworks, and imperative logic like loops and conditionals without templating. Higher-level features include Component Resources for reusable abstractions, Stacks for environment isolation, Pulumi ESC for secrets and configuration, CrossGuard for policy-as-code written in TS/Python, and the Automation API for embedding Pulumi into other programs. It is Apache-2.0 licensed with a commercial SaaS for team state, RBAC, and CI/CD orchestration.

Pulumi recordings

10 recordings, newest first

Automation & Configuration

Email signup loads here. You can also manage email preferences in account settings.

Build Pulumi? I'll show you where engineers get stuck with it → Back free content for the community →