Pulumi
Infrastructure-as-Code
Infrastruktura jako kod w prawdziwych językach (TS, Python, Go).
Pulumi pozwala opisywać infrastrukturę w pełnoprawnych językach programowania — TypeScript, Python, Go, C# — zamiast w dedykowanym DSL. Dzięki temu masz pętle, funkcje, pakiety, testy jednostkowe i podpowiedzi IDE bezpośrednio przy definicji zasobów. Pod spodem korzysta z tego samego modelu deklaratywnego co inne narzędzia IaC.
Kiedy używać
- Twój zespół woli język programowania i istniejące narzędzia (testy, lintery, pakiety) zamiast HCL.
- Potrzebujesz abstrakcji wyższego poziomu i logiki przy generowaniu zasobów.
- Chcesz współdzielić komponenty jako zwykłe biblioteki.
Przykład użycia
import * as aws from "@pulumi/aws";
const bucket = new aws.s3.Bucket("assets", {
tags: { project: "eiac" },
});
export const bucketName = bucket.id;
pulumi preview # podgląd zmian
pulumi up # wdrożenie
Warto wiedzieć
- Stan trzymany w Pulumi Cloud lub własnym backendzie (S3/GCS/Azure Blob).
- Umożliwia testy jednostkowe i policy-as-code (CrossGuard).