Salt vs. Puppet: Welche soll man wählen?


Zwei Faktoren haben zu einem entsprechenden Anstieg der Anzahl der Server geführt, die vom heutigen Systemadministrator unterstützt werden: die Virtualisierung und das massive Wachstum des Computings im Unternehmen. Selbst in kleinen und mittelständischen Unternehmen ist es nicht ungewöhnlich, einen Systemadministrator zu haben, der etwa 4 Server unterstützt. Und natürlich steigt diese Zahl nur mit zunehmender Größe der Organisation. Hier kommen Konfigurationsmanagement-Tools (CM) wie Puppet, Chef und Salt ins Spiel. Machen Sie keinen Fehler, jedes dieser Tools wird Ihr Leben als Systemadministrator wirklich vereinfachen, indem es die Plackerei der manuellen Servereinrichtung und -erstellung automatisiert und minimiert. Aber für welches sollten Sie sich entscheiden? Wie bei IOS vs. Android vs. Windows Phone, X-Box vs. PlayStation vs. Wii gibt es bei beiden sowohl eingefleischte Loyalisten als auch lautstarke Kritiker. Die Antwort ist, wie es in vielen dieser Kriege der Fall ist, dass man die Fähigkeiten jedes Kämpfers mit den eigenen Bedürfnissen abgleichen und vergleichen und selbst urteilen muss.

Geschichte

Ein DSL zu haben ist sowohl gut als auch schlecht; gut, weil es ermöglicht, Puppet-Befehle und -Strukturen schnell und mit minimalem Programmieraufwand zu definieren, und schlecht, weil man natürlich zuerst das DSL selbst definieren muss. Kanies: "Einer der Vorteile von Puppets DSL - abgesehen von der Einfachheit - besteht darin, dass es den mentalen Wandel fördert, den Puppet erfordert. Um Puppet effektiv zu nutzen, müssen Sie in Ressourcen und nicht in Dateien oder Befehlen denken. Wenn Sie Ihre Konfigurationen in Ruby geschrieben haben, könnten Sie problemlos den ganzen Tag lang Dateien öffnen und Befehle ausführen, aber mit der DSL müssen Sie lernen, in Ressourcen zu denken. " (Link: https://puppet.com/blog/why-puppet-has-its-own-configuration-language). PuppetLabs hat auch eine alternative DSL entwickelt, die es Benutzern ermöglicht, reinen nativen Ruby-Code und -Anweisungen zu verwenden, aber dies wird zugunsten der Puppet-DSL verworfen.

Die Entwicklung von Salt, auch bekannt als SaltStack, war größtenteils das Werk seines Mitbegründers Tom Hatch. Seine Glaubwürdigkeit bei der Entwicklung von CM beruht größtenteils auf seiner langjährigen Nutzung von Puppet und Chef. Er war mit beiden unzufrieden, vor allem mit ihrer Langsamkeit und ihrem übermäßigen Vertrauen in Ruby. Also begann er mit der Arbeit an SaltStack und wählte das weiter verbreitete und wohl einfacher zu verwendende Python als Arbeitssprache von Salt, im Gegensatz zu Ruby von Puppet. Salt wurde Anfang 2011 als Open Source veröffentlicht und erfreut sich einer wachsenden Fangemeinde, darunter mindestens ein bekannter, hochkarätiger Unternehmenskunde - LinkedIn. Salt enthält jetzt auch ein Enterprise-Paket für sehr große Bereitstellungen. Salt nutzt den ZeroMQ-Nachrichtenbus, eine leichtgewichtige Bibliothek, die als Parallelitäts-Framework dient. Es stellt persistente TCP-Verbindungen zwischen dem Salt-Master und den verschiedenen Clients her, über die die Kommunikation stattfindet.

Community, Plattformen und Support

Da es Puppet schon länger gibt, verfügt es natürlich über eine viel größere Community. Es wird auch von einer relativ gut etablierten kommerziellen Muttergesellschaft, PuppetLabs Inc., unterstützt. Große Unternehmen sind oft nervös, wenn es darum geht, Risiken einzugehen, ihre Ressourcen einzusetzen und Partnerschaften mit kleinen, etwas unbekannten Unternehmen einzugehen (denken Sie an Linux in den Anfängen). Für solche Kunden ist ein Tool wie Puppet ein Geschenk des Himmels. Puppet ist auf allen wichtigen Betriebssystemen verfügbar - Windows, Linux und MacOS X. Die Reife, die Kommerzialisierung und die schiere Größe von Puppet haben jedoch auch zu einer etwas verärgerten Minderheit geführt. Der Markt kann eine wankelmütige Herrin sein, und es gab zunehmend lautstarke Proteste gegen den Mangel an Agilität, die langsamen Reaktionen und das aggressive Drängen der Nutzer auf das kommerzielle Paket.

Salz ist definitiv der Emporkömmling auf diesem Gebiet. Es hat eine wachsende und sehr aktive und sehr hilfreiche Community und Selbsthilfegruppe. Tom Hatch hat den Ruf, zu den kleinen Führungskräften zu gehören, die sich die Vorschläge und Kritik der Nutzer wirklich anhören. Bei seinen Nutzern und auf dem CM-Markt gewinnt Salt schnell einen Ruf als "CM-Tool, das beim ersten Mal richtig gemacht wird".

Produktleistung, Benutzerfreundlichkeit

Version 3.0 von Puppet, die im 2. Quartal 2013 eingeführt wurde, führte eine deutliche Geschwindigkeitssteigerung ein, hauptsächlich aufgrund einer neuen Orchestrierungs-Engine. Dies ermöglicht eine feinkörnigere Filterung, um Teilmengen von Systemen auszuwählen, die geändert oder direkt gesteuert werden sollen, sowie Batching-Funktionen, um eine schrittweise und nicht nur vollständige Einführung von Änderungen zu ermöglichen. Eine weitere große Änderung ist die bessere Unterstützung von Windows-Servern. Mehrere frühere Funktionen, wie z. B. die Live-Verwaltung (eine browserbasierte Benutzeroberfläche für die Knotenverwaltung in Echtzeit), funktionierten nicht mit Windows. Version 3.0 führt nun die Live-Verwaltung und Orchestrierung von Windows-Servern ein. Außerdem bedeutet die Dualität der Puppet-Benutzeroberfläche - sowohl GUI als auch CLI - dass viele neuere Benutzer und viele Systemadministratoren, die keine Entwickler sind, es einfacher finden, es zu erlernen als reine CLI-Tools. Einige bemerkenswerte Nachteile sind:

  • Die Ruby-Basis macht manifeste Ausführungsaufträge unvorhersehbar.
  • Neue Puppet-Versionen sind immer noch nicht so fehlerfrei, wie ihre Größe und Reife vermuten lässt.

Das SaltStack-Team hingegen gilt als sehr empfänglich für positives und negatives Feedback. Sie haben auch ein Händchen dafür, Probleme schnell zu lösen, wenn sie auftreten. Die Nutzerbasis ist lebendig und immer bereit zu helfen. Der Nachteil dabei ist, dass Salt noch relativ neu ist, also ob der gute Wille, die Open-Source-Kameradschaft, die Denkweise "Produkt zuerst Profit, dann Profit" und der Mangel an Egos und Politik bestehen bleiben werden, wird nur die Zeit zeigen. Allerdings leidet Salt auch unter seinen eigenen Problemen, von denen viele einfach auf seine Neuheit zurückzuführen sind. Wenn Sie beispielsweise eine Säule (einen zentral gelagerten Datensatz) in Salt durcheinander bringen, zeigen Ihre bereitgestellten Minions keine Säulendaten an und sagen Ihnen auch nicht, warum dieser Fehler aufgetreten ist. Salt hat auch ein GUI-Tool namens Halite in der Entwicklung, aber im November 2013 ist es noch ein Beta-Tool; Buggy und nackt. Im Moment handelt es sich also im Wesentlichen um ein reines CLI-Produkt, das die Python-Sprache unterstützt, die selbst seine leidenschaftlichen Kritiker zugeben, dass sie um Größenordnungen schneller ist als ein Ruby-basiertes Produkt wie Puppet. Der größte Vorteil von Salt ist seine Skalierbarkeit und Ausfallsicherheit. Sie können mehrere Master-Ebenen konfigurieren, was zu einer mehrstufigen Anordnung führt, die sowohl die Last verteilt als auch die Redundanz erhöht.

Schlussfolgerung

Letzten Endes also Puppet oder Salt? Sie können genauso gut auf einen Gebrauchtwagenmarkt gehen und fragen: "Welches Auto ist das Beste für mich? " Die Antwort ist, dass es von mehreren Faktoren abhängt, der wichtigste ist: "Was brauchst du? " Benötigen Sie ein ausgereiftes Tool für Systemadministratoren und nicht für Entwickler, haben Sie eine heterogene Umgebung mit mehreren Betriebssystemen? Dann ist Puppet vielleicht besser für Sie. Oder fühlen Sie sich von einem relativ neuen Produkt angezogen, das eine stabile Basis hat, aber noch einige Knicke ausbügeln muss? Eines ohne GUI und beschränkt auf ein homogenes Setup, aber mit einer sehr aktiven Benutzergemeinschaft, a la Linux in den frühen 1990er Jahren? Dann ist Salz vielleicht Ihre bevorzugte Wahl. Recherchieren Sie und wählen Sie das Tool aus, das Ihren Anforderungen entspricht. Aber denken Sie daran, dass Sie mit keinem von beiden wirklich etwas falsch machen können. Selbst ein Gebrauchtwagen, der die meisten, aber nicht alle Ihre Bedürfnisse erfüllt, ist immer noch besser, als überall zu Fuß gehen zu müssen.

Referenzen und weiterführende Literatur

https://www.javaworld.com/article/2078803/review--puppet-enterprise-3-0-pulls-more-strings.html

https://techwaredotnet.blogspot.com/2013/06/tech-warenet-saltstack-aims-to-simplify.html

https://mywushublog.com/2013/03/configuration-management-with-salt-stack/

Verwandte Artikel