Kritik: Puppet vs. Chef vs. Ansible vs. Salt

Die zunehmende Virtualisierung in Verbindung mit der zunehmenden Leistung von Servern nach Industriestandard und der Verfügbarkeit von Cloud Computing hat zu einem deutlichen Anstieg der Anzahl von Servern geführt, die innerhalb und außerhalb eines Unternehmens verwaltet werden müssen. Wo wir uns früher mit Racks physischer Server begnügten, auf die wir im Rechenzentrum im Flur zugreifen konnten, müssen wir jetzt viel mehr Server verwalten, die auf der ganzen Welt verteilt sein könnten.

Hier kommen Tools für die Orchestrierung und das Konfigurationsmanagement von Rechenzentren ins Spiel. In vielen Fällen verwalten wir Gruppen identischer Server, auf denen identische Anwendungen und Dienste ausgeführt werden. Sie werden auf Virtualisierungsframeworks innerhalb des Unternehmens bereitgestellt oder als Cloud- oder gehostete Instanzen in Remote-Rechenzentren ausgeführt. In einigen Fällen handelt es sich möglicherweise um große Installationen, die nur zur Unterstützung sehr großer Anwendungen existieren, oder um große Installationen, die unzählige kleinere Dienste unterstützen. In beiden Fällen kann die Fähigkeit, einen Zauberstab zu schwingen und sie alle dazu zu bringen, sich dem Willen des Administrators zu beugen, nicht ausgeschlossen werden. Nur so können diese großen und wachsenden Infrastrukturen verwaltet werden.

Puppet, Chef, Ansible und Salt wurden alle mit dem Ziel entwickelt, die Konfiguration und Wartung von Dutzenden, Hunderten oder sogar Tausenden von Servern zu vereinfachen. Das heißt nicht, dass kleinere Geschäfte nicht von diesen Tools profitieren, da Automatisierung und Orchestrierung im Allgemeinen das Leben in einer Infrastruktur jeder Größe erleichtern.

Ich habe mir jedes dieser vier Tools eingehend angesehen, deren Design und Funktion untersucht und festgestellt, dass einige zwar besser abschneiden als andere, aber je nach den Zielen der Bereitstellung einen Platz für jedes haben. Hier fasse ich meine Ergebnisse zusammen.

Puppet Enterprise

Puppet genießt wohl den größten Geistesanteil der vier. Es ist das vollständigste in Bezug auf verfügbare Aktionen, Module und Benutzeroberflächen. Puppet repräsentiert das gesamte Bild der Orchestrierung von Rechenzentren, umfasst nahezu jedes Betriebssystem und bietet umfassende Tools für die Hauptbetriebssysteme. Die Ersteinrichtung ist relativ einfach und erfordert die Installation eines Master-Servers und von Client-Agenten auf jedem zu verwaltenden System.

Von dort aus ist die CLI (Befehlszeilenschnittstelle) unkompliziert und ermöglicht das Herunterladen und Installieren von Modulen über den puppetBefehl. Anschließend sind Änderungen an den Konfigurationsdateien erforderlich, um das Modul für die erforderliche Aufgabe anzupassen. Die Clients, die die Anweisungen erhalten sollen, tun dies, wenn sie beim Master einchecken oder über einen Push, der die Änderungen sofort auslöst.

Es gibt auch Module, die Cloud-Serverinstanzen und virtuelle Serverinstanzen bereitstellen und konfigurieren können. Alle Module und Konfigurationen basieren auf einer Puppet-spezifischen Sprache, die auf Ruby oder Ruby selbst basiert, und erfordern daher zusätzlich zu den Systemadministrationskenntnissen programmatisches Fachwissen.

Scorecard Skalierbarkeit (20,0%) Verfügbarkeit (20,0%) Leistung (10,0%) Wert (10,0%) Management (20,0%) Interoperabilität (20,0%) Gesamtpunktzahl (100%)
AnsibleWorks Ansible 1.3 8.0 9.0 9.0 9.0 8.0 7.0 8.2
Enterprise Chef 11.4 9.0 9.0 8.0 9.0 7.0 8.0 8.3
Puppet Enterprise 3.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0
SaltStack Enterprise 0.17.0 9.0 9.0 9.0 9.0 9.0 8.0 8.8