Pulumi 1.0: IaC with real programming languages

Pulumi 1.0 (September 2019) by Joe Duffy and Eric Rudder: Infrastructure as Code with TypeScript, Python, Go, C#, Java instead of DSL. Multi-cloud, managed state, Terraform provider compatibility. Modern alternative to Terraform.

Open Source PulumiIaCTypeScriptPythonMulti-cloudOpen Source

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

TerraformPulumi
LanguageHCLTS/Python/Go/C#/Java
Provider ecosystemOriginalBridge + native
StateTerraform Cloud, local, S3Pulumi Cloud, S3, etc.
ModularityHCL modulesLanguage packages
Testingterratest (Go)native unit test + property test
Core licence 2026BUSL 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.

Need support? Under attack? Service Status
Need support? Under attack? Service Status