CFEngine vs Puppet: Detaillierter Vergleich


Während die meisten Leute an Puppet und Chef denken, wenn sie an Konfigurationsmanagement-Tools denken, gibt es auch andere Alternativen. Ein bemerkenswertes Beispiel ist CFEngine. In diesem Beitrag vergleichen wir

Puppet zu diesem älteren, etablierteren Konfigurationsmanagement-Tool.

CFEngine ist tatsächlich deutlich älter als Puppet oder Chef und stammt aus dem Jahr 1993. Es wurde von Mark Burgess entwickelt und begann wie Puppet als Open-Source-Konfigurationsmanagement-Tool, nicht als Konfigurationsmanagement-Produkt für Unternehmen. Im Jahr 2008 wurde es nicht kommerzialisiert. CFEngine wurde als der Großvater der Konfigurationsmanagement-Tools bezeichnet.

Wie unterscheiden sich CFEngine und Puppet voneinander?

Komplexität und Leistungsfähigkeit

Während Puppet aufgrund seines modellgetriebenen Ansatzes und seiner relativ kleinen Lernkurve als "Ops-freundlicher" angepriesen wird, befindet sich CFEngine eher auf der "Dev-freundlichen" Seite des Spektrums.

Im Gegensatz zum von Ruby gebauten Puppet wurde CFEngine mit C entwickelt. Das bedeutet, dass CFEngine einen drastisch geringeren Speicherbedarf hat, schneller läuft und weitaus weniger Abhängigkeiten aufweist. Für Konfigurationsinformationen verwendet CFEngine eine eigene deklarative Sprache, um "Promises" oder Richtlinienanweisungen zu erstellen. Puppet hingegen verwendet eine Ruby-DSL, um seine Manifeste zu erstellen. Diejenigen, die etwas Ruby-Erfahrung haben, könnten sich mit Puppet auf vertrauterem Terrain wiederfinden.

Eine der Hauptbeschwerden in Bezug auf CFEngine ist, dass die Lernkurve sehr steil ist. Der modellgesteuerte Ansatz von Puppet bedeutet eine kleinere Lernkurve, was es zu einer bevorzugten Option für Systemadministratoren mit begrenzter Programmiererfahrung macht. Der modellgetriebene Ansatz übernimmt auch einen Großteil der Verantwortung für das Abhängigkeitsmanagement. Einige argumentieren, dass dies zu unerwartetem Verhalten führen kann und seine Grenzen hat.

Plattformen

Der Vorteil von Puppet besteht darin, bestimmte Nuancen zwischen den Betriebssystemen zu vermeiden, die bei der Verwendung von CFEngine auftreten. Im Allgemeinen bieten sowohl Puppet als auch CFEngine eine breite plattformübergreifende Unterstützung.

Gemeinschaft

Puppet und CFEngine haben beide starke Benutzergemeinschaften, da es sich bei beiden um ausgereifte Tools handelt. CFEngine verfügt über eine starke internationale Präsenz mit Hauptsitz in Oslo und mehreren Niederlassungen in den USA.

Die Website von CFEngine gibt an, dass sie derzeit mehr als 10 Millionen Knoten verwaltet. Puppet ist weniger genau darüber informiert, auf wie vielen Servern ihre Software läuft, aber sie haben eine beeindruckende Liste von Kunden.

Dokumentation

Sowohl Puppet als auch CFEngine haben frühe Fehltritte (oder mangelnden Fokus) an der Dokumentationsfront hinter sich gelassen. Beiden stehen Online-Referenzen zur Verfügung:

CFEngine Referenzdokument

Puppet-Referenzdokument

Wie auch immer Sie sich entscheiden, es ist immer ratsam, sich auf Referenzmaterial von Drittanbietern zu konzentrieren, um die Leistungsfähigkeit und die Nuancen jedes Tools vollständig zu würdigen.

CFEngine lernen

Automatisierung der Linux- und Unix-Systemadministration

Profi-Marionette

Puppet 2.7 Kochbuch

Auszeichnung

Aufgrund seiner Open-Source-Herkunft steht CFEngine (wie Puppet) natürlich eine kostenlose Open-Source-Version zur Verfügung. Die Enterprise Edition von Puppet bietet 10 kostenlose Knoten und berechnet dann 99 US-Dollar pro Knoten und Jahr (mit verfügbaren Mengenrabatten). Die Preisgestaltung von CFEngine nach den 25 kostenlosen Knoten ist nicht spezifiziert, Sie müssen sich an einen Vertriebsmitarbeiter wenden, um weitere Preisinformationen zu erhalten - sie bieten "Werbepreise" an, die auf den speziellen Bedürfnissen eines Kunden basieren.

Ein wesentlicher Vorteil des Preismodells von CFEngine scheint darin zu bestehen, dass die Preisgestaltung besser an die spezifischen Bedürfnisse eines Unternehmens angepasst werden kann. CFEngine bietet auch deutlich mehr kostenlose Knoten als Puppet.

Schlussfolgerung

Auf hohem Niveau, wenn Sie sich nicht vor Codierung und Komplexität schrecken, wenn es auf kleine Agenten-Fußabdrücke und Geschwindigkeit ankommt und Sie Kontrolle und Skalierbarkeit über Einfachheit stellen, dann könnte CFEngine das Richtige für Sie sein. Wenn das relativ reibungslosere Onboarding und der einfachere modellgesteuerte Ansatz attraktiver sind, dann ist Puppet möglicherweise das Richtige für Sie. Wie immer stehen beide Tools kostenlos zum Testen zur Verfügung, wenn Sie also die Zeit haben, wählen Sie eine repräsentative (wenn auch bescheidene) Konfiguration aus, um die Verwendung jedes Tools zu automatisieren und zu vergleichen und gegenüberzustellen. Nichts geht über praktische Erfahrung.

Verwandte Artikel