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 | MPL 2.0 | Apache 2.0 |
Nel contesto italiano
Pulumi sta entrando nei team italiani full-stack TypeScript/Python come alternativa a Terraform: startup cloud-native, fintech con policy as code, platform engineering di aziende grandi, SaaS B2B con deploy multi-cliente via Automation API.
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.