Gitlab CI vs Jenkins

Czy ktoś może mi powiedzieć jaka jest różnica między Jenkinsem a innym CI jak Gitlab-CI, drone.io nadchodzi z dystrybucją Gita. Z niektórych badań mogłem tylko wyciągnąć wniosek, że Gitlab community edition nie pozwala na dodanie Jenkinsa, ale Gitlab enterprise edition tak. Czy są jakieś inne znaczące różnice?

Author: Philip Kirkbride, 2016-05-25

2 answers

To jest moje doświadczenie:

W mojej pracy zarządzamy naszymi repozytoriami za pomocą gitlab ee i mamy uruchomiony serwer Jenkins (1.6).

W zasadzie robią to samo. Będą uruchamiać skrypty na obrazie serwera/dokera.

TL; DR;

    Jenkins jest łatwiejszy w użyciu/nauce, ale ma ryzyko, że stanie się piekłem wtyczek Jenkins ma GUI (może być preferowany, jeśli ma być dostępny / utrzymywany przez inne osoby)
  • Integracja z GitLab jest mniej niż z Gitlab-ci
  • Jenkins może być podzielony na repo

Większość serwerów CI jest dość prosta ( concourse.ci, gitlab-ci, circle-ci, travis-ci, drone.io, gocd i co jeszcze masz). Pozwalają one na wykonanie powłoki / bat z definicji pliku yaml. Jenkins jest znacznie bardziej elastyczny i ma interfejs użytkownika. Może to być zaletą lub wadą, w zależności od potrzeb.

Jenkins jest bardzo konfigurowalny ze względu na wszystkie dostępne wtyczki. Minusem tego jest to, że twój serwer CI może stać się spaghetti wtyczek.

Moim zdaniem łączenie i aranżowanie zadań w Jenkins jest znacznie prostsze (ze względu na interfejs użytkownika) niż poprzez Yaml (wywołanie poleceń curl). Poza tym Jenkins obsługuje wtyczki, które instalują pewne pliki binarne, gdy nie są dostępne na twoim serwerze(Nie wiem o tym dla innych).

Obecnie (jenkins2 obsługuje również więcej "WŁAŚCIWEGO ci" za pomocą wtyczki Jenkinsfile i pipline , która jest domyślna od Jenkins 2), ale wcześniej była mniej sprzężona z repozytorium niż np. gitlab ci.

Używanie plików yaml do definiowania potoku budowania (i w końcu uruchamianie czystej powłoki/bat) jest czystsze.

EDIT: zapomniałem tu wspomnieć o wtyczkach dostępnych dla Jenkins, które pozwalają wizualizować wszelkiego rodzaju raporty, takie jak wyniki testów, zasięg i innych analizatorów statycznych. Oczywiście zawsze możesz napisać lub użyć narzędzia, aby zrobić to za ciebie, ale jest to zdecydowanie plus dla Jenkinsa (szczególnie dla menedżerów, którzy mają tendencję do zbyt dużej wartości tych raportów) {]}

EDIT2: ostatnio coraz częściej pracuję z Gitlab-ci. W Gitlab robią naprawdę świetną robotę, sprawiając, że całe doświadczenie jest zabawne. Rozumiem, że ludzie używają Jenkinsa, ale gdy masz uruchomiony Gitlab i dostępny, naprawdę łatwo jest rozpocząć korzystanie z Gitlab-ci. Nie będzie niczego, co integruje się tak płynnie jak Gitlab-ci, mimo że włożyli sporo wysiłku w integracje innych firm.

  • ich dokumentacja powinna szybko zacząć
  • próg rozpoczęcia pracy jest bardzo niski
  • [[12]}konserwacja jest łatwa (bez wtyczek)
  • skalowanie biegaczy jest proste
  • CI w pełni częścią twojego repozytorium
  • Jenkins jobs / views can get messy

Niektóre korzyści w czasie writing

  • tylko wsparcie dla pojedynczego pliku, ale to będzie naprawione wkrótce
 85
Author: Rik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-27 11:55:32

Zgadzam się z większością notatek Rika, ale moja opinia o tym, co jest prostsze, jest odwrotna : GitLab okazuje się być świetnym narzędziem do pracy.

Większość mocy pochodzi z bycia samodzielnym i integrującym wszystko w tym samym produkcie na tej samej karcie przeglądarki: od przeglądarki repozytorium, tablicy wydań lub historii kompilacji po narzędzia wdrożeniowe i monitorowanie .

Używam go teraz do automatyzacji i testowania, jak aplikacja instaluje się na różnych dystrybucjach Linuksa i konfiguracja jest po prostu niesamowicie szybka (spróbuj otworzyć złożoną konfigurację Zadań Jenkinsa w Firefoksie i poczekaj, aż pojawi się nie responsywny skrypt, a jak lekka jest edycja .gitlab-ci.yml). Czas spędzony na konfigurowaniu / skalowaniu niewolników jest znacznie mniejszy dzięki binariom runner ; plus fakt, że w GitLab.com dostajesz całkiem przyzwoitych i darmowych współdzielonych biegaczy.

Jenkins czuje więcej instrukcji po kilka tygodni bycia potężnym użytkownikiem GitLab CI, np. duplikowanie zadań na gałąź, instalowanie wtyczek do wykonywania prostych rzeczy, takich jak przesyłanie SCP. Jedyny przypadek użycia, z którym się spotkałem, w którym brakuje mi tego, jak na dzień dzisiejszy, to sytuacja, w której zaangażowanych jest więcej niż jedno repozytorium; trzeba to jeszcze dobrze rozgryźć.

Btw, obecnie piszę serię na GitLab CI, aby zademonstrować, jak nie jest tak trudno skonfigurować z nim infrastrukturę repozytorium CI. Opublikowany w zeszłym tygodniu pierwszy utwór wprowadzający podstawy, wady i zalety oraz różnice z innymi narzędziami: https://solidgeargroup.com/gitlab_countinuous_integration_intro

 37
Author: Alfageme,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-08 13:02:37