2016-06-21 13 views

Odpowiedz

13

Istnieje kilka powodów można wybrać Spinnaker nad Jenkins (2.0) Pipeline jako narzędzie CD:

  1. Spinaker zawiera interfejs WWW, który może faktycznie zasoby przepisu, i to w wielu środowiskach typu cloud. Aby utworzyć podstawowe zasoby, takie jak maszyny wirtualne, load balancery, klastry itp., Możesz to zrobić z tego samego interfejsu użytkownika, co narzędzie do dostarczania.
  2. Jeśli twoja architektura jest podobna do Netflix, Netflix wykorzystuje ją jako swoją całą platformę zarządzania chmurą, tak mało lub nie potrzebujesz rozwalonych narzędzi do obsługi dostaw i zarządzania infrastrukturą.

Z drugiej strony, istnieje wiele powodów, aby wybrać Jenkins Pipeline ponad Spinaker

  1. Spinaker nadal wymaga narzędzia kompilacji, więc może trzeba utrzymać Jenkins jakikolwiek. Jeśli więc Jenkins Pipeline staje się twoim narzędziem CD, może natywnie wykonywać zadania specyficzne dla executora.
  2. Spinnaker nie ma precyzyjnych kontroli dostępu (i ostatnio dodawano tylko uwierzytelnianie), podczas gdy Jenkins ma wiele wtyczek i natywnych konfiguracji w Pipeline, aby zaoferować kontrolę dostępu na poziomie zasobów.
  3. Wszystko odbywa się za pomocą jednego groovy skryptu, więc jest to prawdziwa konfiguracja-jako-kod. Pozwala na prosty przepływ/logikę/sterowanie, co nie jest możliwe (lub przynajmniej łatwe) w innych narzędziach CD.
  4. Obsługa wielu oddziałów potokowych, łatwe tworzenie/usuwanie/zmiana oddziałów
  5. Rozszerzona obsługa wtyczek dla Jenkins już. Na przykład używamy parametru AWS ECS Plugin, aby umożliwić dynamiczne węzły dokowania dla naszych potoków.
  6. Łatwe udostępnianie/współpraca nad kodem w kierunku potoków. Na pewno mają wielokrotnego użytku funkcje, które chcesz wykorzystać w wielu gazociągów, Jenkins ułatwia to z narzędzi takich jak Remote Loader Plugin
  7. dużym poparciem społeczności

My ostatecznie wybrał Jenkins 2.0 Pipeline jako naszego narzędzia CD nad Spinaker i kilku innych .

+0

Thanx Neil bardzo dobrze wyjaśniony :) –

45

Pracuję intensywnie nad integracją Jenkinsa w Spinnakerze i funkcjami potoku w Netflix.

Spinnaker nigdy nie był przeznaczony do kompleksowego narzędzia do budowania. Są rzeczy, które Jenkins poradzi sobie lepiej w zarządzaniu SCM, testach, budowaniu pakietów, wtyczkach do gazet, itp., Itp.

Rzeczą, którą Spinaker próbuje zrobić dobrze, jest wzięcie oprogramowania, które użytkownik opublikował (pakiet debian, obraz dokowany lub możliwy do zainstalowania plik JAR) i uruchamia go w przewidywalnym cyklu wdrażania oprogramowania, który można w dużym stopniu dostosować. Innymi słowy, każda funkcja Spinnakera została zbudowana, aby ułatwić tworzenie wysoce dostępnego, wielodostępowego, opartego na wielu chmurach artefaktu.

Rurociągi spinakera mają widok centralny. Większość naszych etapów potokowych i kontrolek API dotyczy tworzenia nowych grup serwerów i zmiany istniejących grup serwerów w sposób przewidywalny i przyjazny dla użytkownika.W przypadku wątpliwości optymalizujemy to.

Mamy silniejsze opinie na temat tego, jak wygląda wdrożenie chmury, a często będziemy mieć interfejs użytkownika "wskaż i kliknij", gdy mamy do czynienia z zadaniami wdrażania w chmurze w naszych rurociągach CD --- znajdź obraz w klastrze x, wyłącz ten klaster, zmienić rozmiar grupy serwerów, zmniejszyć ten klaster, sprawić, by klastry przejęły ruch, zniszczyć stary klaster, itp.

Funkcja pipeline Jenkins nie była dostępna dla nas, gdy zaczęliśmy pisać Spinnaker 2+ lat temu, więc stworzyliśmy funkcjonalność potrzebowaliśmy. Wsparcie Jenkinsa opracowaliśmy w oparciu o nasze potrzeby, pomagając innym zespołom w Netflix zbudować tysiące wewnętrznych instalacji. Ponieważ Netflix opiera się na Jenkinsach w znacznym stopniu na budowaniu i testowaniu, przejście między zadaniami Jenkinsa a etapami Spinnakera jest całkiem płynne.

W Netflix są zespoły, które nie używają potoku Spinnaker i zamiast tego używają API Spinnaker w swoich zadaniach Jenkins jako skrótu do wdrożenia w AWS. Jeśli korzystasz z potoków Jenkins lub podobnych narzędzi CD, Spinnaker sprawia, że ​​faza wdrażania jest bardzo elastyczna.

Mamy również zespoły, które lubią sposób, w jaki Spinnaker rozkłada prace Jenkinsa na zadania atomowe, wielokrotnego użytku w ramach jednej aplikacji. Zespoły, które nie używają chmury, używają Spinnakera, ponieważ nasze potoki lepiej odpowiadają ich potrzebom niż świat Jenkinsa.

Rurociągi Jenkins są całkiem zadbane. Nie sądzę, aby Spinnaker kiedykolwiek w pełni zastąpił Jenkinsa i milion rzeczy, które robi. Naszym celem jest uczynienie kroku "wdrażanie w chmurze" prostszym i bardziej rozszerzalnym. Możliwość wyboru jednego z drugim, łącznie lub wcale, zależy od Ciebie.

0

Używamy Mavena do pakowania całej bazy kodu wraz z konfiguracjami, właściwościami (tj. Wszystkim, co jest wersjonowane w GitHub) i tworzeniem z niego RPM. Po zakończeniu tego przepływu uruchamiamy potoki Spinnakera w AWS lub dowolnej innej chmurze, aby zainicjować część CD.

Spinnaker jest wyjątkowy w tym zakresie CD.

  1. Promocja kodu: te same obroty, które będziemy promować, zapewniają, że nasz kod źródłowy/env są niezmienne.

  2. Możemy kontrolować zmianę rozmiaru instancji z samego

  3. Rolka konsoli Spinaker z powrotem to tylko jedno kliknięcie.

  4. Wszystkie nowoczesne koncepcje wdrażania, takie jak niebiesko-zielony/czerwono-czarny, kanaryjski, góralskie itp., Są tutaj dostępne tutaj.

  5. kłody Pipeline daje bardzo wnikliwe pogląd, zarówno wysoki poziom i niski poziom

  6. różnorodnego wdrożeń regionu (DR strategiczny)

jeśli ktoś potrzebuje pomocy (bezpłatną pomoc!) Na temat instalacji Spinnaker w RHEL, możesz dać mi znać.

Ale muszę powiedzieć, że używamy Spinnakera tylko do wdrożeń w chmurze centrycznej.