Puppet vs Chef, Pro und Contra von Anwendern und Use Cases [geschlossen]

56

Ich habe bereits gegoogelt und den Artikel "Marionette oder Koch, das ist die Frage" gelesen .

Ich interessiere mich für Anwendungsfälle, für Real-World-Implementierungen, bei denen die einen oder anderen aufgrund realer Probleme ausgewählt wurden.

Ich interessiere mich besonders für die Integration von Schusterproblemen (ich weiß, dass Marionetten ein weit verbreiteter Ansatz in dieser Richtung sind). Wie jemand Erfahrung in der Integration von Schuster und Koch ?

Danke im Voraus

drAlberT
quelle
bezogen werden : serverfault.com/questions/42565/...
warren
1
@ Warren: Der Beitrag, den Sie skizzieren, ist nicht verwandt. Ich bitte um einen direkten Vergleich zwischen diesen Tools, nicht nur um eine Erwähnung des Chefs, wie er in der Post gemacht wurde.
drAlberT
Um die Frage zu Cobbler + Chef zu beantworten, habe ich eine Filiale in meiner Cobbler-Kasse, um JSON zur Verwendung durch Chef zurückzugeben, aber ich habe kein System, um es zu testen. Lassen Sie mich wissen, wenn Sie testen möchten.
jtimberman
Natürlich, aber ich kann jetzt nicht ... Ich werde meine Tests in einigen Monaten fortsetzen, etwas anderes hat jetzt Priorität
drAlberT
Zum Abschluss der Frage. Ich habe nach "echten Problemen", Schusterintegration, Anwendungsfällen gefragt ... nicht nur nach "Meinungen", sondern nach motivierten Entscheidungen. Ich bin gegen die Schließung, wie Sie argumentieren können :)
drAlberT

Antworten:

63

Um ehrlich zu sein, denke ich, dass dies auf einen einfachen Gesichtspunkt zurückzuführen ist: Chefkoch scheint eher eine zwingende, programmatische Lösung zu sein. Die Verwendung von Ruby als Sprache lässt mich sofort hoffen, dass jemand es auf Python portiert hat, so wie es der weltweite Weg mit allem ist Rubys Ideen.

Das ist jedoch nicht das, was Sie für diese Art von Dingen wollen. Sie möchten mit der Leere sprechen, in der sich das System befinden wird, und erklären:

"Nach der Beschwörung von Port 80 aus dem Norden hat der Dämon den Namen Nginx. Seine Aufgabe ist es, zu dienen."

"Ein Benutzer sollte existieren, sein Name sollte chiggsy sein und er sollte einer der Mächtigen in der Radgruppe sein."

"Erhebe eine Feuerwand, dünn an den Stellen 80,443,8080"

Und so weiter, obwohl vielleicht in der Sprache weniger blumig.

Puppet unterstützt dieses Paradigma besser IMO. Ich hätte beide verwendet, ich hatte keine Präferenz, aber wenn es darauf ankam, passte deklarativ besser zu mir.

Marionette.

chiggsy
quelle
2
Sie könnten in Zukunft sogar noch einen Schritt weiter gehen und eine Linux-Distribution mit deklarativer Konfiguration verwenden: nixos.org/nixos
iElectric 16.10.13
19

Ich habe hier einen detaillierten Vergleich von Chef vs Puppet geschrieben: Puppet vs Chef: 10 Gründe, warum Puppet gewinnt . Obwohl es keine Anwendungsfälle enthält, hoffe ich, dass es einige nützliche Ausgangspunkte für Leute bietet, die sich fragen, welches Tool sie für ihre Infrastrukturautomatisierung auswählen sollen.

John Arundel
quelle
3
Sehr gute Arbeit. Auch wenn viele der Punkte, die Sie geschrieben haben, an die einfache Tatsache gebunden sind, dass Marionette "älter" und viel mehr "unterstützt" ist. Ok, es ist eine Tatsache ... aber ich denke, dass keiner jemals Postfix verwendet hätte, da sendmail bereits ein großes Publikum hatte ... Ich wiederhole, gute Arbeit, ich werde es in Betracht ziehen
Dr.AlberT
AlberT - ja, Puppet gibt es schon länger als Chefkoch und hat daher viele der wichtigsten Vorteile: Codereife, Entwickler-Basis, installierte Basis, Mindshare - diese werden im Artikel ausdrücklich anerkannt. Ist Puppet Chef für Linux-Automatisierungsaufgaben technisch überlegen? Wahrscheinlich nicht. Ich empfehle immer noch Puppet versus Chef, weil es das marktführende Konfigurationsmanagement-Tool ist.
John Arundel
2
Der Blogartikel ist sehr veraltet, seit 2011 unterstützt Puppet nun reine Rubinmodule und hat auch viel mehr "Verben" als die vom Autor bewertete Version.
Robbyt
14

Entschuldigung für die Ausführlichkeit. Verwenden Sie das Tool, mit dem Sie Ihre Arbeit ganz einfach erledigen können. Das ist der Punkt der Automatisierung, oder?

Geschichte: Ich habe in früheren Auftritten Marionetten benutzt und letzten Monat habe ich ungefähr eine Woche damit verbracht, mich an den Koch zu gewöhnen, um zu sehen, ob ich bei meinem neuen Auftritt den Wechsel machen würde.

Ich bin nicht gesprungen.

Jargon: Ein unglückliches Problem bei beiden Systemen ist die Jargonüberladung. (Rezepte, Vorlagen, Knoten, Rollen, Attribute, Anbieter) Es geht weiter und weiter. Ich fand, dass Chefkoch noch einen Schritt weiter gegangen war. (Messer, Schaf usw.)

Code Maturity: Es genügt zu sagen, dass ich Chefkoch etwas zu roh fand. Es fühlt sich sehr ähnlich an, wie sich Marionette vor 3-4 Jahren in den Zeiträumen .21 / .22 anfühlte. Es ist viel los.

Um nicht zu sagen, dass das auch bei Puppet nicht passiert ist. (Ich habe viele großartige Funktionen in Puppet wiederentdeckt, die erst in den letzten Jahren aufgetaucht sind. - Regex Matching!)

Ruby: Ich mochte die Rubinüberladung in Chef nicht. (Sie brauchen Edelstein und Rechen, bevor Sie überhaupt anfangen können). Sie können Rubin verwenden, um komplexe Probleme in Puppet a'la Facter zu lösen, aber Sie müssen nicht, wenn Sie nicht wollen.

Komplexität: Ich mochte es nicht, dass sich die Benutzeroberfläche auf den Chef konzentriert. Mir ist klar, dass es hübsch ist und die Puppe ein Webinterface als Add-On in Arbeit hat, aber ich denke, das sollte mehr entkoppelt sein.

Chefkoch hat eine viel komplexere Architektur. Es könnte besser skaliert werden, aber es gibt viele potenzielle Fehlerquellen.
http://wiki.opscode.com/display/chef/Architecture

Chefkoch benötigt neben dem API-Server und dem Webinterface auch couchdb, rabbitmq und solr.

Ich möchte nur eine einfache Client / Server-Schnittstelle, auf der kein MVC-Framework und dahinter ein komplexer Datenspeicher installiert werden müssen.

Puppet ist in dieser Abteilung viel einfacher. (um nicht zu sagen, es gibt nicht viele Add-Ons, um es unordentlicher zu machen)

Arbeit erledigen: Am Ende ging ich mit dem, was ich wusste. Nachdem ich eine Woche mit Seitenhacken verbracht hatte und kaum in der Lage war, mit dem Chef Grundlagen zu schaffen, konnte ich in wenigen Stunden wieder zur Marionette zurückkehren und meine Grundbedürfnisse ausräumen. (Paketverwaltung, Benutzerverwaltung, Konfigurationsdateivorlagen)

Vorsichtsmaßnahme zu Modulen: Puppet verwendet seit kurzem "Module", die von Dritten beigesteuert werden. Ich habe diese nicht benutzt und eine große Auswahl in ihrer Qualität gefunden. Werfen Sie einen Blick unter die Decke und sehen Sie, was und wie sie funktionieren, bevor Sie sich mit diesen befassen.

Joel K
quelle
5

Hier ist eine Meinung: Wir haben alle in unserer Firma ausprobiert und bevorzugen Marionetten. Einfach weil es einfach zu bedienen ist.

Riaan
quelle
Haben Sie ein Front-End zur Überwachung der Ausführung von Puppets verwendet?
SyRenity
1
@syrenity Wir verwenden einen benutzerdefinierten Nagios-Check, der die Zeit von $ puppetvardir / state / state.yaml überprüft, die nur bei einem erfolgreichen Lauf aktualisiert wird.
Rodjek
2
Ist der Koch stattdessen so schwierig? Warum? Auf welche praktischen Schwierigkeiten stößt der Küchenchef bei der Umgehung der Marionette?
drAlberT
@NotNow: Nett, ich hatte mich sicher entschieden, ob es die Cobbler-Integration als Alternative zu seinem eigenen Bereitstellungssystem unterstützen würde ...
drAlberT
1

Ich selbst habe Fälle gesehen, in denen die Verwaltung von 1000 Hosts mit verschiedenen Konfigurationen mit Puppet viel einfacher ist. Infact-Unternehmen wie Google verwenden Puppet für ihre Bereitstellung.

Die Hauptdesignarchitektur von Puppet ist so, dass es viel besser funktioniert als andere, wenn Sie es richtig konfigurieren. Wenn Sie zum Beispiel Ihre benutzerdefinierten Fakten für Ihre benutzerdefinierten Konfigurationen usw. hinzufügen, können die folgenden Links einige Informationen enthalten: http://slashroot.in/puppet-tutorial-installing-puppet-master-and-puppet-agent

http://slashroot.in/puppet-tutorial-how-does-puppet-work

sarath
quelle
0

Dies hat sich möglicherweise geändert, seit ich es das letzte Mal ausprobiert habe, aber als ich es bei RHEL versuchte, gab es keine eindeutige Möglichkeit, es zu installieren. Jemand hatte ein Yum-Repo erstellt, das alle benötigten Pakete enthielt, aber am Ende wurden 200 ungerade Pakete installiert. Puppet hingegen hat eine einzige Drehzahl (und ein paar Abhängigkeiten).

Nudeln
quelle