Zu Abschnitt

Ansible im Vergleich zu Terraform

URL kopieren

Red Hat® Ansible® Automation Platform und HashiCorp Terraform sind auf Open Source basierende Automatisierungsprodukte mit einem IaC-Ansatz (Infrastructure as Code) zur Automatisierung von IT-Umgebungen. 

Es ist nicht einfach, diese Lösungen in einem Vergleich danach zu bewerten, welche für Ihr Unternehmen am besten wäre. Es gibt keine Universalmethode der Automatisierung und kein allgemeingültiges Automatisierungstool – genauso wie es keine Standardmethode zur Lösung eines Problems gibt. Die Anforderungen Ihres Unternehmens unterscheiden sich grundlegend von den Anforderungen anderer Organisationen in Ihrer Branche.

Bei Ihrer Suche nach einer passenden Automatisierungslösung sind Sie sicher auf viele Fachbegriffe gestoßen, mit denen die wichtigsten Unterschiede und Funktionen der Produkte beschrieben werden. Sehen wir uns an, was sie genau bedeuten und wie sie zusammenhängen – miteinander sowie mit Ansible und Terraform.Mit

Orchestrierung wird die koordinierte Ausführung mehrerer Workflows bezeichnet. Jeder Workflow führt eine oder mehrere Aufgaben aus. Zusammen orchestriert, automatisieren diese Workflows die Konfiguration und Verwaltung komplexer Systeme, Anwendungen und Services. Diese Koordination folgt üblicherweise vorab festgelegten Regeln, die in einer Richtlinie definiert sind. Mithilfe von Orchestrierung lassen sich auch mehrere Automatisierungslösungen koordinieren. Diese wiederum führen die Automatisierungsworkflows aus. 

Sowohl Ansible als auch Terraform können als Orchestrator fungieren, da sie anhand bestimmter Richtlinien mehrere Automatisierungsworkflows nacheinander aufrufen können. Ansible verfügt über integrierte Module, um eine Verbindung zu anderen Automatisierungstools (einschließlich Terraform) herzustellen und diese zu verwalten. Dadurch können Sie Ihren Automatisierungsansatz für Ihre gesamte IT-Umgebung standardisieren und Ansible als erstklassige gemeinsame Sprache für Ihre Teams verwenden. 

Provisionierung bezieht sich auf das Erstellen und Bereitstellen von IT-Infrastrukturen für Anwendungen und Services. 

Sowohl Ansible als auch Terraform können für die Provisionierung (und Deprovisionierung) von IT-Infrastruktur verwendet werden. Ansible kann auch Apps und Services bereitstellen.Mit

Konfigurationsmanagement wird das Definieren und Verwalten der Konfiguration von Infrastruktur, Anwendungen und Services bezeichnet.

Wie viele andere Automatisierungslösungen können auch Ansible und Terraform Konfigurationen definieren und auf verschiedene Infrastrukturziele anwenden. Ihr Ansatz für das Konfigurationsmanagement unterscheidet sich jedoch. Terraform folgt dem Ansatz der deklarativen Programmierung. Dabei wird versucht, die Konfiguration einer IT-Infrastruktur beizubehalten, indem ein gewünschter Zustand definiert wird. Ansible hingegen verwendet einen prozeduralen (oder imperativen) Programmieransatz. Dabei wird versucht, die Konfiguration einer IT-Infrastruktur beizubehalten, indem die Schritte zum Erreichen eines gewünschten Zustands definiert werden. Im Folgenden werden die beiden Prozesse genauer beschrieben. 

Beim IaC-Ansatz (Infrastructure as Code) erfolgt die Definition und Provisionierung der Infrastruktur durch Code, der automatisch und nicht durch manuelle Prozesse ausgeführt wird. Durch die Behandlung ihrer IT-Infrastruktur als Code können Unternehmen Verwaltungsaufgaben automatisieren, Best Practices der Softwareentwicklung nutzen und menschliche Fehler reduzieren. 

Sowohl Ansible als auch Terraform sind IaC-Tools. Wie schon erwähnt verwenden sie jedoch unterschiedliche Programmierungen.Die

deklarative Programmierung bezeichnet eine Methode zum Schreiben von Code, bei der das gewünschte Ergebnis des Programms definiert wird, anstatt im Detail zu beschreiben, wie dieses erreicht werden soll. Sie konzentriert sich auf den Endzustand statt auf die konkreten Befehle und Schritte, die erforderlich sind, um dorthin zu gelangen. 

Terraform verwendet die Hashicorp Configuration Language (HCL) als Automatisierungssprache und einen deklarativen Programmieransatz. Das bedeutet, dass Endbenutzende die Befehlsfolge nicht kennen oder sehen können, die Terraform zur Durchführung der erforderlichen Konfigurationsänderungen ausführen muss.Die

prozedurale oder imperative Programmierung bezeichnet eine Methode zum Schreiben von Code, bei der ein Computer zum Ausführen einer Aufgabe eine Liste mit Anweisungen erhält – eine Schritt-für-Schritt-Anleitung. Diese Methode konzentriert sich auf den Prozess anstatt auf den Endzustand. Ansible verwendet für die Automatisierung YAML, eine für Menschen lesbare Sprache zur Datenserialisierung. Die YAML-Syntax wird prozedural interpretiert und ausgeführt, d. h. der Automatisierungsworkflow wird in der Reihenfolge ausgeführt, in der er geschrieben wurde. 

Ansible kann sowohl deklarativ als auch prozedural sein: Viele Module arbeiten deklarativ, andere folgen einem prozeduralen Programmieransatz. Darüber hinaus können Nutzende mit einigen Konstrukten der Ansible-Sprache, wie Bedingungen und Schleifen, eine prozedurale Logik definieren. Dank dieser Flexibilität können Sie sich auf Ihre eigentliche Arbeit konzentrieren, anstatt sich strikt an ein Modell halten zu müssen. 

Konfigurationsunveränderlichkeit bedeutet, dass die Konfiguration (einer Infrastruktur oder Anwendung) nicht geändert werden kann. Wenn beispielsweise eine neuere Version einer Anwendung bereitgestellt werden soll, muss die vorherige Version entfernt und ersetzt werden. Es ist nicht möglich, die Version zu ändern und zu aktualisieren. Ressourcen werden automatisch gelöscht und neu erstellt. 

Terraform setzt auf unveränderliche Infrastrukturen. Dies ermöglicht Nutzenden einen schnellen Einstieg, da sie Ressourcen einfach hochfahren, Tests durchführen und dann alles wieder löschen können. Je nach Größe der Infrastruktur kann dieses Modell jedoch komplex und damit schwer zu verwalten sein. Ansible ist zwar auf Konfigurationsveränderlichkeit ausgelegt, aber einige Automatisierungsworkflows lassen sich auch so konzipieren, dass sie Konfigurationsunveränderlichkeit ermöglichen.

Konfigurationsveränderlichkeit bedeutet, dass die Konfiguration (einer Infrastruktur oder Anwendung) geändert werden kann. Beispielsweise können neuere Versionen von Anwendungen bereitgestellt werden, indem die vorhandene Ressource aktualisiert oder geändert wird. Es ist nicht notwendig, sie zu entfernen oder zu ersetzen. 

Ansible ist daraufhin ausgelegt, dass Konfigurationen veränderbar sind. Der Vorteil dieses Ansatzes besteht darin, dass Automatisierungsworkflows einfach zu verstehen und Probleme daher leicht zu beheben sind. In bestimmten Fällen kann es jedoch schwierig sein, Ressourcen zu deprovisionieren, ohne die richtige Reihenfolge der Abläufe zu kennen. 

Konfigurationsdrift tritt auf, wenn sich eine Infrastruktur im Laufe der Zeit aufgrund manueller, nicht genehmigter oder nicht überwachter Änderungen verändert und diese Änderungen nicht systematisch aufgezeichnet oder nachverfolgt werden. Diese Änderungen sind häufig auf Notfälle oder übermäßige Komplexität zurückzuführen – also Faktoren, die Beschäftigte davon abhalten können, dem vorgeschriebenen Prozess zu folgen. Daher kommt es in großen Organisationen häufig zu Konfigurationsdrift. 

Ein IaC-Ansatz hilft bei solchen Abweichungen, aber ein zusätzliches Driftmanagement ist von entscheidender Bedeutung. Ansible unterstützt Sie bei der Vermeidung von Konfigurationsdrift – mit Ansible Playbooks (Automatisierungsworkflows), die so eingerichtet werden können, dass sie Drift erkennen. Wenn Drift erkannt wird, sendet Ansible eine Benachrichtigung an die zuständige Person, die dann die erforderlichen Änderungen vornehmen und das System auf den Ausgangszustand zurücksetzen kann. 

Da Ansible einen prozeduralen Programmieransatz verwendet, können Entwicklungsteams leichter erkennen, wann und wo sich ihre Automatisierungskonfiguration ändert. So lässt sich der bestimmte Teil der Konfiguration schneller isolieren und die Abweichung einfacher beheben. Je nach Komplexität der IT-Infrastruktur können Konfigurationsänderungen bei Automatisierungslösungen mit einem deklarativen Programmieransatz (wie Terraform) eine viel größere Herausforderung darstellen. Aus diesem Grund ziehen IT-Organisationen manchmal Ansible für einfache Konfigurationsänderungen vor, anstatt ein gesamtes IT-System mit einer Lösung wie Terraform umfassend neu zu konfigurieren.

Eine bessere Frage wäre vielleicht: „Was benötigt Ihr Unternehmen für Ihren konkreten Use Case?“ Sie müssen Ihre spezifischen geschäftlichen Herausforderungen und Anforderungen ermitteln und die Lösung (oder Lösungen) auswählen, die am besten funktionieren. Für einige Probleme eignet sich der erste Ansatz besser, andere können besser mit dem anderen gelöst werden. Und manchmal ist eine Kombination von Lösungen der Schlüssel zum Erfolg.

Terraform und Ansible Automation Platform sind beliebte Automatisierungsangebote – und beliebte DevOps-Tools. Die Lösungen haben aber sehr unterschiedliche Funktionen. Terraform ist auf die Provisionierung von Public Cloud-Infrastrukturen spezialisiert, einem von vielen Use Cases in der Welt der IT-Automatisierung. Ansible Automation Platform deckt viele verschiedene Use Cases für Automatisierung ab. Anstelle eines einzigen Automatisierungsansatzes bietet Ansible Automation Platform eine Vielzahl von Ansätzen, um viele unterschiedliche Probleme anzugehen. Und wenn unsere Kunden auf ein bestimmtes Problem stoßen, das sich am besten mit der Kombination zweier Automatisierungslösungen meistern lässt, kann Ansible Automation Platform in andere Produkte führender Cloud-Anbieter integriert werden, darunter Amazon Web Services (AWS) CloudFormation, Microsoft Azure Resource Manager, Google Cloud Platform (GCP) Cloud Deployment Manager sowie Helm und Terraform.

Viele unserer Kunden nutzen mehrere Automatisierungslösungen gleichzeitig. Wenn sie beispielsweise Anwendungen in der Cloud bereitstellen, beginnen sie häufig mit der Bereitstellung der Cloud-Infrastruktur mit CloudFormation oder Terraform und führen dann die laufende Konfiguration von Anwendungen und Prozessen mit Ansible Automation Platform durch. Um diesen Prozess effizienter zu gestalten, haben wir kürzlich eine Red Hat Ansible Certified Content Collection für Terraform eingeführt. Diese von Red Hat unterstützte Collection automatisiert die Verwaltung und Provisionierung von IaC mit Terraform in einer Ansible Automation Platform-Ausführungsumgebung.

Andere Kunden setzen ausschließlich auf Ansible Automation Platform, weil sie mehrere Use Cases automatisieren möchten, nicht nur das Cloud-Deployment. Einige möchten vielleicht neben Netzwerkprozessen wie der Neukonfiguration von Routern und Switches auch Sicherheitsprozesse automatisieren, beispielsweise die Untersuchung von Bedrohungen oder die Reaktion auf Sicherheitsvorfälle.

Diese Kunden möchten ihren Automatisierungsansatz für alle Use Cases standardisieren, um ihren ROI (Return on Investment) zu maximieren. 

 

Bei der Vielzahl verfügbarer Automatisierungsangebote für Unternehmen ist es von entscheidender Bedeutung, deren Funktionen und Möglichkeiten zu kennen. Vor allem sollten Sie wissen, welche Option für die spezifischen Anforderungen Ihres Unternehmens am besten geeignet ist. 
 
Red Hat Ansible Automation Platform ist ein gehärtetes und getestetes Subskriptionsprodukt, bei dem Open Source im Mittelpunkt steht und das Unternehmen umfassenden Lifecycle-Support bietet. Es basiert auf der Ansible-Community, die von der Erfahrung und dem Fachwissen Tausender von Mitwirkenden weltweit profitiert. Ansible Automation Platform wurde entwickelt, um Unternehmen bei der Erstellung, Verwaltung und Skalierung ihrer Automatisierungs-Workloads zu unterstützen. Es bietet eine flexible, stabile und sicherheitsorientierte Basis für die Bereitstellung von End-to-End-Automatisierungslösungen, einschließlich Automatisierung für Hybrid Cloud, Edge-Standorte, Netzwerke, Sicherheit, Infrastruktur und viele andere Use Cases

Terraform ist ein hervorragendes Tool für die Provisionierung und Deprovisionierung von Cloud-Infrastrukturen mit einem IaC-Ansatz. Es ist ein Spezialtool, das für einen speziellen Zweck genutzt wird. Ansible bietet eine universelle, domainübergreifende Automatisierungslösung. Beide verfügen über aktive Open Source Communities und gut unterstützte nachgelagerte kommerzielle Produkte. Beide Lösungen haben also ihre individuellen Stärken – und wenn sie kombiniert genutzt werden, arbeiten sie nicht nur gut zusammen, sondern sorgen in vielen Unternehmen auch für mehr Effizienz. Kurz gesagt: Die Entscheidung für eine Automatisierungslösung ist nicht immer ein „Entweder-oder“, sondern oft ein „Und“. 

Weiterlesen

Artikel

Die Grundlagen von Ansible

Ansible automatisiert IT-Prozesse wie Provisionierung und Konfigurationsmanagement. Erlernen Sie die Grundlagen von Ansible mit dieser Einführung in die wichtigsten Konzepte.

Artikel

Was ist Business Process Management?

Unter Business Process Management (BPM) versteht man die Modellierung, Analyse und Optimierung von End-to-End-Geschäftsprozessen, um strategische Unternehmensziele zu erfüllen.

Artikel

Warum Red Hat für die Automatisierung?

Die Red Hat Ansible Automation Platform umfasst alle Tools, die Sie zur Implementierung einer unternehmensweiten Automatisierung und zum teamübergreifenden Teilen von Automatisierungsprozessen benötigen.

Mehr über Automatisierung

Produkte

Interaktionen mit unseren strategischen Beratern, die sich ein Gesamtbild von Ihrem Unternehmen machen, Ihre Herausforderungen analysieren und Ihnen helfen, diese mit umfassenden, kosteneffektiven Lösungen zu meistern.

Eine Plattform für die Implementierung unternehmensweiter Automatisierungsprozesse – unabhängig davon, in welcher Phase der Automatisierung Sie sich befinden.

Ressourcen

Training

Kostenloser Trainingskurs

Ansible Essentials: Simplicity in Automation Technical Overview

Kostenloser Trainingskurs

Red Hat Ansible Automation for SAP