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
Antworten:
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.
quelle
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.
quelle
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.
quelle
Hier ist eine Meinung: Wir haben alle in unserer Firma ausprobiert und bevorzugen Marionetten. Einfach weil es einfach zu bedienen ist.
quelle
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
quelle
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).
quelle