W jaki sposób Juju „współistnieje” z szefem kuchni, posuwając proces automatyzacji „o krok dalej”?

15

Z tego postu jasno wynika, że Juju siedzi na innej warstwie niż Serwer Szefa Kuchni. Juju siedzi na warstwie aranżacyjnej lub usługowej , a szef kuchni bardziej na indywidualnym serwerze lub warstwie konfiguracyjnej .

Na jednej z głównych stron Juju firmy Canonical stwierdza, że ​​Juju ma „współistnieć” z narzędziami takimi jak Szef Kuchni i Lalek, idąc dalej „krok dalej”. Od kilku tygodni przeszukuję Internet na ten temat i nie mogę znaleźć dobrego wyjaśnienia, w jaki sposób narzędzie takie jak Szef Kuchni będzie współistnieć z Juju.

Tak więc, aby rozbić nadrzędne pytanie w tytule: (szczególne zainteresowanie Juju współpracującym z serwerem szefa kuchni)

  • Jaki jest przykład uroku „napisanego w szefie kuchni”? Czy to po prostu urok napisany bash, który następnie wywołuje chef-solopolecenie? Jeśli tak, czy urok może wywołać chef-clientpolecenie współpracy z serwerem szefa kuchni?
  • Gdzie nakłada się Juju i szef kuchni? Na przykład urok apache2 ma swój config-changedhaczyk, w którym wprowadza zmiany konfiguracji, które w świecie szefów kuchni miałyby miejsce w przepisie poprzez zastosowanie pliku szablonu. Gdyby urok Juju współpracował z książką kucharską szefa kuchni przy wdrażaniu usługi apache2 (klaster), wydawałoby się, że trzeba napisać urok „apache2-chef”, aby można było rozdzielić zadania. W takim przypadku urok apache2 w Charm Store byłby mniej niż pomocny.
  • Jeśli masz role szefa kuchni zastosowane do węzłów (jednostek usługowych), które są wdrażane / zarządzane przez Juju, a Twój sysadmin decyduje się zmienić reguły zapory dla określonej roli serwera i czy robi to w roli szefa, czy Juju kiedykolwiek nadpisze te zmiany?
  • Mówiąc prościej, czy Juju może być serwerem Chef Server, takim jak Ironfan ?

I zobaczyć Chef Server jako how natomiast Juju może zrobić how , ale także przynosi co do stołu. Oznacza to, że można zapytać o rzeczywisty stan usług i maszyn i na nie zareagować. Nie możesz tego zrobić w Chef Server. Moim celem jest przeniesienie świadomości i możliwości organizacji usług Juju do infrastruktury zarządzanej przez Chef Server.

Wygląda na to, że należałoby napisać cały zestaw uroków, w którym pominięto wszystkie zadania / informacje konfigurowane przez szefa kuchni.

Bardzo chciałbym usłyszeć ważenia od kogoś z Canonical (jak Jorge Castro) i Opscode (jak A. Jacob lub J. Timberman).

Ian D. Rossi
źródło

Odpowiedzi:

13

niesamowite pytania!

tl; dr

Chciałbym podzielić twoje pytanie na kilka komentarzy ... po pierwsze, oto kilka ogólnych podejść do integracji szefa kuchni i juju:

  • haki charms mogą wykorzystywać istniejące przepisy kulinarne, które działają solo na jednostkach serwisowych (zalecane)

  • Jednostki usługowe juju rejestrują się na istniejącym serwerze szefa kuchni, korzystając z podległej usługi szefa kuchni

Te pomysły nie zostały jeszcze wdrożone / przetestowane dla szefa kuchni, ale istnieją ekwiwalenty marionetek.

... nie tak krótka odpowiedź

Oto trochę więcej informacji o dwóch podejściach do integracji szefa kuchni i juju:

Juju jako top-dog

Tutaj juju prowadzi program. Największą wartością, jaką zapewnia juju, jest koordynacja zdarzeń podczas rozproszonego zarządzania konfiguracją ... stąd też moniker „Service Orchestration”. Uroki Juju składają się z haków, które są wzywane przez Juju „we właściwym czasie” podczas koordynowania zarządzania usługami. Implementacja tych haków jest dość otwarta. Są to skrypty powłoki, kod źródłowy, manifesty lalek lub ... przepisy kulinarne.

Juju dzieli bity dowolnej konfiguracji usługi na:

  • „instalacja” .. bity specyficzne dla instalacji określonej usługi w węźle

  • „relacja” .. bity konfiguracji potrzebne do powiązania tej usługi z jakąś inną usługą

Kluczem do wykorzystania przepisów kulinarnych jako implementacji haczyków jest właśnie to ... musisz upewnić się, że przepisy, których używasz, szanują ten podział problemów. W przeciwnym razie nic nie stoi na przeszkodzie, aby korzystać z gotowych książek kucharskich. Możesz wykorzystać istniejące przepisy, które poświęciłeś na opracowanie / czas ... Musisz tylko upewnić się, że możesz wywoływać elementy specyficzne dla relacji oddzielnie od elementów specyficznych dla instalacji.

Potrzebujemy kilku przykładów tego, ale myślę, że będzie popularny b / c szef kuchni ma świetne dsl, świetne narzędzie do szablonowania i jest o wiele przyjemniejszy w użyciu niż bash podczas pisania złożonej konfiguracji. W przypadku prostej konfiguracji przepisy kulinarne są trochę przesadzone, więc ta metoda integracji jest prawie najlepsza z obu światów ... i ma poważne kroki naprzód.

Szef kuchni jako top-dog

Chodzi tutaj o zintegrowanie usług juju z istniejącą infrastrukturą zarządzaną przez serwer-szef kuchni. Aby to zrobić, musisz napisać urok podwładnego szefa kuchni. Ta podrzędna usługa byłaby dołączona do podstawowych usług juju i skutecznie rejestrowałaby te usługi jako węzły (w szczególności role) na serwerze szefa kuchni. Subskrybcje mogą być dołączane podczas uruchamiania usługi juju lub w dowolnym momencie później w całym cyklu życia każdej usługi.

Myślę, że byłoby to bardzo podobne do sub-kukiełkowego węzła. Wszystkie niezbędne klucze, role itp. Zostaną określone poprzez config do podrzędnego uroku węzła szefa kuchni. Zacznę tam Bardziej wyrafinowanym podejściem byłoby, aby podwodny węzeł szefa kuchni przesłuchiwał zarówno podstawową usługę, do której jest przyłączony, jak i serwer szefa kuchni, aby dynamicznie określać role, ale byłoby to o wiele trudniejsze niż tylko określenie ich w konfiguracji dla podrzędnego.

Opinie

Zdecydowanie poleciłbym metodę 1 powyżej, jeśli to możliwe. Posiadanie warstwy koordynacyjnej na wierzchu narzędzi konfiguracyjnych prawdopodobnie będzie działać dobrze w perspektywie długoterminowej. Nie trzeba dodawać, że rzeczywiste infrastruktury mogą być kombinacją lub odmianą obu podejść na pewien czas ... szczególnie podczas migracji. Planowana koegzystencja przy użyciu metody 2 prawdopodobnie działałaby tylko, gdyby komponenty zarządzane przez oba narzędzia były do ​​siebie nieco prostopadłe. Nie jestem pewien, jak dokładnie by to wyglądało. Być może juju i szef kuchni zarządzają oddzielnymi relatywnie oddzielonymi usługami? Podejrzewam, że może dobrze działać, aby pozwolić juju zarządzać podstawowymi usługami i pozwolić szefowi kuchni zarządzać większą liczbą aspektów infrastruktury. Dunno. To trochę dłuższa dyskusja :)

Uwaga dodatkowa ... możesz także używać juju do zarządzania samym serwerem szefa kuchni ... nawet dużych, złożonych, wielopoziomowych instalacji szefa kuchni. Ostatnio nie patrzyłem na urok szefa kuchni-serwera, ale jeśli obecnie nie obsługuje poziomów i rozdzielania usług, na pewno da się to zrobić.

Chciałbym zobaczyć więcej przykładów obu rodzajów integracji szefów kuchni wspomnianych powyżej ... to już od dłuższego czasu na mojej liście życzeń / rzeczy do zrobienia, ale jeszcze nie było wystarczająco wysokiego priorytetu, aby to zrobić ... proszę o pomoc, jeśli jesteś zainteresowany!

ok, to przyzwoity kawałek wędrówki:) ... zacznijmy od tego, możemy przejść do bardziej szczegółowych informacji w kolejnych blokach komentarzy.

m_3
źródło
świetne rzeczy tutaj. „Podejrzewam, że może dobrze działać, aby pozwolić juju zarządzać głównymi usługami i pozwolić szefowi kuchni zarządzać większą liczbą aspektów infrastruktury” To mnie naprawdę interesuje, ponieważ podzielamy to samo podejrzenie. Jak powiedziałeś, DSL i szablony szefa kuchni są świetne do konfiguracji. Istnieją jednak inne aspekty Chef Server (torby danych), które trudno byłoby odrzucić, w pierwszej metodzie. Juju, będąc na poziomie usług, powinien być najlepszym psem, ale uważam, że powinien pozwolić Chefowi robić to, co robi najlepiej w modelu Chef Server. Musi działać zarówno dla programistów, jak i administratorów. Ale być może nie ma potrzeby Chef Server.
Ian D. Rossi