Was ist Terraform?

15. April 2025

Autoren

Gregg Lindemulder

Staff Writer

Matthew Kosinski

Enterprise Technology Writer

Was ist Terraform?

Terraform ist ein Open-Source „Infrastructure as Code (IaC)“ Tool, das von HashiCorp entwickelt wurde. Terraform ermöglicht es Entwicklern, lokale und Cloud-Infrastruktur-Komponenten, wie virtuelle Maschinen und Kubernetes-Cluster, durch das Schreiben menschlich lesbarer Konfigurationsdateien bereitzustellen, zu aktualisieren und zu vernichten.

HashiCorp Terraform verwendet eine deklarative anstatt einer prozeduralen Sprache. Benutzer beschreiben den gewünschten Endzustand für Infrastrukturressourcen, Terraform erledigt den Rest. Terraform 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 Komponenten auf niedriger Ebene, wie Rechen- und Speicherressourcen, sowie Komponenten auf gehobener Ebene, wie Domain Name System (DNS) Einträge und Software-as-a-Service (SaaS) Funktionen.

Im Februar 2025erwarb IBM HashiCorp und seine Angebote, einschließlich Terraform.

3D-Design aus Kugeln, die auf einer Schiene rollen

Die neuesten Erkenntnisse und Insights zu KI

Entdecken Sie von Experten kuratierte Erkenntnisse und Neuigkeiten zu KI, Cloud und mehr im wöchentlichen Newsletter Think. 

Wie funktioniert Terraform?

Terraform erstellt und verwaltet Ressourcen auf Cloud-Plattformen und anderen Diensten über Anwendungsprogrammierschnittstellen (APIs). Terraform funktioniert mit praktisch jeder Plattform oder jedem Service mit einer zugänglichen 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. Plan
  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, d. h. der Entwickler beschreibt die gewünschte Infrastruktur, aber nicht die Form der Bereitstellung.  

Wenn ein Entwickler beispielsweise eine Infrastruktur für die Bereitstellung einer in der virtuellen Private 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 Endzustand erreicht werden soll.

Der Plan selbst besteht aus einer Reihe von Infrastrukturen, die Terraform erstellt, aktualisiert oder vernichtet, um die Realität mit den vom Entwickler beschriebenen Konfigurationen in Einklang zu bringen.

Stellen Sie sich zum Beispiel wie zuvor einen Entwickler vor, der eine Anwendung auf virtuellen Maschinen in einer virtuellen Private Cloud bereitstellt. Der Plan von Terraform könnte folgende Aktionen 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 und ändern, 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.

Wenn ein Entwickler zum Beispiel die Eigenschaften einer VPC aktualisiert und die Anzahl der virtuellen Maschinen in dieser VPC ändert, erstellt Terraform die VPC mit den 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

Mit Konfigurationsdateien definieren Entwickler ihre gewünschten Ressourcen für lokale und Cloud-Umgebungen. Diese Dateien teilen Terraform mit, welche Anbieter verwendet, welche Infrastruktur erstellt und welche Daten abgerufen werden sollen. 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: Die 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. Dadurch kann Terraform feststellen, welche Änderungen erforderlich sind, um die aktuelle Infrastruktur mit der gewünschten Konfiguration in Einklang zu bringen.

Anbieter

Terraform-Anbieter sind Plug-ins, die Terraform mit APIs für externe Services und Plattformen interagieren lassen. 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 Anbieter schreiben, aber auch bereits vorhandene verwenden, die von HashiCorp und anderen Terraform-Benutzern geschrieben wurden. Es gibt vorgefertigte Anbieter für die meisten großen Private - und Public-Cloud-Services sowie für Datenbanken, Netzwerklösungen und andere gängige Tools.  

Register

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

Jeder kann die Ressourcen in der öffentlichen Terraform Registry veröffentlichen und nutzen. 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?

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

  • Verwaltung von Multicloud-Umgebungen
  • Verwaltung der Anwendungsinfrastrukturen
  • Self-Service-Infrastruktur
  • Richtlinien- und Compliance-Management
  • Zusammenarbeit im Team

Verwalten von Multicloud-Umgebungen

Multicloud-Umgebungen können komplex sein, da jeder Cloud-Provider über seine eigenen Schnittstellen, Tools und Workflows verfügt. Darüber hinaus können wichtige Ressourcen auf mehrere Rechenzentren verteilt werden.

Unternehmen verwenden Terraform zum Beispiel, um die Verwaltung und Orchestrierung von großen Multi-Cloud-Infrastrukturen zu vereinfachen. Terraform ermöglicht es Unternehmen, dieselbe Konfigurationssprache für die Bereitstellung und Verwaltung von Ressourcen bei mehreren Dienstanbietern in einem einzigen Workflow zu verwenden.

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-Ebene, Caching-Servern und einer Routing-Ebene bestehen. Terraform würde die Datenbankebene bereitstellen, bevor die davon abhängigen Webserver bereitgestellt werden.

Infrastruktur mit Self-Service

In großen Unternehmen erhalten zentralisierte IT-Betriebsteams in der Regel viele sich wiederholende Infrastrukturanfragen.

Unternehmen können Terraform verwenden, um ein Self-Service-Infrastrukturmodell aufzubauen, das Produktteams in die Lage versetzt, ihre eigene Infrastruktur unabhängig zu verwalten. Durch die Verwendung vorgefertigter Module können Teams beispielsweise standardisierte und genehmigte Komponenten direkt bereitstellen.

Terraform kann von Unternehmen auch in Ticketing-Systeme und DevOps-Pipelines zur kontinuierlichen Integration/kontinuierlichen Bereitstellung (CI/CD) integriert werden, um neue Anfragen zur Infrastrukturbereitstellung zu automatisieren. Wenn ein Benutzer beispielsweise eine Infrastrukturanfrage an das Ticketing-System stellt, startet Terraform einen Workflow, um die Ressourcen automatisch entsprechend zu aktualisieren. 

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.

So verwenden Unternehmen beispielsweise Terraform-Module, um Standards für die Bereitstellung und Verwaltung von Ressourcen im gesamten Unternehmen zu kodieren. Wenn andere Teams diese genehmigten Module verwenden, können sie sicher sein, dass sie Ressourcen gemäß den Praktiken des Unternehmens einsetzen.

Zusammenarbeit im Team

Terraform-Konfigurationsdateien können von Unternehmen in einem Versionskontrollsystem (VCS) gespeichert werden, das es DevOps-Teams ermöglicht, gemeinsam an Code zu arbeiten, Reviews zu überprüfen, Infrastrukturänderungen zu verfolgen und bei Bedarf zu früheren Infrastrukturversionen zurückzukehren.

Terraform vs. Kubernetes

Kubernetes und Terraform sind gängige Komponenten von Cloud-Umgebungen und helfen beide bei der Automatisierung von infrastrukturbezogenen Aufgaben. Der Hauptunterschied zwischen den beiden ist jedoch, dass Kubernetes sich auf containerisierte Workloads konzentriert, während Terraform alle Arten von Infrastruktur-Komponenten verwaltet, einschließlich Kubernetes-Clustern selbst.

Kubernetes ist eine Open-Source-Plattform zur Containerorchestrierung für die Planung und Automatisierung der Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen. Terraform ist ein Infrastructure-as-Code-Tool, das die Bereitstellung und Verwaltung der Infrastruktur automatisiert.

Obwohl es sich um verschiedene Tools mit unterschiedlichen Funktionen handelt, funktionieren sie in Cloud-Umgebungen oft in Kombination miteinander. Terraform kann zum Beispiel die Bereitstellung von Kubernetes-Clustern auf Cloud-Plattformen automatisieren, während Kubernetes die Bereitstellung von Anwendungen innerhalb dieser Cluster verwaltet.

Terraform vs. Ansible

Terraform und Ansible sind beides Infrastructure-as-Code-Tools, die bei der Automatisierung zentraler Infrastrukturaufgaben helfen. Sie verwenden jedoch unterschiedliche Sprachen und dienen oft unterschiedlichen Zwecken. Terraform wird zum Bereitstellen von Infrastrukturressourcen verwendet, während Ansible häufig zum Verwalten von Ressourcenkonfigurationen verwendet wird.

Terraform verwendet eine rein deklarative Sprache, während Ansible sowohl deklarative als auch prozedurale Sprachen miteinander kombiniert. Bei der prozeduralen Konfiguration legt ein Entwickler die Schritte fest, um die Ressourcen in den gewünschten Zustand zu versetzen. Die prozedurale Konfiguration ist arbeitsintensiver, kann aber auch mehr Kontrolle bieten.

Ansible-Playbooks, die in YAML verfasst sind, ermöglichen eine detaillierte Kontrolle über Aufgaben, wie die Installation von Software und die Aktualisierung von Systemeinstellungen. Ansible verfügt zudem über eine Vielzahl vorgefertigter Module für gängige Aufgaben des Konfigurationsmanagements, einschließlich Paketverwaltung und Updates von Betriebssystemen. Ansible kann Änderungen idempotent auf Ressourcen anwenden. Das bedeutet, dass, nachdem ein Vorgang zum ersten Mal angewendet wurde, weitere Anwendungen desselben Vorgangs die Ressource nicht verändern.

Zusammengenommen erklären diese Eigenschaften, warum Ansible eine gängige Wahl für das Konfigurationsmanagement ist.

Terraform kann zwar Infrastrukturressourcen bereitstellen, aber die Software innerhalb von Ressourcen nicht so effektiv verwalten wie Ansible. Terraform definiert zum Beispiel eine neue virtuelle Maschine einschließlich Eigenschaften wie Instanztyp und Festplattengröße, aktualisiert aber nicht das Betriebssystem auf der virtuellen Maschine.

Terraform kann jedoch in Kombination mit Konfigurationsmanagement-Tools wie Ansible verwendet werden, um die Konfiguration der Infrastruktur zu vereinfachen und zu rationalisieren. Ein Unternehmen könnte zum Beispiel Terraform für die Bereitstellung virtueller Maschinen und Ansible für die Konfiguration der Software auf diesen Maschinen verwenden.

Weiterführende Lösungen
IBM Turbonomic

Skalieren Sie Ihre vorhandene IT-Infrastruktur automatisch, um eine höhere Leistung zu geringeren Kosten zu erzielen.

IBM Turbonomic erkunden
AIOps-Lösungen

Erfahren Sie, wie KI für den IT-Betrieb die Erkenntnisse liefert, die Sie benötigen, um die Leistung Ihres Unternehmens entscheidend zu verbessern.

AIOps-Lösungen erkunden
Beratungsleistungen für Automatisierung

Gehen Sie über einfache Aufgabenautomatisierungen hinaus und bewältigen Sie anspruchsvolle, kundenorientierte und umsatzfördernde Prozesse mit integrierter Akzeptanz und Skalierung.

Erkunden Sie die Beratungsleistungen von IBM zur Automatisierung
Machen Sie den nächsten Schritt

Erfahren Sie, wie KI für den IT-Betrieb Erkenntnisse liefert, um die Leistung Ihres Unternehmens entscheidend zu verbessern.

Mehr über Turbonomic AIOps-Lösungen erkunden