Was ist Terraform?

Veröffentlicht 15. April 2025
Aktualisiert 13. Juli 2026
Programmierer verarbeitet Daten auf einem Laptop im Serverraum
By Derek Robertson, Matthew Kosinski and Gregg Lindemulder

Terraform definiert

Terraform ist ein Infrastruktur als Code (IaC) Produkt, das von HashiCorp entwickelt wurde. Terraform bietet eine einheitliche Schnittstelle für das Infrastructure Lifecycle Management und einen einheitlichen Workflow zur Bereitstellung von Infrastrukturkomponenten für mehrere Clouds (AWS, Azure und Google Cloud), Netzwerke, private Rechenzentren und SaaS-Umgebungen. 

Mit Terraform können Nutzer Infrastruktur-Komponenten erstellen, aktualisieren und zerstören, indem sie menschenlesbare Konfigurationsdateien schreiben. Diese Konfigurationsdateien verwenden eine deklarative Sprache statt einer prozeduralen Sprache. Benutzer beschreiben den gewünschten Endzustand für Infrastrukturressourcen, und Terraform erledigt den Rest. Es erstellt automatisch einen Ausführungsplan, identifiziert Abhängigkeiten zwischen Ressourcen und stellt Komponenten in der richtigen Reihenfolge bereit.

Wenn beispielsweise eine virtuelle Maschine (VM) von einer virtuellen Private Cloud (VPC) abhängt, stellt Terraform sicher, dass die VPC vor der Bereitstellung der VM erstellt wird.

Im Gegensatz dazu müssen Entwickler bei prozeduraler Sprache Schritt-für-Schritt-Anweisungen schreiben, um die Infrastruktur bereitzustellen.

Terraform-Konfigurationsdateien können versioniert, wiederverwendet und geteilt werden. Terraform verwaltet niedrigstufige Komponenten wie Rechen- und Speicherressourcen sowie S3-Buckets sowie hochrangige Komponenten wie Domain Name System (DNS)-Einträge und Software-as-a-Service-(SaaS)-Funktionen.

Im Februar 2025 erwarb IBM HashiCorp einschließlich Terraform. 

Wie funktioniert Terraform?

Terraform funktioniert mit praktisch jeder Plattform oder jedem Service mit einer zugänglichen Programmierschnittstelle (API), einschließlich Amazon Web Services (AWS), Microsoft Azure, Google Cloud, GitHub, IBM Cloud und Docker.

Der Terraform-Workflow besteht aus drei Phasen:

  1. Schreiben
  2. Planen 
  3. Anwenden

1. Schreiben

Ein Entwickler schreibt eine menschlich lesbare Konfigurationsdatei, um die Ressourcenkonfigurationen für seine gewünschte Infrastruktur zu definieren. Die Datei ist deklarativ. Der Entwickler beschreibt die gewünschte Infrastruktur, aber nicht, wie diese bereitgestellt werden soll. 

Wenn ein Entwickler beispielsweise eine Infrastruktur für die Bereitstellung einer in der Cloud gehosteten App erstellen möchte, könnte er angeben, dass er virtuelle Maschinen in einer virtuellen Private Cloud mit zugehörigen Sicherheitsgruppen und einem Load Balancer benötigt.

Eine einzelne Konfigurationsdatei kann Ressourcen verwalten, die über mehrere Cloud-Provider und -Services verteilt sind.

2. Planen

Terraform analysiert sowohl die vom Entwickler bereitgestellte schriftliche Konfiguration als auch den aktuellen Zustand der Infrastruktur des Unternehmens. Anschließend erstellt es einen Ausführungsplan, der beschreibt, wie vom aktuellen Zustand aus der gewünschte Zustand erreicht werden soll.

Der Plan selbst nimmt die Form einer Liste von Infrastruktur an, die Terraform erstellt, aktualisiert oder vernichtet, um die reale Welt mit den vom Entwickler beschriebenen Konfigurationen in Einklang zu bringen.

Stellen Sie sich das vorherige Beispiel eines Entwicklers vor, der eine Anwendung auf virtuellen Maschinen in einer virtuellen privaten Cloud bereitstellt. Der Plan von Terraform könnte Aktionen wie folgende umfassen:

  • Bereitstellung neuer virtueller Maschinen zum Hosten der App. 

  • Änderung einer bestehenden Sicherheitsgruppe, um den Datenverkehr zu den neuen virtuellen Maschinen zuzulassen. 

  • Bereitstellung eines Load Balancers zur Verteilung des Datenverkehrs zwischen den virtuellen Maschinen.

Entwickler können den Plan überprüfen, ändern und validieren, bevor Terraform ihn ausführt.

3. Anwenden

Wenn der Plan genehmigt wurde, führt Terraform die vorgeschlagenen Vorgänge in der richtigen Reihenfolge durch und respektiert dabei alle Ressourcenabhängigkeiten. Das heißt, wenn Ressource A von Ressource B abhängt, stellt Terraform sicher, dass Ressource B vor Ressource A erstellt wird.

Nehmen wir beispielsweise an, ein Entwickler aktualisiert die Eigenschaften einer VPC und ändert die Anzahl der virtuellen Maschinen in dieser VPC. Terraform erstellt das VPC mit aktualisierten Eigenschaften neu, bevor die virtuellen Maschinen skaliert werden.

Komponenten von Terraform

Zu den Hauptkomponenten von Terraform gehören:

  • Konfigurationsdateien
  • Module
  • Zustandsdateien
  • Anbieter
  • Register
  • Terraform CLI
Konfigurationsdateien

Konfigurationsdateien stellen dar, wie Entwickler ihre gewünschten Ressourcen für lokale und Cloud-Umgebungen definieren. Diese Dateien teilen Terraform mit, welche Anbieter zu verwenden, welche Infrastruktur zu erstellen und welche Daten abzurufen sind. Entwickler können Konfigurationsdateien ändern, wiederverwenden und teilen.

Entwickler können Konfigurationsdateien in JSON oder in HashiCorp Configuration Language (HCL) schreiben. HCL verwendet eine deklarative Syntax: Entwickler beschreiben ihre gewünschte Infrastruktur, anstatt zu spezifizieren, wie diese bereitgestellt werden soll. HCL ähnelt den Schlüssel-Wert-Paaren von JSON, ist aber für die menschliche Lesbarkeit optimiert.

Module

Module sind wiederverwendbare Container für mehrere Ressourcen, die häufig zusammen verwendet werden. Ein Modul kann zum Beispiel ein Komplettpaket aus virtuellen Maschinen, Datenbanken, Netzwerkkonfigurationen und Sicherheitseinstellungen enthalten. Module werden als Sammlungen von Konfigurationsdateien gespeichert.

Terraform-Module ermöglichen es Entwicklern, komplexe Infrastrukturen zu erstellen, ohne jedes Mal bei Null anfangen zu müssen. Stattdessen können sie Module verwenden, die bereits die benötigten Infrastrukturmaßnahmen beschreiben.

Zustandsdateien

Eine Terraform-Zustandsdatei ist eine Darstellung des aktuellen Zustands der Infrastruktur, einschließlich Komponenten, Konfigurationen und Beziehungen zwischen Ressourcen. 

Wenn Terraform einen Plan erstellt, vergleicht es zunächst die Konfigurationsdatei mit der Zustandsdatei. Durch diesen Vergleich kann Terraform ermitteln, welche Änderungen vorgenommen werden müssen, um die aktuelle Infrastruktur an die gewünschte Konfiguration anzupassen.

Anbieter

Terraform-Anbieter sind Plug-ins, die Terraform verwendet, um mit APIs für externe Services und Plattformen zu interagieren. Anbieter ermöglichen Terraform die Verwaltung von Ressourcen in Infrastructure-as-a-Service- (IaaS), Platform-as-a-Service- (PaaS) und Software-as-a-Service-Umgebungen (SaaS). Jeder Anbieter enthält den gesamten Code, den Terraform benötigt, um sich mit einem Service zu verbinden, zu authentifizieren und Ressourcen bereitzustellen. 

Entwickler können zwar ihre eigenen Provider schreiben, aber auch bereits vorhandene verwenden, die von HashiCorp und anderen Terraform-Benutzern geschrieben wurden. Es gibt vorgefertigte Provider für die meisten großen privaten und Cloud-Service sowie für Datenbanken, Netzwerklösungen und andere gängige Tools.  

Terraform kann auch bestehende Infrastruktur verwalten. Mit dem Importblock können Entwickler Ressourcen, die außerhalb von Terraform erstellt wurden, unter dessen Verwaltung bringen, sodass sie ihre gesamte Umgebung kodifizieren und kontrollieren können, nicht nur neue Ressourcen. 

Register

Die Terraform Registry ist ein Repository für Anbieter, Module, Richtlinienregeln und Lösungen.

Jeder kann die Ressourcen und Vorlagen im öffentlichen Terraform Registry veröffentlichen und nutzen. Um einen Anbieter oder ein Modul aus diesem Register zu verwenden, fügen Nutzer es ihren Konfigurationen hinzu. Wenn sie Terraform init ausführen, lädt Terraform automatisch alles herunter, was es braucht.

Unternehmen können auch private Registries erstellen, um ihre eigenen Module und Ressourcen intern zu teilen.

Terraform CLI

Die Terraform CLI ist das Tool für Befehlszeilenschnittstellen (CLI) zur Verwaltung der Infrastruktur mit Terraform. Entwickler verwenden es, um Befehle auszuführen, Ausführungspläne zu generieren, Änderungen vorzunehmen und mit wichtigen Terraform-Komponenten wie Konfigurationsdateien, Zustandsdateien, Anbietern und Modulen zu interagieren.

Wie nutzen Unternehmen Terraform?

Organisationen nutzen Terraform, um Infrastruktur während ihres gesamten Lebenszyklus bereitzustellen und zu verwalten. Häufige Anwendungsfälle sind:

  • Verwaltung von Hybrid- und Multicloud-Umgebungen
  • Verwaltung der Anwendungsinfrastrukturen
  • Self-Service für Entwickler 
  • Richtlinien- und Compliance-Management
  • Zusammenarbeit im Team

Verwaltung von Hybrid- und Multicloud-Umgebungen

Hybride und Multicloud-Umgebungen können komplex sein, da jeder Cloud-Anbieter seine eigenen Schnittstellen, Werkzeuge und Arbeitsabläufe hat.Bei solchen Setups können entscheidend Cloud-Ressourcen über öffentliche Clouds, Cloud Private und mehrere Rechenzentrum verteilt sein.

Unternehmen können Terraform nutzen, um die Verwaltung und Orchestrierung komplexer, groß angelegter Cloud-Infrastrukturen zu vereinfachen. Konkret ermöglicht Terraform Unternehmen, dieselbe Konfigurationssprache zu verwenden, um Ressourcen in öffentlichen Clouds, privaten Clouds und lokalen Umgebungen in einem einheitlichen Workflow bereitzustellen und zu verwalten.

Um die Verwaltung von Infrastrukturen in großem Maßstab zu erleichtern, helfen Terraform Stacks den Benutzern, die Koordination, Bereitstellung und das Lebenszyklusmanagement voneinander abhängiger Terraform-Konfigurationen zu automatisieren und zu optimieren, wodurch der Zeit- und Arbeitsaufwand für die Verwaltung der Infrastruktur reduziert wird. 

Stacks ersetzen die traditionelle Wurzelmodulstruktur von Terraform durch eine neue, auf Komponenten basierende Architektur, die auf Terraform-Modulen aufbaut. Durch die Nutzung von Stacks können Nutzer den Infrastrukturlebenszyklus in großem Maßstab bereitstellen und koordinieren, was einen organisierten und wiederverwendbaren Ansatz bietet, der die Infrastruktur als Code erweitert.

Verwaltung der Anwendungsinfrastruktur

Terraform kann eine Infrastruktur für mehrschichtige Anwendungen bereitstellen und verwalten und ermöglicht es Unternehmen, Ressourcen für jede Ebene in einem einheitlichen Workflow zu verwalten und dabei Abhängigkeiten zu berücksichtigen.

Zum Beispiel könnte eine mehrstufige Anwendung aus einem Pool von Webservern, einer Datenbankebene, einer API-Schicht, Caching-Servern und einer Routing-Ebene bestehen. Terraform würde die Datenbankebene bereitstellen, bevor die davon abhängigen Webserver bereitgestellt werden.

Entwickler-Self-Service

Entwickler-Self-Service entwickelt sich über die einfache Infrastrukturbereitstellung hinaus und umfasst den gesamten Anwendungslebenszyklus – von der Umgebungseinrichtung über die Bereitstellung bis hin zum laufenden Betrieb.

Terraform bildet die Grundlage für dieses moderne Self-Service-Modell. Es integriert sich in Developer Portale wie Backstage, Port und Cortex; ITSM-Systeme wie ServiceNow und Jira; sowie CI/CD-Pipeline-Plattformen wie GitHub Actions und Jenkins.

Für Teams, die es vorziehen, innerhalb der Terraform-Workflows zu bleiben, dient Waypoint als Terraform-natives Self-Service-Portal für Entwickler, das eine konsistente, policy-driven Anwendung Bereitstellung Erfahrung ermöglicht. 

Über AWS, Azure und GCP hinweg fungiert Terraform als Integration und Kontrollschicht, die diese Einstiegspunkte vereint und Entwicklern ermöglicht, schneller voranzukommen und gleichzeitig Governance und betriebliche Konsistenz zu gewährleisten.

Richtlinien und Compliance-Management

Terraform unterstützt Unternehmen dabei, Sicherheits- und Compliance-Richtlinien für die Arten von Ressourcen durchzusetzen, die Teams bereitstellen und nutzen können.

Sentinel, HashiCorps Policy-as-Code-Framework zur Durchsetzung einer feingranulierten, logikbasierten Governance über die gesamte Infrastruktur hinweg, bietet eine Bibliothek vorgefertigter Richtlinien, die standardmäßige Kontrollen bieten (zum Beispiel Zuordnungen zu NIST SP-80053). Diese Richtlinien helfen Teams dabei, gängige Compliance-Vorgaben durchzusetzen, ohne alle Richtlinien von Grund auf neu erstellen zu müssen.

Zum Beispiel können Organisationen Terraform-Module verwenden, um Standards zu kodifizieren für die Bereitstellung und Verwaltung von Ressourcen im gesamten Unternehmen. Wenn andere Teams diese genehmigten Module verwenden, können sie sicher sein, dass sie Ressourcen in Übereinstimmung mit den Praktiken der Organisation einsetzen.

Zusammenarbeit im Team

Unternehmen können Terraform-Code und Konfigurationsdateien in einem Versionskontrollsystem (VCS) speichern, wie zum Beispiel einem Git-Repository. Diese Regelung ermöglicht es DevOps-Teams , gemeinsam an Code zu arbeiten, Definitionen zu überprüfen, Infrastrukturänderungen zu verfolgen und bei Bedarf auf frühere Infrastrukturversionen zurückzugehen.

HashiCorp Terraform vs. Red Hat Ansible

Terraform und Ansible werden oft gemeinsam eingesetzt, um die Automatisierung über die Infrastrukturbereitstellung hinaus zu erweitern. Terraform eignet sich hervorragend zur Bereitstellung von Infrastruktur, zur Vorbereitung und Bereitstellung komplexer Ressourcen für Cloud- und Hybridumgebungen. Ansible ist ein leistungsstarkes Werkzeug für das Konfigurationsmanagement, die Modifizierung und die konsistente Wartung bestehender Infrastrukturen. 

Ansible-Playbooks, die in YAML verfasst sind, ermöglichen eine detaillierte Kontrolle über Aufgaben, wie die Installation von Software und die Aktualisierung von Systemeinstellungen.

Die beiden Tools befassen sich mit unterschiedlichen, aber miteinander verbundenen Phasen des Infrastruktur-Lebenszyklus und eignen sich daher hervorragend für Unternehmen, die eine konsistente Umgebung anstreben.

Integrationen zwischen Terraform und Ansible helfen, die Lücke zwischen Ressourcenerstellung und Konfigurationsmanagement zu schließen. Beispielsweise können Terraform-Aktionen ein Ereignis auslösen, das die ereignisgesteuerte Automatisierungsfunktion der Ansible Automatisierung Platform (AAP) aktiviert, um dynamische Workflows von Ansible auszulösen – und das alles mit nur einem Terraform apply. 

Diese Vernetzung kann dazu beitragen, Infrastrukturwerkzeuge zu vereinheitlichen und Reibungen zwischen Day-2-Operationen wie Patching, Skalierung und Stilllegung zu verringern. Gemeinsam sorgen Terraform und Ansible dafür, dass Infrastruktur und Anwendungen in jeder Lebensphase konsistent und zuverlässig bleiben.

IBM DevOps

Was ist DevOps?

Andrea Crawford erklärt, was DevOps ist, welchen Wert DevOps hat und wie DevOps-Praktiken und -Tools Ihnen dabei helfen, Ihre Anwendungen durch die gesamte Delivery Pipeline der Softwareentwicklung von der Idee bis zur Produktion zu bringen. Das von führenden IBM Experten geleitete Programm soll Führungskräften das nötige Wissen vermitteln, um Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Terraform vs. Kubernetes

Kubernetes und Terraform sind gängige Komponenten von Cloud-Umgebungen und helfen beide bei der Automatisierung von infrastrukturbezogenen Aufgaben. Jedoch besteht der wesentliche Unterschied zwischen den beiden darin, dass Kubernetes sich auf containerisierte Workloads konzentriert, während Terraform alle Arten von Infrastrukturkomponenten verwaltet, einschließlich Kubernetes-Clustern selbst.

Kubernetes ist eine Container- Orchestrierungsplattform (open-source) zur Planung und Automatisierung der Bereitstellung, Verwaltung und Skalierung containerisierter Anwendungen. Terraform ist ein Infrastructure-as-Code-Tool, das die Bereitstellung und Verwaltung der Infrastruktur automatisiert.

Obwohl diese Tools unterschiedlich sind und unterschiedliche Funktionen haben, arbeiten sie in Cloud-Backends oft zusammen. Terraform kann zum Beispiel die Bereitstellung von Kubernetes-Clustern auf Cloud-Plattformen automatisieren, während Kubernetes die Bereitstellung von Anwendungen innerhalb dieser Cluster verwaltet.

Autoren

Derek Robertson

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Gregg Lindemulder

Staff Writer

IBM Think