Beyond HCL/YAML
Terraform (HCL), CloudFormation (YAML/JSON), ARM templates (JSON) are dedicated DSLs: expressive but limited in abstraction, reuse, testing. For complex operations, a Turing-complete language with loops, conditionals, modules, tests, refactoring is needed.
The release
Pulumi is founded in 2017 by Joe Duffy (ex-Microsoft, .NET Core architect) and Eric Rudder. Version 1.0 published on 4 September 2019. Apache 2.0 licence for the core. Written in Go, runtime for many languages.
Supported languages
- TypeScript / JavaScript
- Python
- Go
- C# / F# / VB (.NET)
- Java
- YAML (for those who want declarative style)
import * as aws from "@pulumi/aws";
const bucket = new aws.s3.Bucket("my-bucket", {
acl: "private",
tags: { Environment: "prod" }
});
export const bucketName = bucket.id;
Features
- Real code — classes, functions, modules, native package manager
- Type safety — schema-based
- Multi-cloud — AWS, Azure, GCP, Kubernetes, Cloudflare, Datadog, MongoDB Atlas
- Terraform provider bridge — reuses all Terraform providers
- State backend — Pulumi Cloud (managed), S3, Azure Blob, GCS, self-hosted
- Stacks — environments (dev/staging/prod) with separate config
- Policy as Code — CrossGuard with OPA/Rego or TS
- Automation API — Pulumi as library, not just CLI
Terraform vs Pulumi
| Terraform | Pulumi | |
|---|---|---|
| Language | HCL | TS/Python/Go/C#/Java |
| Provider ecosystem | Original | Bridge + native |
| State | Terraform Cloud, local, S3 | Pulumi Cloud, S3, etc. |
| Modularity | HCL modules | Language packages |
| Testing | terratest (Go) | native unit test + property test |
| Core licence 2026 | BUSL 1.1 (since 2023) | Apache 2.0 |
OpenTofu and forks
After the Terraform licence change (2023), Pulumi and OpenTofu have both become pure OSS alternatives. Pulumi has benefited from many users cautious of BUSL leaving.
In the Italian context
Pulumi is used in:
- TypeScript-first teams managing cloud
- Italian cloud-native startups
- Fintech — policy as code integrated with infrastructure
- Platform engineering of large companies
- B2B SaaS deploying per-client with Automation API
The Italian audience has been evaluating it as alternative to Terraform from 2023-2024 onward, especially in TypeScript/Python full-stack teams.
References: Pulumi 1.0 (4 September 2019). Joe Duffy, Eric Rudder. Apache 2.0 licence (core). Multi-language: TS, Python, Go, C#, Java. Terraform provider bridge. Automation API.
