Zaraz rozpocznę nowy projekt, który częściowo będzie wymagał wdrożenia wielu identycznych węzłów około trzech różnych klas:
- Węzły danych , w których będą uruchamiane fragmenty MongoDB.
- Węzły aplikacji , w których będą uruchamiane instancje aplikacji Ruby on Rails i starszej aplikacji ASP.NET MVC.
- Przetwarzanie węzłów , które będą uruchamiać zadania żądane przez węzły aplikacji.
Wszystkie węzły będą działały na instancjach Ubuntu 10.04, chociaż będą miały zainstalowane inne pakiety.
Znam trochę szefa kuchni z poprzednich projektów, choć nie uważam się za eksperta. Starając się zachować należytą staranność, badałem alternatywne możliwości. Mamy wielu pracowników, którzy są długoletnimi użytkownikami Puppet i zachęcili mnie do obejrzenia.
Mam jednak problem z oceną obu opcji. Szefowie kuchni i Marionetki mają wiele terminów związanych z tą samą domeną - pakiety , zasoby , atrybuty i tak dalej, i mają wspólną historię, która wynika z różnych podejść do tego samego problemu. W pewnym sensie są bardzo podobne. Ale wiele informacji porównawczych, które znalazłem, takich jak ten artykuł , jest trochę nieaktualnych.
Gdybyś dzisiaj rozpoczynał ten projekt, jakie pytania zadałbyś sobie, decydując, czy powinieneś użyć Chef czy Puppet do zarządzania konfiguracją? (Uwaga: nie chcę odpowiedzi na pytanie „Czy powinienem używać szefa kuchni czy marionetki?”)
źródło
Odpowiedzi:
Zarówno Marionetka, jak i Szef Kuchni mogą robić to, co chcesz. Najlepiej będzie zacząć robić to, co próbujesz, i zdecydować, które narzędzie Ci się najbardziej podoba. Myślę, że najważniejsze pytania, które musisz zadać, to:
Chcesz DSL? - Przepisy kulinarne są napisane w rubinie, marionetka ma DSL. To, czy DSL jest dobry, czy zły wybór, jest jedną z największych różnic między szefem kuchni a marionetką. Link, który opublikowałeś do porównania Bitfield Consulting, zawiera kilka dobrych komentarzy na ten temat, które powinieneś przeczytać, jeśli jeszcze tego nie zrobiłeś. Uważam również, że ten post na blogu jest przydatny, pamiętaj też o przeczytaniu komentarzy.
Czy znasz ruby? - Jeśli nie znasz rubinu, rozpoczęcie pracy z szefem kuchni może być trudniejsze lub wymagać większej inwestycji czasu, ponieważ musisz nauczyć się nowego języka. Puppet ma swój własny język, od którego łatwo zacząć. Począwszy od marionetki 2.6, manifesty można również pisać w rubinie .
Na Open Source Bridge w 2009 roku mieli panel autorów i przedstawicieli szefów kuchni, marionetek, bcfg2, cfengine i automateit, które można oglądać na bliptv, który ma 1,75 godziny dyskusji na temat narzędzi do zarządzania konfiguracją.
Opscode / Chef mówi również o różnicy między nim a marionetką w swoich FAQ .
Myślę, że brak znajomości właściwych pytań może wynikać z braku zbyt dużego doświadczenia w pracy z którymkolwiek z nich. Gdy zaczniesz z nich korzystać, zaczniesz dostrzegać różnice między nimi. Proponuję przyjść z rzeczywistymi problemami, które rozwiążesz z szefem kuchni lub marionetką, a następnie zacznij próbować je rozwiązać i zobacz, co lubisz w nich. Dzięki Opscode / Chef oferują one hostowane rozwiązanie , w którym możesz bezpłatnie skonfigurować 5 węzłów.
źródło
Pozwól, że powiem najpierw - jeśli nie używasz ani marionetki, ani szefa kuchni; nie ma złej odpowiedzi. Albo będzie o wiele lepszy niż to, co teraz robisz.
Jako lider zespołu wybrałem Puppet dla mojego zespołu. Gdybym był tylko zespołem, wybrałbym zamiast tego szefa kuchni. Dlatego:
Podczas gdy moja wiedza z pewnością dotyczy administracji systemów, moim doświadczeniem jest programowanie. Po to poszedłem do szkoły i nie jestem obcy pisaniu pełnych aplikacji (nie tylko skryptów). Chociaż nie znałem Ruby, chcę, a szef kuchni byłby świetną wymówką, aby nauczyć się obu.
Jednak mój zespół jest pełen administratorów systemów, z niewielkim lub żadnym doświadczeniem programistycznym, oprócz sporadycznego skryptu powłoki. Dla nich pisanie modułu marionetkowego przypomina pisanie pliku konfiguracyjnego. Jest deklaratywny, nie ma iteratorów i ogólnie jest bardziej przyjazny dla administratora.
Zespoły pełne programistów wykonujących czynności sysadmin preferują szefa kuchni. Ponieważ DSL Puppet jest deklaratywny, kolejność (nawet w poszczególnych plikach) nie ma znaczenia, a to frustruje wielu przyzwyczajonych do bardziej typowego języka programowania.
Słyszałem też wiele razy, że szef kuchni jest o wiele bardziej przyjazny dla chmury niż Puppet, ale Puppet skupił się na swoim produkcie Puppet Enterprise w ubiegłym roku. Nie mogę mówić z doświadczenia na temat zdolności chmurowych obu produktów.
Ze względu na powyższe cechy stereotyp (i często jest poprawny) mówi, że Puppet jest bardziej wszechobecny w przedsiębiorstwie na fizycznych urządzeniach, na których szef kuchni rządzi startupami w chmurze. Oczywiście są wyjątki, ale to, co widziałem, zdecydowanie popiera stereotyp.
Jeśli jest to jednoosobowy zespół, oceń oba i wybierz, który ci się podoba. Jeśli jednak, podobnie jak ja, masz zespół ludzi, upewnij się, że potrzeby swojego zespołu mają pierwszeństwo przed osobistymi preferencjami, to pozwoli Ci zaoszczędzić później, gdy spróbujesz uzyskać wpisowe.
źródło
Pełne ujawnienie, nie korzystamy z żadnego z nich, chociaż oceniliśmy je wewnętrznie, próbując zdecydować o systemie zarządzania konfiguracją. Więc nie uważaj mnie za eksperta od wszystkiego.
I tak dalej. Ale możesz bardzo łatwo odpowiedzieć na te pytania: skonfiguruj je! Przygotowanie próbki do pracy to kilka godzin czasu dla każdego produktu, a biorąc pod uwagę, że do czego użyjesz tego, prawdopodobnie będzie używany przez długi czas, czas jest tego wart. Nie tylko możesz poczuć, jak radzą sobie z konkretnymi platformami (tj. Opartymi na Debianie i apt, opartymi na RPM i mniam), ale na pewno pomoże ci poczuć aplikacje.
Należy również pamiętać, że wszystkie funkcje na świecie nie nadrobią trudnego interfejsu, a ponadto mogą ujawnić problemy specyficzne dla Twojej infrastruktury - tj. Co się stanie, jeśli pliki konfiguracyjne zostaną zaktualizowane w innej kolejności niż oczekiwano?
To moja rada; Chef i Puppet nie są wcale tacy trudni do skonfigurowania jednego serwera i jednego lub dwóch klientów i dają ci doświadczenie z pierwszej ręki na obu. Dodatkowo, jeśli zaczniesz go konfigurować i zdasz sobie sprawę z jego ogromnego bólu, będziesz już miał wiedzę przed przystąpieniem do niej.
źródło
Jeśli w twoim projekcie są ludzie, którzy mają już doświadczenie ze Puppet, sugeruję, abyś po prostu używał Puppet.
Szef kuchni i Marionetka są dość podobne, a oba projekty są równie wysokiej jakości. Jeśli masz dostęp do osób, które mają już doświadczenie Puppet, po prostu użyj Puppet.
źródło
Powyższe jest zdecydowanie dobrą wskazówką, lubię zadawać te ogólne pytania, ilekroć rozważam nową zależność od strony trzeciej.
Są to dobre wskaźniki ogólnego powodzenia projektu i mogą w pewnym stopniu przewidywać długość życia.
źródło
Spróbuj znaleźć ludzi, którzy używają Chef lub Puppet od ponad kilku miesięcy i zapytaj ich o swoje doświadczenia.
źródło
Dla mnie jest to ściśle związane z tradycją konkretnej społeczności. Historycznie szef kuchni był bliżej facetów RubyOnRails. Również duża popularność szefa kuchni w społeczności ROR, ponieważ Engineyard zbudował swoją infrastrukturę na szczycie szefa kuchni.
źródło