Oltre gli HCL/YAML
Terraform (HCL), CloudFormation (YAML/JSON), ARM templates (JSON) sono DSL dedicati: espressivi ma limitati in astrazione, riuso, testing. Per operazioni complesse serve un linguaggio Turing-completo con loop, condizionali, moduli, test, refactoring.
Il rilascio
Pulumi è fondata nel 2017 da Joe Duffy (ex-Microsoft, architetto .NET Core) e Eric Rudder. Versione 1.0 pubblicata il 4 settembre 2019. Licenza Apache 2.0 per il core. Scritto in Go, runtime per molti linguaggi.
Linguaggi supportati
- TypeScript / JavaScript
- Python
- Go
- C# / F# / VB (.NET)
- Java
- YAML (per chi vuole stile dichiarativo)
import * as aws from "@pulumi/aws";
const bucket = new aws.s3.Bucket("my-bucket", {
acl: "private",
tags: { Environment: "prod" }
});
export const bucketName = bucket.id;
Caratteristiche
- Real code — classi, funzioni, moduli, package manager nativo
- Type safety — schema-based
- Multi-cloud — AWS, Azure, GCP, Kubernetes, Cloudflare, Datadog, MongoDB Atlas
- Terraform provider bridge — riusa tutti i provider Terraform
- State backend — Pulumi Cloud (managed), S3, Azure Blob, GCS, self-hosted
- Stacks — ambienti (dev/staging/prod) con config separata
- Policy as Code — CrossGuard con OPA/Rego o TS
- Automation API — Pulumi come libreria, non solo CLI
Terraform vs Pulumi
| Terraform | Pulumi | |
|---|---|---|
| Linguaggio | HCL | TS/Python/Go/C#/Java |
| Ecosystem provider | Originale | Bridge + nativo |
| State | Terraform Cloud, locale, S3 | Pulumi Cloud, S3, etc. |
| Modularità | Moduli HCL | Package del linguaggio |
| Testing | terratest (Go) | native unit test + property test |
| Licenza core 2026 | BUSL 1.1 (da 2023) | Apache 2.0 |
OpenTofu e fork
Dopo il cambio di licenza Terraform (2023), Pulumi e OpenTofu sono diventati entrambi alternative OSS pure. Pulumi ha beneficiato dell’uscita di molti utenti cauti verso BUSL.
Nel contesto italiano
Pulumi è usato in:
- Team TypeScript-first che gestiscono cloud
- Startup cloud-native italiane
- Fintech — policy as code integrate con infrastructure
- Platform engineering di aziende grandi
- SaaS B2B che deployano per cliente con Automation API
Il pubblico italiano lo valuta come alternativa a Terraform dal 2023-2024 in avanti, specialmente in team full-stack TypeScript/Python.
Riferimenti: Pulumi 1.0 (4 settembre 2019). Joe Duffy, Eric Rudder. Licenza Apache 2.0 (core). Multi-linguaggio: TS, Python, Go, C#, Java. Terraform provider bridge. Automation API.
