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.
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.
Jetzt für den Leitfaden zur App-Modernisierung registrieren
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:
Es gibt einige wichtige Gründe, warum Entwickler Terraform gegenüber anderen Infrastructure-as-Code-Tools bevorzugen:
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 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).
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 und Ansible sind beides Infrastructure-as-Code-Tools, aber es gibt ein paar wesentliche Unterschiede zwischen den beiden:
IBM Cloud Schematics ermöglicht Automatisierung, indem es deklarative Terraform-Vorlagen für die gewünschte Cloud-Infrastruktur anbietet.
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.
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.
Eine Einführung in IaaS, seine Komponenten, Vorteile, Preise und seine Beziehung zu PaaS, SaaS, BMaaS, Containern und Serverless.