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.