Wissen von A bis Z

Terraform

Mit Terraform bauen Sie ganze Cloud-Imperien per Textdatei, während andere noch manuell in der Konsole klicken.

Terraform ist das von HashiCorp entwickelte Werkzeug für Infrastructure as Code, das Cloud- und SaaS-Ressourcen über eine einheitliche, deklarative Sprache (HashiCorp Configuration Language, HCL) bereitstellt. Es nutzt ein Provider-Konzept, bei dem jeder Cloud-Anbieter (AWS, Azure, Google Cloud, Oracle Cloud), aber auch SaaS-Anbieter (GitHub, Datadog, Cloudflare, Auth0) einen eigenen Provider implementiert. So lassen sich Multi-Cloud- und Multi-Provider-Setups in einem konsistenten Tool beschreiben. Die Engine berechnet aus der gewünschten Soll-Konfiguration und einem persistierten "State" einen Ausführungsplan, den Anwender vor dem Apply prüfen können.

Eingesetzt wird Terraform für die Bereitstellung von Cloud-Ressourcen aller Art: Netzwerke, Compute, Storage, Datenbanken, IAM, Kubernetes-Cluster, DNS, Monitoring-Konfiguration und SaaS-Konfiguration. Über Module lassen sich wiederverwendbare Bausteine definieren, über Workspaces oder separate State-Files mehrere Umgebungen verwalten. State wird typischerweise in einer Backend-Variante gespeichert — Azure Storage, AWS S3 mit DynamoDB-Lock, GCS, Terraform Cloud, oder selbst gehostete Services wie Atlantis und Spacelift.

Cloud-spezifische Werkzeuge wie ARM/Bicep oder CloudFormation lösen den jeweiligen Anbieter elegant ab, sind aber an ihn gebunden. Terraform abstrahiert über Provider und ermöglicht es, hybride und Multi-Cloud-Architekturen einheitlich zu pflegen. Über das Plan-Apply-Modell mit explizitem Vorschau-Schritt wird Drift-Detection und Change-Management deutlich beherrschbarer als bei rein imperativen Skripten.

Bis Version 1.0 (Juni 2021) galt das Tool als ausgereiftes, aber sich stetig wandelndes Werkzeug. Im August 2023 wechselte HashiCorp die Lizenz von Mozilla Public License auf Business Source License (BUSL). Als Reaktion entstand der Fork OpenTofu unter dem Dach der Linux Foundation, der als kompatibler, unter MPL stehender Nachfolger gepflegt wird und ab 2024 erste eigene Funktionen einführte (z. B. State-Encryption out of the box). 2024 wurde HashiCorp von IBM übernommen, was die zukünftige Lizenz- und Produktstrategie weiter in den Fokus rückte.

Eingeführt wurde Terraform von Mitchell Hashimoto und Armon Dadgar, den Mitgründern von HashiCorp. Der AzureRM-Provider gehört zu den größten und am intensivsten gepflegten Providern überhaupt, weil das Azure-API selbst sehr breit ist und sich häufig ändert. Diese Provider-Pflege ist in der Praxis ein wesentlicher Teil der Terraform-Erfahrung — und einer der Gründe, warum reine Cloud-spezifische Werkzeuge wie Bicep für reine Azure-Umgebungen oft schneller mit neuen Diensten Schritt halten, während Terraform durch sein Provider-Modell den Multi-Cloud-Vorteil behält.

Zurück