Der Kern-Unterschied
Terraform nutzt HCL (HashiCorp Configuration Language) – eine deklarative Sprache, die ausschließlich für Infrastructure as Code entwickelt wurde. Pulumi hingegen erlaubt Infrastructure as Code in echten Programmiersprachen: TypeScript, Python, Go, C#, Java.
Terraform: Der bewährte Standard
Terraform ist seit über einem Jahrzehnt das Standardwerkzeug für IaC. Mit dem Wechsel zur BSL-Lizenz 2023 entstand das Fork-Projekt OpenTofu als Open-Source-Alternative.
Stärken:
- Riesiges Provider-Ecosystem: Über 3.000 Provider (AWS, GCP, Azure, Kubernetes, etc.)
- HCL ist einsteigerfreundlich: Kein Programmierhintergrund nötig
- Stabile Abstraktion: Terraform-Code von 2019 läuft noch heute
- Tooling: Terraform Cloud, atlantis, tflint, etc.
- Community: Enorm – nahezu jede Frage ist bereits beantwortet
Schwächen:
- HCL hat keine echten Schleifen, Bedingungen oder Abstraktionen → Workarounds nötig
- Testing ist umständlich (terraform plan ≠ echter Unit Test)
- Lizenzänderung (BSL) schreckt Enterprise-Kunden ab
Pulumi: Echte Programmiersprachen für Infra
Pulumi nutzt Standard-Programmiersprachen. Das bedeutet: echte For-Schleifen, Funktionen, Klassen, Unit Tests und IDE-Support.
Stärken:
- Echte Sprachen: TypeScript, Python, Go, C# – keine neue Syntax lernen
- Unit Tests: Infrastruktur-Code testbar wie normaler Code
- Abstraktion: Wiederverwendbare Komponenten als echte Klassen/Module
- IDE-Support: Autocomplete, Refactoring, Linting aus der Box
- AI-Integration: Mit GPT oder Claude Infrastruktur generieren ist einfacher
Schwächen:
- Kleineres Community-Ecosystem als Terraform
- Mehr Setup (braucht Node/Python/Go-Runtime)
- Weniger Dokumentation und Beispiele
Wann welches Tool?
| Szenario | Empfehlung |
|---|---|
| Teams ohne Dev-Hintergrund | Terraform / OpenTofu |
| Software-Teams mit IaC | Pulumi |
| Bestehender Terraform-Stack | Terraform / OpenTofu |
| Komplexe, generierte Infrastruktur | Pulumi |
| Open Source bevorzugt | OpenTofu |
Fazit
Terraform bleibt für die meisten Teams die sichere Wahl – etabliert, gut dokumentiert, riesiges Ecosystem. Pulumi ist für Entwicklerteams, die echte Programmiersprachen bevorzugen und komplexe, dynamisch generierte Infrastruktur brauchen, die überzeugendere Lösung. In meinem Setup nutze ich beides: Terraform für Cloud-Infrastruktur, Pulumi für komplexe Kubernetes-Manifeste.