CFEngine kontra marionetka: szczegółowe porównanie
Podczas gdy większość ludzi myśli o Puppet i Chef, gdy myślą o narzędziach do zarządzania konfiguracją, istnieją inne alternatywy. Jednym z godnych uwagi przykładów jest CFEngine. W tym poście porównamy
Marionetka w tym starszym, bardziej uznanym narzędziu do zarządzania konfiguracją.
CFEngine jest w rzeczywistości znacznie starszy niż Puppet czy Chef, a jego początki sięgają 1993 roku. Został stworzony przez Marka Burgessa i, podobnie jak Puppet, zaczynał jako narzędzie do zarządzania konfiguracją typu open source, a nie produkt do zarządzania konfiguracją w przedsiębiorstwie. Nie został skomercjalizowany w 2008 roku. CFEngine został opisany jako dziadek narzędzi do zarządzania konfiguracją.
Czym więc różnią się od siebie CFEngine i Puppet?
Złożoność i moc
Podczas gdy Puppet jest zapowiadany jako bardziej przyjazny dla "Ops", ze względu na podejście oparte na modelu i stosunkowo małą krzywą uczenia się, CFEngine znajduje się bardziej po "przyjaznej dla deweloperów" stronie spektrum.
W przeciwieństwie do Puppet zbudowanego w Ruby, CFEngine został opracowany przy użyciu C. Oznacza to, że CFEngine ma znacznie mniejsze zużycie pamięci, działa szybciej i ma znacznie mniej zależności. Aby uzyskać informacje o konfiguracji, CFEngine używa własnego języka deklaratywnego do tworzenia "obietnic" lub instrukcji zasad. Z drugiej strony Puppet używa Ruby DSL do tworzenia swoich manifestów. Tak więc ci, którzy mają pewne doświadczenie w Ruby, mogą znaleźć się na bardziej zaznajomionym terytorium z Puppet.
Jednym z głównych zarzutów dotyczących CFEngine jest to, że krzywa uczenia się jest bardzo stroma. Podejście oparte na modelu Puppet oznacza mniejszą krzywą uczenia się, co sprawia, że jest to preferowana opcja dla administratorów systemów z ograniczonym doświadczeniem w kodowaniu. Podejście oparte na modelu bierze również na siebie dużą część odpowiedzialności za zarządzanie zależnościami. Niektórzy twierdzą jednak, że może to skutkować nieoczekiwanym zachowaniem i ma swoje granice.
Platformy
Przewagą Puppet jest tutaj unikanie specyficznych niuansów w różnych systemach operacyjnych, które istnieją podczas korzystania z CFEngine. Ogólnie rzecz biorąc, zarówno Puppet, jak i CFEngine oferują szeroką obsługę wielu platform.
Społeczność
Zarówno Puppet, jak i CFEngine mają silne społeczności użytkowników, ponieważ oba są dojrzałymi narzędziami. CFEngine ma silną pozycję na arenie międzynarodowej, z siedzibą w Oslo, z kilkoma biurami w USA.
Witryna CFEngine twierdzi, że obecnie zarządza ponad 10 milionami węzłów. Puppet jest mniej konkretny co do tego, na ilu dokładnie serwerach działa ich oprogramowanie, ale ma imponującą listę klientów.
Dokumentacja
Zarówno Puppet, jak i CFEngine przeszły przez wczesne błędy (lub brak skupienia) na froncie dokumentacji. Oba mają dostępne referencje online:
Dokumentacja referencyjna CFEngine
Dokument referencyjny Puppet
Niezależnie od wyboru, zawsze mądrze jest zapoznać się z materiałami referencyjnymi innych firm, aby w pełni docenić moc i niuanse każdego narzędzia.
Nauka CFEngine
Automatyzacja administrowania systemami Linux i Unix
Profesjonalna marionetka
Lalka 2.7 Książka kucharska
Ceny
Oczywiście, ze względu na swoje pochodzenie z open source, CFEngine (podobnie jak Puppet) ma dostępną darmową wersję open-source. Edycja Enterprise firmy Puppet zapewnia 10 bezpłatnych węzłów, a następnie pobiera opłatę w wysokości 99 USD za węzeł rocznie (z dostępnymi rabatami zbiorczymi). Ceny CFEngine po 25 wolnych węzłach są nieokreślone, wymagają one skontaktowania się z przedstawicielem handlowym w celu uzyskania dodatkowych informacji o cenach - oferują "ceny promocyjne" w oparciu o konkretne potrzeby klienta.
Jedną z kluczowych zalet modelu cenowego CFEngine wydaje się być to, że jego ceny są bardziej dostosowane do konkretnych potrzeb firmy. CFEngine oferuje również znacznie więcej darmowych węzłów niż Puppet.
Konkluzja
Na wysokim poziomie, jeśli kodowanie i złożoność Cię nie przerażają, jeśli liczą się małe rozmiary agentów i szybkość, a Ty przejmiesz kontrolę i skalowanie zamiast prostoty, to CFEngine może być dla Ciebie. Jeśli stosunkowo płynniejszy onboarding i prostsze podejście oparte na modelu jest bardziej atrakcyjne, Puppet może być dla Ciebie. Jak zawsze, oba narzędzia są dostępne do wypróbowania bez żadnych kosztów, więc jeśli masz czas, wybierz reprezentatywną (jeśli skromną) konfigurację do zautomatyzowania przy użyciu każdego z nich oraz porównania i kontrastu. Nic nie przebije praktycznego doświadczenia.