Startseite topics Was ist Terraform? Was ist Terraform?
Erkunden Sie die Terraform-Lösung von IBM Abonnieren Sie Cloud-Updates
Illustration mit Collage aus Piktogrammen von Computermonitor, Server, Wolken, Punkten
Was ist Terraform?

Terraform, ein von HashiCorp entwickeltes Open-Source-Tool für „Infrastructure-as-Code“, ermöglicht Programmierern die sichere und effiziente Erstellung, Änderung und Versionierung von Infrastrukturen.

Es handelt sich um ein deklaratives Tool für die Codierung, das es Entwicklern ermöglicht, den gewünschten „Endzustand“ einer Cloud- oder lokalen Infrastruktur für die Ausführung einer Anwendung mit Hilfe einer übergeordneten Konfigurationssprache namens HCL (HashiCorp Configuration Language) 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 verwendet eine einfache Syntax, stellt die Infrastruktur über mehrere Cloud- und lokale Rechenzentren hinweg bereit und sorgt für eine sichere und effiziente Wiederherstellung der Infrastruktur als Reaktion auf Konfigurationsänderungen. 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, die Vorteile von Infrastructure-as-Code (IaC) zu verstehen. Mit IaC können Entwickler die Infrastruktur so codieren, dass die Bereitstellung automatisiert, schneller und wiederholbar wird. Es ist eine wichtige Komponente von Agile- und DevOps-Praktiken 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.
Warum Terraform?

Es gibt einige wichtige Gründe, warum Entwickler Terraform gegenüber anderen 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 davon, welchen Cloud-Provider Sie verwenden, ist es einfach, Plug-ins, Erweiterungen und professionellen Support zu 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 sich ändern kann, um Anpassungen wie ein Middleware-Upgrade oder einen neuen Speicherserver zu berücksichtigen. Die Gefahr bei veränderlicher Infrastruktur besteht in der Konfigurationsabweichung. Das bedeutet, dass die tatsächliche Bereitstellung verschiedener Server oder anderer Infrastrukturelemente immer weiter von der ursprünglichen Konfiguration „abweicht“, wodurch es schwieriger wird, Fehler oder Leistungsprobleme zu erkennen und zu beheben. 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 neu bereitgestellt wird. 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. Terraform-Module sind nützlich, weil sie es ermöglichen, komplexe Ressourcen mit wiederverwendbaren, konfigurierbaren Konstrukten zu automatisieren. Selbst das Schreiben einer sehr einfachen Terraform-Datei resultiert in einem Modul. Ein Modul kann andere Module aufrufen, so genannte Child-Module, die das Zusammenstellen der Konfiguration schneller und übersichtlicher machen können. Module können auch mehrfach aufgerufen werden, entweder innerhalb der gleichen Konfiguration oder in separaten Konfigurationen.

Terraform-Provider

Terraform-Provider sind Plug-ins, die Ressourcentypen implementieren. Provider enthalten den gesamten Code, der erforderlich ist, 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 für die 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 detaillierte Liste finden Sie in der Terraform-Dokumentation (Link befindet sich außerhalb von ibm.com).

Terraform vs. Kubernetes

Manchmal gibt es Verwirrung zwischen Terraform und Kubernetes und was sie tun. Die Wahrheit ist, dass sie keine Alternativen sind und effektiv zusammenwirken.

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 automatisieren können, die sich über mehrere Public und Private Clouds erstreckt.

Terraform kann Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) oder sogar Software-as-a-Service (SaaS) automatisieren und verwalten und all diese Ressourcen über all diese Anbieter hinweg parallel aufbauen. Sie können Terraform verwenden, um die Bereitstellung von Kubernetes (insbesondere verwaltete Kubernetes-Cluster auf Cloud-Plattformen) zu automatisieren und die Bereitstellung von Anwendungen in einem Cluster zu automatisieren.

Terraform vs. Ansible

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

  • 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 ermöglicht Automatisierung, indem es deklarative Terraform-Vorlagen für die gewünschte Cloud-Infrastruktur anbietet.

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