Startseite Themen Terraform Was ist Terraform?
Die Terraform-Lösung von IBM erkunden Melden Sie sich für Cloud-Updates an
Illustration mit Collage aus Piktogrammen von Computermonitor, Server, Wolken, Punkten
Was ist Terraform?

Mit dem von HashiCorp entwickelten Open-Source-Tool Terraform für „Infrastructure-as-Code“ können Programmierer sicher und effizient Infrastrukturen erstellen, ändern und versionieren.

Mit diesem deklarativen Programmiertool können Entwickler eine übergeordnete Konfigurationssprache namens HCL (HashiCorp Configuration Language) verwenden, um den gewünschten „Endzustand“ einer cloudbasierten oder lokalen Infrastruktur zur Ausführung einer Anwendung zu beschreiben. Anschließend generiert das Tool einen Plan, um diesen Endzustand zu erreichen, und führt diesen Plan aus, um die Infrastruktur bereitzustellen.

Terraform besitzt eine einfache Syntax und stellt Infrastruktur in verschiedenen Arten von Clouds oder lokal Rechenzentren bereit. Bei Konfigurationsänderungen kann es Infrastruktur sicher und effizient neu bereitstellen. Darum ist es derzeit eines der beliebtesten Tools zur Automatisierung von Infrastrukturen. Wenn Ihr Unternehmen plant, eine Hybrid-Cloud- oder Multicloud-Umgebung bereitzustellen, sollten Sie sich mit Terraform vertraut machen.

Flexibilität am Arbeitsplatz mit DaaS

Lesen Sie, wie Unternehmen mit Desktop-as-a-Service (DaaS) das gleiche Maß an Leistung und Sicherheit erreichen können wie bei der lokalen Bereitstellung der Anwendungen.

Ähnliche Inhalte

Jetzt für den Leitfaden zur App-Modernisierung registrieren

Warum Infrastructure-as-Code (IaC)?

Um die Vorteile von Terraform besser zu verstehen, hilft es zunächst, sich mit den Vorteilen von Infrastructure-as-Code (IaC) zu befassen. Mit IaC kann die Infrastruktur so programmiert werden, dass die Bereitstellung automatisiert, schneller und wiederholbar wird. Es ist eine wichtige Komponente agiler und DevOps-Methoden wie Versionskontrolle, kontinuierliche Integration und kontinuierliche Bereitstellung.

Infrastruktur als Code kann bei Folgendem helfen:

  • Höhere Geschwindigkeit: Automatisierung ist schneller als das manuelle Navigieren durch eine Schnittstelle, wenn Sie Ressourcen bereitstellen oder verbinden müssen.

  • Verbesserte Zuverlässigkeit: Wenn Ihre Infrastruktur groß ist, kann es leicht passieren, dass Sie eine Ressource falsch konfigurieren oder Services in der falschen Reihenfolge bereitgestellt werden. Mit IaC werden die Ressourcen immer genau wie angegeben bereitgestellt und konfiguriert.

  • Verhindern von Konfigurationsabweichungen: Eine Konfigurationsabweichung tritt auf, wenn die Konfiguration, mit der Ihre Umgebung bereitgestellt wurde, nicht mehr mit der tatsächlichen Umgebung übereinstimmt. (Siehe „Unveränderliche Infrastruktur“)

  • Unterstützung von Experimenten, Tests und Optimierung: Da Infrastructure-as-Code die Bereitstellung neuer Infrastrukturen schneller und einfacher macht, können Sie experimentelle Änderungen vornehmen und testen, ohne viel Zeit und Ressourcen zu investieren. Und wenn Ihnen die Ergebnisse zusagen, können Sie die neue Infrastruktur zügig für den Produktionsbetrieb skalieren.
Gute Gründe für Terraform

Es gibt einige wichtige Gründe, warum Entwickler Terraform statt anderer Infrastructure-as-Code-Tools bevorzugen:

  • Open Source: Terraform wird von großen Communitys von Mitwirkenden unterstützt, die Plug-ins für die Plattform erstellen. Unabhängig von Ihrem Cloud-Provider können Sie unkompliziert Plug-ins, Erweiterungen und professionellen Support finden. Das bedeutet auch, dass sich Terraform schnell weiterentwickelt und ständig neue Vorteile und Verbesserungen hinzugefügt werden.

  • Plattformunabhängig: Das heißt, es kann mit jedem Cloud-Service-Provider verwendet werden. Die meisten anderen IaC-Tools sind für die Zusammenarbeit mit einem einzigen Cloud-Provider konzipiert.

  • Unveränderliche Infrastruktur: Die meisten Infrastructure-as-Code-Tools erstellen eine veränderliche Infrastruktur, die Anpassungen wie ein Middleware-Upgrade oder einen neuen Speicherserver berücksichtigen kann. Die Gefahr bei veränderlicher Infrastruktur besteht in der Konfigurationsabweichung. Die tatsächliche Bereitstellung verschiedener Server oder anderer Infrastrukturelemente kann also immer weiter von der ursprünglichen Konfiguration „abweichen“, was das Erkennen oder Beheben von Fehlern oder Leistungsproblemen erschwert. Terraform stellt eine unveränderliche Infrastruktur bereit. Das bedeutet, dass bei jeder Änderung der Umgebung die aktuelle Konfiguration durch eine neue ersetzt wird, die die Änderung berücksichtigt, und die Infrastruktur wird neu bereitgestellt. Noch besser ist, dass frühere Konfigurationen als Versionen gespeichert werden können, um gegebenenfalls ein Rollback zu ermöglichen.
Terraform-Module

Terraform-Module sind kleine, wiederverwendbare Terraform-Konfigurationen für mehrere Infrastrukturressourcen, die zusammen verwendet werden. Mit Terraform-Modulen können komplexe Ressourcen mit wiederverwendbaren, konfigurierbaren Konstrukten automatisiert werden. Selbst das Schreiben einer ganz einfachen Terraform-Datei führt zu einem Modul. Ein Modul kann andere Module aufrufen, so genannte Child-Module, wodurch die Konfiguration schneller und übersichtlicher zusammengestellt wird. Module können auch mehrfach aufgerufen werden, entweder innerhalb der gleichen oder in separaten Konfigurationen.

Terraform-Provider

Terraform-Provider sind Plug-ins, die verschiedene Arten von Ressourcen implementieren. Provider enthalten den gesamten erforderlichen Code, um sich im Namen des Benutzers zu authentifizieren und eine Verbindung zu einem Service – in der Regel von einem Public-Cloud-Provider – herzustellen. Sie können Provider für die von Ihnen verwendeten Cloud-Plattformen und -Services finden, sie zu Ihrer Konfiguration hinzufügen und dann deren Ressourcen zur Bereitstellung der Infrastruktur nutzen. Es gibt Provider für fast alle großen Cloud-Provider, SaaS-Angebote und mehr, die von der Terraform-Community oder einzelnen Unternehmen entwickelt oder unterstützt werden. Eine ausführliche Liste finden Sie in der Terraform-Dokumentation (Link außerhalb von ibm.com).

Terraform im Vergleich zu Kubernetes

Terraform und Kubernetes werden manchmal verwechselt. Sie sind jedoch keine Alternativen, sondern Technologien, die effektiv zusammenwirken können.

Kubernetes ist ein auf Open-Source basierendes System für die Container-Orchestrierung, mit dem Entwickler Bereitstellungen auf Knoten in einem Rechencluster planen und containerisierte Workloads aktiv verwalten können, um sicherzustellen, dass ihr Zustand den Absichten der Benutzer entspricht.

Terraform ist ein Infrastructure-as-Code-Tool mit einer größeren Reichweite, mit dem Entwickler eine komplette Infrastruktur aus mehreren Public Clouds und Private Clouds automatisieren können.

Terraform kann Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) oder sogar Software-as-a-Service (SaaS) automatisieren und verwalten – und alle diese Ressourcen parallel in diesen Angeboten aufbauen. Mit Terraform können Sie Kubernetes (insbesondere verwaltete Kubernetes-Cluster auf Cloud-Plattformen) und Anwendungen in einem Cluster automatisch bereitstellen.

Terraform im Vergleich zu Ansible

Terraform und Ansible sind Infrastructure-as-Code-Tools, aber es gibt ein paar wesentliche Unterschiede zwischen ihnen:

  • Während Terraform ein rein deklaratives Tool ist (siehe oben), kombiniert Ansible sowohl die deklarative als auch die prozedurale Konfiguration. Bei der prozeduralen Konfiguration legen Sie die Schritte oder die genaue Art und Weise fest, in der Sie die Infrastruktur in den gewünschten Zustand versetzen wollen. Die prozedurale Konfiguration ist aufwändiger, bietet aber mehr Kontrolle.

  • Terraform ist Open Source, Ansible wird von Red Hat entwickelt und verkauft.
Weiterführende Lösungen
IBM Cloud Schematics

IBM Cloud Schematics bietet deklarative Terraform-Vorlagen für die gewünschte Cloud-Infrastruktur an, um Automatisierung zu ermöglichen.

IBM Cloud Schematics erkunden
Ressourcen Was ist Infrastructure-as-Code (IaC)?

Infrastructure-as-Code (IaC) automatisiert die Bereitstellung der Infrastruktur und ermöglicht Ihrem Unternehmen die Entwicklung, Bereitstellung und Skalierung von Cloud-Anwendungen mit höherer Geschwindigkeit, geringerem Risiko und niedrigeren Kosten.

Was ist Kubernetes?

Kubernetes ist eine Open-Source-Plattform für die Containerorchestrierung, die die Bereitstellung, Verwaltung und Skalierung von Anwendungen automatisiert. Erfahren Sie, wie Kubernetes eine kostengünstige cloudnative Entwicklung ermöglicht.

Was ist Infrastructure-as-a-Service (IaaS)?

Eine Einführung in IaaS, seine Komponenten, Vorteile, Preise und seine Beziehung zu PaaS, SaaS, BMaaS, Containern und Serverless.

Machen Sie den nächsten Schritt

Sind Sie bereit für DevOps? Um Software und Services mit der vom Markt geforderten Geschwindigkeit bereitzustellen, müssen Teams schnell iterieren und experimentieren, regelmäßig neue Versionen bereitstellen und sich von Feedback und Daten leiten lassen. Die erfolgreichsten Cloud-Entwicklungsteams setzen auf moderne DevOps-Kultur und -Praktiken sowie cloudnative Architekturen und stellen Toolchains aus erstklassigen Tools zusammen, um ihre Produktivität zu steigern.

DevOps-Lösungen erkunden Kostenlos testen