Die Bandbreite der Tools, die im Rahmen der DevOps-Softwareentwicklungstechnik zur Verfügung stehen, wird immer größer. Heute stehen Tausende von Tools zur Auswahl. Jedes Tool hat seine Gründe für den Einsatz in Ihrem Unternehmen: wie es Ihnen hilft, Ihre Ziele oder sogar Ihre täglichen Aufgaben zu erreichen. Und egal, ob Sie ein neuer oder ein erfahrener Entwickler sind, Sie könnten bei der Suche nach der richtigen Option überwältigt werden.
Selbst wenn Sie die Liste der potenziellen Tools (die Sie interessieren) eingegrenzt haben, sind die Probleme, die Sie lösen wollen, sehr unterschiedlich. Vielleicht wünschen Sie sich zum Beispiel ein spezielles Konfigurationsmanagement oder eine Anwendungsbereitstellung in der IT-Infrastruktur, so dass die Auswahl schwierig ist. Chef und Ansible sind bisher die führenden Tools.
Wenn Sie sich mit DevOps beschäftigen, müssen Sie verstehen, wann Sie sich für eine bestimmte Automatisierungstechnologie entscheiden und warum. In diesem Beitrag werde ich die beiden Automatisierungstools aufschlüsseln und dabei berücksichtigen, dass jeder Entwickler seine eigenen Bedürfnisse hat. Und obwohl das “beste” Tool subjektiv ist, werde ich Ihnen die Unterschiede aufzeigen, gemeinsame Eigenschaften erwähnen und Ihnen so helfen, eine fundierte Entscheidung zu treffen.
Begriffe der DevOps-Automatisierung, die Sie kennen sollten
Bevor wir uns mit Ansible und Chef beschäftigen, sollten Sie die wichtigsten Begriffe aus dem Bereich der DevOps-Automatisierung kennen, um ein reibungsloses Verständnis des Bereichs zu gewährleisten.
- DevOps und DevSecOps – Die Begriffe beziehen sich auf den Entwicklungsbetrieb bzw. den Sicherheitsbetrieb bei der Entwicklung. Diese Softwareentwicklungstechniken beinhalten Ansätze für Kultur, Automatisierung und Plattformdesign mit einer Schnittmenge aus integrierter Sicherheit als gemeinsamer Verantwortung im gesamten IT-Lebenszyklus. DevOps und DevSecOps sind sich zwar ähnlich, aber wenn man die Sicherheit in DevOps mit einbezieht, entsteht DevSecOps, um das Ganze zu verdeutlichen.
- Konfigurationsmanagement – Bei diesem Prozess geht es darum, Computersysteme, Server und die gesamte Software in einem gewünschten Zustand zu halten. Dieser Ansatz für den Umgang mit Software stellt sicher, dass Ihre Software wie erwartet funktioniert. Wenn Sie das Konfigurationsmanagement automatisieren können, reduzieren Sie die Kosten, die Komplexität und das Risiko, das mit manuellen Fehlern verbunden ist.
- Agentenbasierte Architektur – Chef verwendet dieses Kriterium. Es beschreibt ein Automatisierungsmodell und eine Infrastruktur, die spezielle Software, sogenannte Agenten, zur Ausführung in verwalteten Umgebungen verwendet. Um das Modell zu nutzen, müssen Sie auf jedem Zielknoten Abhängigkeiten mit zusätzlichen Sicherheitsprüfungen und Regeln installieren, was zeitaufwändig sein kann, insbesondere wenn Sie Software in einem begrenzten Zeitraum bereitstellen.
- Agentenlose Architektur – Dieses von Ansible verwendete Kriterium beinhaltet die Automatisierung und Verwaltung von IT-Diensten, ohne dass Agenten benötigt werden. Die Steuerungssoftware kommt ohne langwierige Installationen aus und verbindet sich mit entfernten Rechnern über eine Secure Socket Shell (SSH). Sobald Sie Ihr System konfiguriert haben, brauchen Sie kein Deployment-System mehr zu unterhalten; dazu später mehr.
- YAML – Yet Another Markup Language, gelegentlich auch Yet Ain’t Markup Language, ist die Deserialisierungssprache, die zum Schreiben von Konfigurationsdateien verwendet wird. YAML ist ein JavaScript-Superset. Es ist für Menschen lesbar und kann leicht mit anderen Programmiersprachen kombiniert werden.
Was ist Ansible?
Ansible ist ein IT-Automatisierungstool, das 2012 von seiner Muttergesellschaft Ansible Works entwickelt wurde, um den gesamten Lebenszyklus von Anwendungen in IT-Umgebungen zu automatisieren. Ansible hilft bei der Automatisierung des Konfigurationsmanagements, der Orchestrierung von Workflows und der Anwendungsentwicklung – die Liste ist lang. Das Betriebsmodell von Ansible führt Aufgaben in einer bestimmten Reihenfolge aus, einer eigenen, die die Prozesse der IT-Umgebung konsistent ausführt.
Ansible erhöht die Qualität und Produktivität und senkt gleichzeitig die Kosten, indem es die IT-Umgebung optimiert. Es kann auch eine Lösung sein, die Smartness in den IT-Bereich einführt. Ansible überbrückt traditionelle IT-Umgebungen mit agiler Software-Implementierung. Es ist Open-Source und basiert auf dem Client-Server-Modell. Die Entwickler von Ansible behaupten, dass es die einzige Automatisierungs-Engine ist, die den gesamten APK-Lebenszyklus im Rahmen einer kontinuierlichen Bereitstellung robotisiert. Bei der Automatisierung geht es darum, komplexe Aufgaben in wiederholbare Playbooks zu verwandeln, Prozesse zu vereinfachen und schließlich die Produktion zu beschleunigen.
Es überrascht nicht, dass der Name “ansible” aus der Science-Fiction-Literatur stammt. Er beschreibt ein augenblickliches Hyperraum-Kommunikationssystem.
Ansible-Kontrollmaschinen sind Linux/Unix-basiert – wie Debian, RedHat Enterprise Linux und macOS. Sie können Ansible unter Python 2.7 oder 3.5 ausführen. Ansible verwendet winRM und OpenSSH für Fernverbindungen und bietet eine Vielzahl integrierter Module. Damit bietet Ansible Zuverlässigkeit und Sicherheit bei DevOps und IT-Betrieb.
Ansible kann von vielen Akteuren in diesem Bereich zur Automatisierung der IT-Infrastruktur eingesetzt werden, darunter Betreiber, IT-Führungskräfte, Manager und Release Engineers. Nun, da ich Ansible an seine Benutzer gebunden habe, was ist mit Organisationen? Unabhängig davon, ob Sie ein großes oder ein kleines Unternehmen leiten, können Sie Ansible einsetzen, um Ihre IT-Abläufe zu rationalisieren. Viele Unternehmen, die Ansible einsetzen, sind jedoch auf die Bereiche Informationstechnologie und Kommunikation zugeschnitten.
Die wichtigsten Funktionen von Ansible
- Ansible Content Collections – Dieses Tool hilft Ihnen beim Aufbau einer starken Benutzergemeinschaft. Ansible verfügt über vorgefertigte Module, die Entwicklern und Autoren von Inhalten helfen, bei der Arbeit effizient zusammenzuarbeiten. Ansible bietet eine konsistente Struktur, über die Sie Bündel von Modulen, Rollen, Plugins und Dokumentationen in Ihrem Inhaltserstellungsprozess bewegen können. Das Fantastische daran ist, dass Sie immer einen konsistenten Durchsatz an Inhalten sicherstellen können, ohne sich um Versionsaktualisierungen und Releases kümmern zu müssen.
- Automation Services Catalog – Dies ist die Funktion für die Bereitstellung, Verwaltung und vollständige Automatisierung von Ressourcen. Es automatisiert nicht nur häufige Benutzeranfragen durch die bereits erwähnte RBAC-Technik, sondern hilft auch bei der Erfüllung von IT-Compliance-Anforderungen.
- Automation Hub – Dieses Tool bietet Zugang zur Suche und Nutzung von Red Hat-Inhalten und zugehörigen Partnern. Sie können seine Inhalte erweitern, indem Sie Ansible-Sammlungen im Automation Hub veröffentlichen und verwalten. Insbesondere die Anleitungen, die Sie bei der Nutzung von Ansible unterstützen.
- Automation Execution Environments – In der Regel handelt es sich dabei um ein Container-Image, auf dem IT-Automatisierungsumgebungen aufgebaut sind. Es ist das Mittel, um Ihre Aufgaben und Verfahren auf standardisierte Weise zu automatisieren. Aus der Sicht des Entwicklers können Sie es als eine gemeinsame Sprache für Automatisierungstechniker, Plattformarchitekten und Administratoren betrachten.
- Automation Mesh – Diese Schicht vereinfacht den Skalierungsprozess mithilfe einer bilateralen Kommunikationsschicht. Das Tool rationalisiert die Flexibilität bei der Anwendungsbereitstellung und achtet gleichzeitig darauf, die Transparenz und Kontrolle über Ihr IT-Ökosystem nicht zu beeinträchtigen. Automation Mesh bietet Sicherheitsfunktionen wie digitale Signaturen, Transport Layer Security (TLS), Verkehrsverschlüsselung und zusätzliche Zugriffskontrollen.
- Automation Analytics and Insights – Dieser Teil hilft Ihnen, die Leistung der Ansible-Automatisierung zu bewerten. Mit anderen Worten, dies ist Ihr Tor zum Gesundheitscheck Ihrer Automatisierung, der aus verwertbaren Daten abgeleitet wird, die Sie nutzen können, um logische und fundierte Entscheidungen zu treffen.
Vorteile von Ansible
- Leicht zu erlernen. Sie benötigen keine Vorkenntnisse.
- Vereinfachte Konfigurationsverwaltung und Anwendungsbereitstellung.
- Erhöhte Sicherheit und Zuverlässigkeit.
- Zentralisiertes Dashboard für Automatisierung und Visualisierung verfügbar.
- Unterstützt die Einhaltung von IT-Vorschriften.
- Zeitsparend.
- Ermöglicht kontinuierliche Integration.
- Größere Gemeinschaft
Nachteile von Ansible
- Unterentwickelte grafische Benutzeroberfläche (GUI)
- Zustandslos und verfolgt daher keine Änderungen an Abhängigkeiten.
- Unerwünschte Debugging-Fähigkeit.
Was ist Chef?
Chef wurde 2009 von seiner Muttergesellschaft OpsCode ins Leben gerufen. Die Chef-Technologie ist eine Nachfolgesoftware für ein altes Konfigurationstool namens Puppet, das schwer zu verstehen war und eine steile Lernkurve hatte. Chef ist im Gegensatz zu Ansible etwas schwieriger zu verstehen. Aber mit etwas Übung wird es einfach, wie bei jeder Programmiersprache. Chef und Puppet werden von der Programmiersprache Ruby unterstützt.
“Chef ist eine leistungsstarke Automatisierungsplattform, die Infrastrukturen in Code verwandelt…”
– Chef Designer
Chef ist also ein weiteres Automatisierungstool, das sich durch seine Fähigkeiten bei der kontinuierlichen Bereitstellung und Konfigurationsverwaltung auszeichnet. Und ganz gleich, ob Sie vor Ort, in einer hybriden Umgebung oder in der Cloud arbeiten, Chef automatisiert die Konfiguration, Bereitstellung und Verwaltung Ihres Netzwerks unabhängig von dessen Größe.
Chef läuft auf verschiedenen Plattformen wie Windows, Cisco IO und Nexus. Und wenn Sie zu den Entwicklern gehören, die sich für Cloud-Technologie begeistern, unterstützt Chef Plattformen wie Microsoft Azure, Amazon Web Services (AWS) und Google Cloud Platform. Die Liste geht noch weiter. Prüfen Sie, ob Ihr bevorzugter Cloud-Anbieter unterstützt wird.
Im Gegensatz zu Ansible, das viele Benutzer verwenden, richtet sich Chef ausdrücklich an DevOps- und DevSecOps-Ingenieure. Die Lösung wird in der Regel von mittleren bis höheren IT- und Dienstleistungsunternehmen eingesetzt.
Hauptmerkmale von Chef
Chef Solutions verfügt über viele wichtige architektonische Funktionen; hier eine Aufschlüsselung.
- Chef Infra – Mit diesem Tool können Sie Ihre IT-Infrastruktur effizient automatisieren, konfigurieren, verwalten und bereitstellen. Chef Infra wandelt die Infrastruktur in Code um und sorgt für eine stabile Bereitstellung darüber. Chef Infra besteht aus drei Komponenten: Chef Server, Workstation und Clients. Die Workstation als Hauptkomponente läuft auf jeder Plattform und unterstützt das Testen von Code mit verschiedenen Tools.
- Chef Habitat – Als Open-Source-Produkt unterstützt dieses Tool die Anwendungsbereitstellung unabhängig von Ihrer Plattform. Es definiert, verpackt und stellt Anwendungen automatisch bereit, wenn Sie die einzelnen Komponenten, die Paketformate, die oft isoliert, auditierbar und unveränderlich sind, und einen Habitat Supervisor zur Verwaltung dieser Pakete betrachten.
- Chef InSpec – Dieses Open-Source-Testframework läuft auf jeder Plattform. Das Framework ist sowohl für Menschen als auch für Maschinen lesbar. Es ist auch eine Lösung zur Verbesserung der Sicherheit und der Compliance. Ein zusätzlicher Vorteil ist, dass Sie es zum Testen Ihrer physischen Hardware verwenden können.
- Chef Automate – Dies ist Ihr Einstieg in die Integration von Open-Source-Produkten wie Chef InSpec und Habitat. Es bietet kontinuierliche Sicherheit und Konformität auf der ganzen Linie. Sie können Chef Automate auch dazu verwenden, Ihr gesamtes IT-Ökosystem zu überblicken und Erkenntnisse zu gewinnen, die für Sie von Nutzen sind.
Vorteile von Chef
- Vorgefertigte Vorlagen, die die Konfiguration vereinfachen.
- Einfach zu bedienen; entwickelt schnell Kochbücher.
- Gewährleistet Konsistenz und Qualität bei der Bereitstellung.
- Gute Anpassbarkeit des Tools; passen Sie Ihr Dashboard an Ihre Bedürfnisse an.
- Sie können Chef nicht einfach migrieren.
- Automatisiert IT-Konformität.
- Sorgt für eine sichere und reibungslose Bereitstellung von kritischen Anwendungen.
Nachteile von Chef
- Viele Tools bedürfen der Klärung durch die Benutzer.
- Sie müssen die Programmiersprache Ruby verstehen.
- Steile Lernkurve.
- Nicht das Beste für Mikro-Organisationen.
- Verfolgt den Master-Client-Ansatz, was es langsam macht.
- Relativ hohe Kosten.
Hauptunterschiede zwischen Ansible und Chef
Obwohl Ansible und Chef in Bezug auf die Automatisierung auf der gleichen Seite stehen, unterscheiden sie sich in ihren Eigenschaften. Dieser Abschnitt hebt die Unterschiede zwischen Ansible und Chef hervor.
Funktion | Ansible | Chef |
Installation | Einfach zu installieren, da es eine agentenlose Architektur verwendet. | Verwendet das Master-Client-Kriterium, bei dem der Chef Agent auf jedem Client-Rechner ausgeführt werden muss. Die Workstation-Komponente von Chef muss ebenfalls konfiguriert werden, was den gesamten Installationsprozess verlangsamt. |
Verwendete Sprache | Ansible ist in Python geschrieben und verwendet YAML für die Konfiguration. | Es ist an seine Muttersprache Ruby gebunden, die mehr auf Entwickler ausgerichtet ist. |
Konfiguration | Die Konfigurationsdateien in Ansible werden Playbooks genannt. Ansible verwendet das Push-Konfigurationsoperationsmodell. | Konfigurationsdateien in Chef werden als Kochbücher bezeichnet. Chef wendet die Pull-Konfigurationstechnik an. |
Gemeinschaft (Vielfältige Aktivitäten, die sich nicht auf Meetings, Präsenz in den sozialen Medien, Bücher und Schulungen beschränken) | Neues Produkt und relativ wenig zu lernen. Hat eine große Gemeinschaft. | Chef ist ein älteres Produkt, daher ist seine Dokumentation besser. Relativ kleine Gemeinschaft. |
Das Ganze zusammenfügen
Wie Sie gesehen haben, sind Chef und Ansible die am weitesten verbreiteten Automatisierungs- und Konfigurationssysteme für DevOps, DevSecOps und andere IT-Prozesse. Ansible ist einfach und leicht zu bedienen und kann von vielen Benutzern erlernt werden. Chef hingegen verfügt über zahlreiche Funktionen und hilft bei der Durchführung komplexer IT-Prozesse.
Sie haben auch die Vorteile und Grenzen von Ansible und Chef kennengelernt. Um Ihre Automatisierungslösung auszuwählen, müssen Sie Ihre Anforderungen bewerten. Und auch wenn Ihre Anforderungen erfüllt sind, gibt es noch einige andere Faktoren, die Sie berücksichtigen müssen: die Bequemlichkeit, die aktuell verfügbaren Funktionen der von Ihnen gewählten Lösung und die langfristigen Aussichten. Berücksichtigen Sie auch andere Faktoren wie das künftige Arbeitsaufkommen oder das Größenwachstum Ihres Unternehmens im Laufe der Zeit.
Wenn Sie es bis hierher geschafft haben, hat DevOps Ihr Interesse geweckt. Wenn das der Fall ist, empfehle ich Ihnen, mit Ihrer Berufswahl oder Ihren Überlegungen fortzufahren; deshalb sollten Sie sich unseren Leitfaden ansehen, den unsere Experten sorgfältig über die besten DevOps-Kurse zusammengestellt haben.