2016-05-25 38 views
64

Qualcuno può, per favore, farmi sapere qual è la differenza tra Jenkins e altri CI come Gitlab-CI, drone.io in arrivo con la distribuzione GIT. In alcune ricerche, ho potuto solo constatare che l'edizione della community di Gitlab non consente l'aggiunta di Jenkins ma l'edizione enterprise di Gitlab. C'è qualche altra differenza significativa.Gitlab CI vs Jenkins

+2

GitLab ha ora messo insieme un confronto tra GitLab CI e Jenkins: https://about.gitlab.com/comparison/gitlab -vs-jenkins.html – bbodenmiller

risposta

68

Questa è la mia esperienza:

Al mio lavoro che gestire i nostri repository con gitlab ee e abbiamo un server di Jenkins (1.6) in esecuzione.

In base, fanno praticamente lo stesso. Eseguiranno alcuni script su un'immagine server/finestra mobile.

TL; DR;

  • Jenkins è più facile da usare/imparare, ma ha il rischio di diventare un inferno plug
  • Jenkins ha una GUI (questo può essere preferito se deve essere accessibile/mantenibile da altre persone)
  • L'integrazione con GitLab è inferiore con Gitlab-ci
  • Jenkins può essere liberato il tuo repo
  • server

La maggior parte CI sono piuttosto semplice (concourse.ci, gitlab-ci, circle-ci, travis-ci, drone.io, gocd e cos'altro hai. Permettono di eseguire shell/bat da una definizione di file yaml. Jenkins è molto più collegabile e viene fornito con un'interfaccia utente. Questo può essere un vantaggio o uno svantaggio, a seconda delle esigenze.

Jenkins è molto configurabile a causa di tutti i plugin disponibili. Lo svantaggio di questo è che il tuo server CI può diventare uno spaghetto di plugin.

A mio parere concatenare e orchestrare i lavori in Jenkins è molto più semplice (a causa dell'interfaccia utente) rispetto a via Yaml (che chiama i comandi di arricciatura). Inoltre, Jenkins supporta i plug-in che installeranno determinati binari quando non sono disponibili sul tuo server (non ne sai niente per gli altri).

Oggi (jenkins2 supporta anche più "corretta ci" con la Jenkinsfile e il plug pipline che viene predefinito come da Jenkins 2), ma utilizzati per essere meno accoppiato al repository che cioè gitlab ci.

L'utilizzo di file yaml per definire la pipeline di build (e alla fine l'esecuzione di pura shell/bat) è più pulito.

MODIFICA: ciò che ho dimenticato di menzionare qui sono i plug-in disponibili per Jenkins che consentono di visualizzare tutti i tipi di report, come risultati dei test, copertura e altri analizzatori statici. Naturalmente si può sempre scrivere o utilizzare uno strumento per fare questo per voi, ma è sicuramente un plus per Jenkins (in particolare per i manager che tendono a valorizzare questi rapporti troppo)

EDIT2: Ultimamente ho lavorato sempre più con Gitlab-ci. A Gitlab stanno facendo un ottimo lavoro, rendendo l'intera esperienza divertente. Capisco che la gente usi Jenkins, ma quando hai Gitlab funzionante e disponibile è davvero facile iniziare con Gitlab-ci. Non ci sarà nulla che si integrerà perfettamente come Gitlab-ci, anche se hanno messo un po 'di impegno nelle integrazioni di terze parti.

  • loro documentazione dovrebbe iniziare in poco tempo
  • la soglia per iniziare è molto basso
  • La manutenzione è facile (nessun plug-in)
  • corridori scala è semplice
  • CI a pieno titolo il repository
  • lavori Jenkins/vista può ottenere disordinato

Alcuni vantaggi al momento della scrittura

  • Solo il supporto per un singolo file, ma che sta per essere fixed presto
+5

Jenkins ora può ottenere una GUI migliore grazie a [Blue Ocean] (https://jenkins.io/projects/blueocean/) –

+2

A partire da gitlab 9.3 viene aggiunto il supporto della pipeline multiprogetto. Questo era per me uno dei motivi principali per attaccare a Jenkins. Attualmente sto facendo un PoC per verificare se riesco a gestirlo con gitlab, visto che ora si stanno chiaramente concentrando su questo e si stanno evolvendo molto più velocemente. Oltre a ciò, amo davvero l'interfaccia utente e come si è evoluto nel tempo. – Rik

33

Sono d'accordo con la maggior parte delle note di Rik ma il mio parere su che è un semplice è il contrario: GitLab si sta rivelando uno strumento fantastico con cui lavorare.

maggior parte della potenza viene da essere autonomo e integrating everything nello stesso prodotto sotto la stessa scheda del browser: dal browser repository, bordo problema o costruire la storia per gli strumenti di distribuzione e monitoring.

sto usando in questo momento per automatizzare e verificare come un'applicazione installata su diverse distribuzioni Linux ed è solo velocissimo per configurare (tenta di aprire una configurazione complessa lavoro Jenkins su Firefox e attendere il che non risponde lo script che viene visualizzato rispetto a quanto è leggero modificare .gitlab-ci.yml). Il tempo dedicato alla configurazione/scalling degli slave è notevolmente inferiore grazie allo runner binaries; oltre al fatto che nel GitLab.com ottieni corridori condivisi abbastanza decenti e liberi.

Jenkins si sente altro manuale dopo alcune settimane di utilizzo di GitLab CI, ad es. duplicazione di processi per filiale, installazione di plugin per fare cose semplici come il caricamento di SCP. L'unico caso d'uso che ho affrontato dove mi manca oggi è quando sono coinvolti più di un repository; che deve ancora essere ben definito.

Btw, sto attualmente scrivendo una serie su GitLab CI per dimostrare come non sia difficile configurare l'infrastruttura CI del repository con esso. Pubblicata la scorsa settimana il primo pezzo che introduce le basi, i pro ei contro e le differenze con altri strumenti: https://solidgeargroup.com/gitlab_countinuous_integration_intro

+2

Sono assolutamente d'accordo su di te su Gitlab. Al momento di scrivere gitlab non era completo come al giorno d'oggi. Mi piace molto Gitlab come strumento e apprezzo molto tutto il lavoro che i ragazzi ci stanno dedicando. – Rik

+1

@alfageme: Verificherò i vostri rapporti sul sito menzionato In ogni caso: grazie a tutte le vostre spiegazioni. In questo momento deciderò se useremo gitlabCI o Jenkins per il nostro CI -Stuff. –

+0

@MaxS Come sei finito a usare? – user1870400

Problemi correlati