Pulumi logo

Pulumi

Write infrastructure with any language, deploy anywhere instantly

Pulumi lets developers define cloud resources using familiar languages like JavaScript, Python, Go, and .NET, supporting AWS, Azure, GCP, Kubernetes and 120+ providers with incremental diffs.

Pulumi banner

Overview

Overview

Pulumi is an open‑source infrastructure‑as‑code platform that lets you describe cloud resources using the programming languages you already know. Whether you prefer JavaScript, TypeScript, Python, Go, .NET, or Java, Pulumi provides stable SDKs that compile to the same deployment model, covering AWS, Azure, Google Cloud, Kubernetes and over 120 additional providers.

How it works

Write a program that creates resources, run pulumi up and Pulumi computes the minimal change set, previews it, and applies the updates. The Automation API lets you embed provisioning into CI/CD pipelines or custom applications, while Pulumi ESC handles secret management securely. State is stored in the Pulumi Service by default, with options for self‑hosted backends. The CLI, language SDKs, and extensive example library make it easy to get started and scale to complex, multi‑cloud architectures.

Highlights

Supports 7 programming languages out of the box
Multi‑cloud: AWS, Azure, GCP, Kubernetes + 120+ providers
Leverages native language features (loops, classes, packages) for reusable IaC
Automation API enables embedding IaC in apps and CI pipelines

Pros

  • Familiar syntax reduces learning curve for developers
  • Strong type‑checking and IDE support across languages
  • Incremental preview shows exact resource changes before apply
  • Open‑source Apache‑2.0 license with active community

Considerations

  • Requires Pulumi CLI and runtime installation
  • State is stored in Pulumi Service by default, which may need a SaaS subscription for advanced features
  • Ecosystem smaller than Terraform for some niche providers
  • Learning to model infrastructure as code can be non‑trivial for ops‑focused teams

Fit guide

Great for

  • Software teams that already code in JavaScript, Python, Go, or .NET
  • Enterprises needing consistent IaC across multiple clouds
  • Serverless and container workloads where code‑driven deployment shines
  • Projects that want to embed infrastructure provisioning into application CI/CD pipelines

Not ideal when

  • Organizations mandating pure declarative YAML/JSON without custom code
  • Very small scripts where installing Pulumi adds overhead
  • Teams without access to Pulumi Service and unwilling to self‑host state
  • Environments with strict policy against external SaaS dependencies

How teams use it

Scale web tier with loops

Provision three EC2 instances and a security group using a simple for‑loop, reducing repetitive code.

Daily Hacker News archive

Run a scheduled Lambda that fetches news and stores snapshots in DynamoDB each morning.

Kubernetes microservice deployment

Define Deployment, Service, and ConfigMap in TypeScript and let Pulumi manage rollout across clusters.

Multi‑cloud data pipeline

Create an S3 bucket in AWS and a Blob storage container in Azure from a single Pulumi program, keeping resources in sync.

Tech snapshot

Go71%
Python12%
TypeScript8%
JavaScript8%
Shell1%
Makefile1%

Tags

kubernetesawscontainerscloud-computinggoiacfsharppythongcpcloudinfrastructure-as-codeazureserverlessgolangtypescriptjavascriptcsharpdotnet

Frequently asked questions

Which programming languages can I use with Pulumi?

Pulumi provides stable SDKs for JavaScript, TypeScript, Python, Go, .NET (C#, F#, VB.NET), Java, and a YAML option.

Where is the infrastructure state stored?

By default Pulumi stores state in the Pulumi Service, but you can configure self‑hosted backends such as local files, cloud storage, or other supported stores.

Can Pulumi be used in CI/CD pipelines?

Yes, the Automation API and `pulumi up`/`pulumi destroy` commands can be scripted, and Pulumi integrates with popular CI systems.

Where can I find examples and documentation?

The Pulumi website offers tutorials, a full reference guide, and a repository of examples covering containers, serverless, and multi‑cloud scenarios.

Project at a glance

Active
Stars
24,557
Watchers
24,557
Forks
1,294
LicenseApache-2.0
Repo age9 years old
Last commit3 hours ago
Primary languageGo

Last synced 3 hours ago