Definition „HashiCorp Terraform“ Was ist Terraform?
Mit Terraform von HashiCorp erhalten Developert ein Open-Source-Tool, mit dem sie Infrastruktur als Code entwickeln, verändern und in diversen Versionen ausgeben können. Der Vorteil liegt dabei in der Funktionsweise „Infrastructure as Code“, kurz IaC.

Mit HashiCorp Terraform lässt Infrastruktur sich in unterschiedlichen Cloud-Umgebungen automatisieren. Vor allem die Modularität von Terraform ist dabei beeindruckend und unterstreicht die Vielseitigkeit dieses Tools: Aus verschiedenen Modulen können diverse Konfigurationen erstellt werden, die nach dem Baukastenprinzip besonders komplexe Abläufe sofort nutzbar machen.
Module können auch selbstständig erstellt und hierarchisch sogenannten Child Modules vorausgestellt werden. So lassen sich eine oder mehrere Konfigurationen erstellen, um mehrere Cloud- oder Hybrid-Clouds zu verwalten.
Wofür wird HashiCorp Terraform genutzt?
Zum Einsatz kommt HashiCorp Terraform bei der Konfiguration von Clouds und Hybrid-Systemen, um für Menschen lesbare Datensätze zu erstellen, die geteilt, versioniert und wiederverwendet werden können. Dabei erlaubt Terraform es, die Verwaltung über den gesamten Lebenszyklus einer Software hinweg zu begleiten.
Sowohl einfache Komponenten wie Netzwerkressourcen oder Speicher können unter dem Schirm von Terraform genutzt werden, aber auch DNS Einträge oder SaaS-Features. Dies macht HashiCorp Terraform nicht nur zu einer besonders umfangreichen Open-Source-Lösung, um Infrastruktur aus einer Hand zu verwalten, sondern erleichtert auch die Zusammenarbeit mit unterschiedlichen Services. Ob IT-Teams mit AWS, der Azure Cloud, Oracle, Google Cloud oder vielen weiteren Services arbeiten, spielt für Terraform keine Rolle.
Die Konfiguration und Verwaltung erfolgt zentral über Terraform, das direkt mit den APIs der jeweiligen Plattformen arbeitet. Auch eine Hybrid-Cloud mit lokalen Datenzentren lässt sich so problemlos einrichten und managen. Derzeit funktioniert Terraform mit mehr als 1.700 Providern – darunter auch Kubernetes, was oft (fälschlicherweise) als Alternative zu Terraform bezeichnet wird. Dabei arbeiten beide Plattformen bestens zusammen.
Der Workflow von Terraform anhand eines einfachen Beispiels
Der typische Workflow mit Terraform lässt sich in der Regel in drei Phasen unterteilen, wobei diese in Komplexität variieren können.
Schreiben: Im ersten Schritten definieren Entwickelnde die Ressourcen. Diese können dabei dezentral gelagert werden, Terraform richtet einen Zugang über die Plattformen hinweg ein.
Es wird eine Infrastruktur in Konfigurationsdateien angelegt.
Planen: Im zweiten Schritt konfiguriert Terraform diese Infrastruktur (basierend auf der aktuell vorhandenen Infrastruktur) durch notwendige Teilschritte. Wichtig für die Planungsphase ist die Anlegung einer Skizze zum Schaffen, Updaten und Löschen der infrastrukturellen Elemente, die benötigt werden.
Anwenden: Im dritten Schritt wird der Plan des zweiten Schrittes (nach Review und Bestätigung) ausgeführt. Reihenfolge der Ausführung und die Abhängigkeiten einzelner Elemente werden hierbei natürlich automatisch durch Terraform berücksichtigt.
Infrastruktur als Code verstehen
IaC erlaubt es Entwicklern und Entwicklerinnen, Infrastruktur durch den Einsatz der Code-Form einfacher und schneller bereitzustellen und diese Prozesse wiederholbar zu machen. Infrastructure as Code erweist sich vor allem bei kontinuierlichem Deployment, kontinuierlicher Integration und der Versionskontrolle als nützlich und ist daher bei DevOps oder agilen Entwicklungsmethoden nahezu unverzichtbar.
Die Vorteile einer Plattform wie Terraform lassen sich vor allem an Verlässlichkeit und Geschwindigkeit ablesen. Die Automation von HashiCorp Terraform erlaubt schnelleres Arbeiten als das manuelle Verbinden von Ressourcen es zulassen würde, gleichzeitig steigt die Verlässlichkeit mit wachsender Komplexität der Zahl der Dienste. Gerade wenn zwischen mehreren Clouds und lokalen Services agiert werden muss, kann die Verteilung von Ressourcen nahezu nicht mehr überblickt werden.
Terraform schafft in diesem Fall automatisch eine Konsistenz zwischen Planung und tatsächlicher Ausführung und wirkt gleichzeitig negativen Effekten wie dem Configuration Drift vor. Dieser Configuration Drift kann (vor allem in komplexen Umgebungen) immer dann eintreten, wenn eine bereitgestellte Umgebung der aktuellen Umgebung nicht mehr entspricht. Durch die automatische Planung und Umstrukturierung der Infrastruktur durch Terraform kann genau diesem Effekt entgegen gewirkt werden.
Wie Infrastructure as Code Innovation voran treiben kann
Infrastruktur, die bereits im Einsatz ist, zu optimieren, kann ein mühseliger Prozess sein. Viele Teams sind alleine durch den langwierigen Prozess der Provisionierung davon abgeschreckt. Da Infrastructure as a Service Ressourcen aber automatisch bereitstellen kann, können Änderungen in kürzester Zeit geschrieben, geplant und angewandt werden. Erweisen die Änderungen sich als praktikabel, können diese mühelos skaliert werden.
Zusätzlich schafft IaC durch Terraform einen weiteren Vorteil in Form unveränderlicher Infrastruktur. Während veränderliche Infrastruktur den oben erwähnten Configuration Drift zur Folge haben kann, erstellt Terraform mit Veränderungen neue Konfigurationen. Diese neuen Konfigurationen sind in der Praxis deutlich einfacher zu handhaben als veränderliche Konfigurationen, deren Drift eine Fehlerdiagnose erschwert. Alte Konfigurationen werden zudem gespeichert und können per Rollback jederzeit zurückgespielt.
Vielseitigkeit und Open Source – die größten Vorteile von Terraform
Auch wenn Terraform durch HashiCorp bereitgestellt wird, handelt es sich um eine Open-Source-Plattform. Wie andere Open-Source-Lösungen auch, kann Terraform mit einer Vielzahl an Clouds, Systemen und Plug-Ins arbeiten. Die große Zahl der Contributors sorgt zudem für eine stetig wachsende Zahl an Extensions für Terraform und eine umfassende Dokumentation.
Weiterentwicklungen bei den Cloud-Anbietern spiegeln sich dadurch auch schnell in den Änderungen von Terraform wider und erlauben Developern so anbieterübergreifend unabhängiges Arbeiten.
Artikelfiles und Artikellinks
(ID:48506187)