Terraform nás naučil infrastructure as code. Ale HCL má limity — podmínky jsou krkolomné, cykly omezené, žádné unit testy. Pulumi říká: píšte infrastrukturu v normálním programovacím jazyce.
Pulumi vs. Terraform¶
Pulumi: TypeScript/Python/Go, plný programovací jazyk, existující tooling (IDE, linter, test framework). Terraform: HCL, deklarativní, obrovský ekosystém providerů, battle-tested.
Příklad v TypeScriptu¶
import * as aws from "@pulumi/aws";
import * as k8s from "@pulumi/kubernetes";
const cluster = new aws.eks.Cluster("prod", {
vpcConfig: { subnetIds: subnets.ids }
});
const app = new k8s.apps.v1.Deployment("api", {
spec: { replicas: 3, ... }
}, { provider: cluster.provider });
Výhody reálného jazyka¶
- Loops, conditions, functions — plná síla jazyka
- Unit testy pro infrastrukturu
- IDE podpora (autocomplete, type checking)
- Sdílení kódu jako npm/pip packages
Proč zatím zůstáváme u Terraformu¶
Ekosystém providerů. Komunita. Hiring — najít Terraform inženýra je snazší. A deklarativní přístup HCL je pro review jednodušší než imperativní TypeScript. Ale Pulumi sledujeme pozorně.
Pulumi je budoucnost pro komplexní infrastrukturu¶
Pro jednoduché setupy Terraform stačí. Pro komplexní infrastrukturu s logikou, testováním a komponentizací má Pulumi výraznou výhodu.