Die 10 besten Tools für das Konfigurationsmanagement, die Sie kennen müssen


In nur wenigen Jahren hat sich DevOps von einer Randerscheinung zu einem Muss für jede IT-Führungskraft entwickelt. Es gibt viel Aufsehen erregt, aber es steckt auch viel praktisches Wissen darin. Die Bereitstellung von Umgebungen, die Bereitstellung von Anwendungen, die Wartung von Infrastrukturen - all dies sind kritische, aber heikle Aufgaben, die traditionell von Hand erledigt werden. Was wäre, wenn wir eine Maschine beauftragen könnten, all diese Dinge für uns zu erledigen und nicht nur Stunden an Arbeit zu sparen, sondern auch das Element menschlicher Fehler zu beseitigen?

Warum Konfigurationsmanagement?

Konfigurationsmanagement-Software ermöglicht die Verwendung getesteter und bewährter Softwareentwicklungspraktiken für die Verwaltung und Bereitstellung von Rechenzentren in Echtzeit über Klartext-Definitionsdateien. Einige betrachten CM-Lösungen als "DevOps in a Box", aber das ist nicht richtig. Bei DevOps geht es um die Zusammenarbeit zwischen Menschen, während CM-Tools genau das sind: Tools zur Automatisierung der Anwendung von Konfigurationszuständen. Wie alle anderen Tools sind sie darauf ausgelegt, bestimmte Probleme auf bestimmte Weise zu lösen. Wie effektiv sie dies tun, hängt vom Wissen und Können der Person ab, die sie führt.

Wir haben es Ihnen leicht gemacht, sich einen schnellen Überblick über jedes Tool zu verschaffen und es mit Alternativen zu vergleichen, damit Sie das richtige Konfigurationsmanagement-Tool für Sie finden können (und erklären können, warum Sie sich nicht für die Optionen X, Y und Z entschieden haben).

Vorteile und Risiken

Die Automatisierung von Änderungen am Konfigurationsstatus Ihrer Infrastruktur ist ein zweischneidiges Schwert: Sie können Änderungen sehr schnell vornehmen, aber jemand anderes muss diese Änderungen validieren. Bei der Auswahl des Konfigurationsmanagement-Tools sollten Sie auch darüber nachdenken, welche(s) ergänzende(n) Tool(s) Sie verwenden werden, um die kostspieligen Auswirkungen der Automatisierung der Bereitstellung von Fehlern in Ihrer Infrastructure-as-Code-Funktion zu vermeiden. Darüber hinaus sind Softwarekonfigurationsmanagement-Tools (oder SCM-Tools) versionskontroll- und textfreundlich, wir können Änderungen am Code vornehmen, und Änderungen können als Merge-Anfrage vorgenommen und zur Überprüfung gesendet werden.

Mit Konfigurationsmanagement-Tools werden viele der betriebssystemspezifischen Implementierungen einer Konfiguration für Sie abstrahiert. Dieselbe Konfigurationsdatei kann beispielsweise verwendet werden, um die Installation von Apache HTTPD sowohl auf Red Hat- als auch auf Ubuntu-Systemen zu verwalten.

Eine schlechte Konfiguration kann ein massives Cybersicherheitsrisiko darstellen, das zu Datenschutzverletzungen und anderen Cyberangriffen führt. Wenn Sie Ihre Infrastrukturkonfiguration automatisieren, müssen Sie über Cybersicherheit, Informationssicherheit und Informationsrisikomanagement nachdenken.

Sie sollten auch darüber nachdenken, wie sicher Ihre Konfigurationsverwaltungstools sind und ob Sie ihnen Zugriff auf zu viele vertrauliche Informationen gewähren. Denken Sie über das Risikomanagement von Anbietern nach und haben Sie ein Risikomanagement-Framework eines Drittanbieters zur Hand und führen Sie eine Risikobewertung der Cybersicherheit durch.

1. CFEngine

CFEngine ist eines der älteren Open-Source-Konfigurationsmanagement-Tools, das die Automatisierungskonfiguration für große Computersysteme ermöglicht, einschließlich der einheitlichen Verwaltung von Servern, Systemen, Benutzern, eingebetteten Netzwerkgeräten, mobilen Geräten und mehr. Wir vergleichen es mit Puppet, ebenfalls eine etablierte Technologie:

"CFEngine läuft auf C, im Gegensatz zu Puppets Verwendung von Ruby. C ist das niedrigere Niveau der beiden Sprachen, und eine der Hauptbeschwerden in Bezug auf CFEngine ist, dass die Lernkurve sehr steil ist. Es bedeutet jedoch, dass CFEngine einen drastisch geringeren Speicherbedarf hat, schneller läuft und viel weniger Abhängigkeiten hat."

2. Marionette

Der jährliche "State of DevOps"-Bericht von Puppet ist eine der besten Ressourcen für DevOps-Trends. Die Stärken und Schwächen der Puppet-Plattform zu kennen, wird für die Mitarbeiter im operativen Geschäft immer wichtiger. Puppet verwendet eine deklarative Sprache oder Ruby, um die Systemkonfiguration zu beschreiben. Es ist in Modulen organisiert, und Manifestdateien enthalten die gewünschten Zustandsziele, um alles wie erforderlich zu halten.

"Es wird häufig behauptet, dass Puppet ein Tool ist, das speziell für Systemadministratoren entwickelt wurde. Die Lernkurve ist weniger beeindruckend, da Puppet in erster Linie modellgesteuert ist. Sich mit JSON-Datenstrukturen in Puppet-Manifesten vertraut zu machen, ist für einen Systemadministrator, der sein Leben an der Befehlszeile verbracht hat, weitaus weniger entmutigend als die Ruby-Syntax."

Die Open-Source-Edition von Puppet ist kostenlos erhältlich, während Puppet Enterprise für bis zu 10 Knoten kostenlos ist. Hinweis: Sobald Puppet installiert ist, wird auf jedem Knoten (physischer Server, Gerät oder virtuelle Maschine) in der Infrastruktur ein Puppet-Agent installiert.

Wir vergleichen Puppet mit Chef, seinem engsten Konkurrenten: Puppet vs. Chef

3. Chefkoch

Neben Puppet ist Chef das andere Schwergewicht auf dem Markt für CM- und Automatisierungsplattformen. Es verwaltet Server in der Cloud, lokal oder in einer hybriden Umgebung. Da Sie Cloud-agnostisch sind, können Sie sowohl das Rechenzentrum als auch die Cloud-Umgebung gleichzeitig verwalten, selbst wenn Sie Ihren Cloud-Anbieter wechseln.

"Wie Puppet ist auch Chef in Ruby geschrieben, und seine CLI verwendet ebenfalls eine Ruby-basierte DSL. Chef verwendet ein Master-Agent-Modell, und zusätzlich zu einem Master-Server erfordert eine Chef-Installation auch eine Workstation zur Steuerung des Masters. Die Agenten können von der Workstation aus mit dem 'knife'-Tool installiert werden, das SSH für die Bereitstellung verwendet, was den Installationsaufwand verringert."

Sehen Sie, wie es im Vergleich zum CM-Neuling Ansible: Ansible vs. Chef abschneidet

4. Ansible

Ansible ist neuer als Chef oder Puppet und das beste Open-Source-Tool für Konfigurationsmanagement, Bereitstellung, Orchestrierung und auch Automatisierungs-Engine. Tatsächlich ist es in beliebten Linux-Distributionen wie Fedora enthalten. Es hilft bei der Automatisierung der IT-Infrastruktur, von der Softwarebereitstellung über das Konfigurationsmanagement bis hin zur Anwendungsbereitstellung, und bietet große Produktivitätssteigerungen.

"Derzeit bestehen ihre Lösungen aus zwei Angeboten: Ansible und Ansible Tower, wobei letzteres über die Benutzeroberfläche und das Dashboard der Plattform verfügt. Obwohl es im Vergleich zu Konkurrenten wie Chef oder Puppet ein relativ neuer Akteur in der Arena ist, hat es sich unter DevOps-Profis einen recht guten Ruf für seine unkomplizierten Abläufe und einfachen Verwaltungsfunktionen erworben."

Sehen Sie sich die Vor- und Nachteile der Verwendung von Ansible an: Top 5 der besten und schlechtesten Attribute von Ansible

Ansible ist eines unserer Lieblingstools. Sie können Ansible verwenden, um denselben Befehl auf mehreren Servern über die Befehlszeile auszuführen. Sie können es auch verwenden, um Aufgaben (z. B. das Hinzufügen von Benutzern, das Installieren von Paketen und das Aktualisieren von Serverkonfigurationen) mithilfe von Playbooks zu automatisieren, die in YAML geschrieben wurden und die Kommunikation zwischen technischen und nicht-technischen Teams erleichtern. Ansible ist einfach, agentenlos und für Programmierer und Nicht-Programmierer gleichermaßen leicht zu lesen.

Keine Agenten bedeuten weniger Overhead auf Ihren Servern. Im Push-Modus (Standard) ist eine SSH-Verbindung erforderlich, der Pull-Modus ist jedoch bei Bedarf verfügbar. Playbooks können mit minimalen Befehlen geschrieben oder mit komplexeren Automatisierungsaufgaben wie Rollen, Variablen und Modulen skaliert werden.

5. SaltStack

Als Hauptlieferant des "Infrastructure-as-Code"-Ideals hat SaltStack eine beträchtliche Anhängerschaft gewonnen, obwohl es aufgrund seiner vielen Integrationen mit Cloud-Anbietern wie Google Cloud, Amazon Web Services (AWS) usw. erst relativ spät auf dem Markt erschienen ist

"Salt wird, wie Ansible, in Python entwickelt. Es wurde auch als Reaktion auf die Unzufriedenheit mit der Hegemonie von Puppet/Chef entwickelt, insbesondere mit der langsamen Geschwindigkeit der Bereitstellung und der Beschränkung der Benutzer auf Ruby. Salt ist sozusagen auf halbem Weg zwischen Puppet und Ansible - es unterstützt Python, zwingt aber auch Benutzer, alle CLI-Befehle entweder in Python oder in der benutzerdefinierten DSL namens PyDSL zu schreiben. Es verwendet einen Master-Server und implementierte Agenten, die als Minions bezeichnet werden, um die Zielserver zu steuern und mit ihnen zu kommunizieren, aber dies wird mit der ZeroMq-Messaging-Bibliothek auf der Transportschicht implementiert, was es ein paar Größenordnungen schneller macht als Puppet/Chef."

Wir vergleichen Ansible mit SaltStack, zwei neueren Playern in CM: Ansible vs. Salt

6. Docker

Seit dem Start im Jahr 2013 ist Docker ein relativer Neuling, der die Welt der DevOps und Softwareentwicklung im Sturm erobert hat. Der Schlüssel zum Erfolg von Docker ist seine leichtgewichtige Containerisierungstechnologie:

>

"Ihre Technologie stellt Softwareanwendungen mit allen notwendigen Teilen in einem Container bereit und stellt so sicher, dass sie auf jedem Linux-Server laufen, unabhängig von Konfiguration und/oder Einstellungen. Container können als Vorlagen erstellt, konfiguriert und gespeichert werden, um sie auf anderen Hosts zu verwenden, auf denen die Docker-Engine ausgeführt wird. Diese Vorlagen können dann verwendet werden, um weitere Container mit demselben Betriebssystem, derselben Konfiguration und denselben Binärdateien zu erstellen."

7. PowerShell DSC

Die Lösung von Microsoft für CM ist PowerShell DSC, die nicht von Open-Source-Technologien übertroffen wird:

"DSC ist eine neue Verwaltungsplattform in Windows PowerShell, die das Bereitstellen und Verwalten von Konfigurationsdaten für Softwaredienste sowie das Verwalten der Umgebung ermöglicht, in der diese Dienste ausgeführt werden.
DSC bietet eine Reihe von Windows PowerShell-Spracherweiterungen, neuen Windows PowerShell-Cmdlets und Ressourcen, mit denen Sie deklarativ angeben können, wie Ihre Softwareumgebung konfiguriert werden soll. Es bietet auch die Möglichkeit, vorhandene Konfigurationen zu pflegen und zu verwalten."

8. TeamCity-Konfigurationstool

TeamCity ist auch einer der von Jet Brains entwickelten Management- und Continuous-Integration-Server, die auf der Java Programming Language basieren.

Erfahren Sie mehr über TeamCity vs. Jenkins für Continuous Integration.

9. JUJU Konfigurationstool

Juju ist ein Open-Source-Tool, das sich hauptsächlich auf die Verringerung des Betriebsaufwands von Software der neuen Generation konzentriert. Juju bietet Funktionen wie Konfiguration, Skalierung, schnelle Bereitstellung, Integration usw. JUJU bietet keine klaren Anweisungen zur Verwendung des OpenStack-Cloud-Anbieters.

10. Seitenruder

Rudder ist ein Open-Source-Tool zur Verwaltung der IT-Infrastruktur, das auf CFEngine aufbaut. Die einzigartige Asset-Management-Funktion von Rudder ist in der Lage, Knoten sowie deren Eigenschaften zu identifizieren, was sich bei der Durchführung von Konfigurationsmanagementaktionen als nützlich erweisen kann. Dieses CMT nutzt das Asset Management, um Knoten für das Konfigurationsmanagement zu identifizieren.

Rudder hängt von einem leichten lokalen Agenten ab, der auf jedem verwalteten System installiert ist. Die serverseitige Weboberfläche von Rudder wird in der Scala-Sprache erstellt und der lokale Agent ist in der Sprache C geschrieben.

Plan für den Erfolg

Unabhängig davon, welches Tool Sie für das Konfigurationsmanagement verwenden, besteht der Weg, um Ihr Automatisierungsprojekt zu starten, darin, herauszufinden, was Sie haben. Die Automatisierung schlechter Prozesse oder einer schlecht verstandenen Infrastruktur ist ein schneller und teurer Weg, um Ihre Probleme zu vervielfachen. Um wirklich das Beste aus Automatisierungstools herauszuholen, müssen Sie zunächst verstehen, wo die Landminen bereits vorhanden sind.

Verwandte Artikel