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.
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, 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:
Es gibt einige wichtige Gründe, warum Entwickler Terraform statt anderer Infrastructure-as-Code-Tools bevorzugen:
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 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 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 und Ansible sind Infrastructure-as-Code-Tools, aber es gibt ein paar wesentliche Unterschiede zwischen ihnen:
IBM Cloud Schematics bietet deklarative Terraform-Vorlagen für die gewünschte Cloud-Infrastruktur an, um Automatisierung zu ermöglichen.
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.