Battaglia di Jenkins è GitLab CI/CD

In l'ultima dicada, avanzati significativi sò stati fatti in u sviluppu di arnesi per l'integrazione cuntinuu (Integrazione Continua, CI) è l'implementazione cuntinua (Consegna Continua, CD). U sviluppu di tecnulugia per integrà u sviluppu è u funziunamentu di u software (Operazioni di Sviluppu, DevOps) hà purtatu à un rapidu aumentu di a dumanda di strumenti CI / CD. Soluzioni esistenti sò constantemente migliurate, cercandu di seguità i tempi, i so novi versioni sò liberati, in u mondu di u software di assicuranza di qualità (Assicuranza di Qualità, QA), parechji prudutti novi sò sempre apparsu. Cù una tale ricchezza di scelta, sceglie u strumentu ghjustu ùn hè micca un compitu faciule.

Battaglia di Jenkins è GitLab CI/CD

Trà tutti l'arnesi CI / CD esistenti, ci sò dui prughjetti chì valenu a pena attente à qualchissia chì cerca qualcosa da questa zona. Parlemu di Jenkins è di l'utillita GitLab CI / CD, chì face parte di a piattaforma GitLab. Jenkins hà più di 16000 stelle nantu à GitHub. U repository GitLab in gitlab.com hà puntuatu un pocu più 2000 stelle. Se paragunemu a pupularità di i repositori, ci hè chì Jenkins hà puntuatu 8 volte più stelle cà a piattaforma, chì include GitLab CI / CD. Ma quandu sceglite un strumentu CI / CD, questu hè luntanu da l'unicu indicatore chì deve esse attentu. Ci hè parechje altre, è questu spiega perchè in parechji paraguni, Jenkins è GitLab CI / CD sò assai vicini l'un à l'altru.

Pigliate, per esempiu, i dati da a piattaforma G2, chì accumula recensioni di una larga varietà di prudutti è e valutazioni chì l'utilizatori li dani. Eccu a valutazione media Jenkins, basatu annantu à 288 recensioni, hè 4,3 stelle. Oh oh GitLab ci sò 270 recensioni, a valutazione media di stu strumentu hè 4,4 stelle. Ùn ci sbagliemu micca di dì chì Jenkins è GitLab CI / CD cumpetenu l'un l'altru in termini uguali. Hè interessante di nutà chì u prughjettu di Jenkins apparsu in 2011 è da tandu hè statu un strumentu predilettu per i teste. Ma à u listessu tempu, u prughjettu GitLab CI / CD, lanciatu in u 2014, hà pigliatu a so pusizioni, assai altu, grazia à e funzioni avanzate offerte da sta piattaforma.

Se parlemu di a popularità di Jenkins in paragunà cù altre plataforme simili, avemu nutatu chì noi, avè publicatu un articulu paragunendu i plataformi Travis CI è Jenkins, organizemu una indagine. 85 utilizatori anu participatu à questu. I rispondenti sò stati dumandati à sceglie u strumentu CI/CD chì li piace u più. U 79% hà sceltu Jenkins, u 5% hà sceltu Travis CI, è u 16% hà indicatu chì preferanu altri strumenti.

Battaglia di Jenkins è GitLab CI/CD
I risultati di u sondaghju

Frà altri strumenti CI/CD, GitLab CI/CD hè statu citatu più spessu.

Sè vo site seriu nantu à DevOps, allora avete bisognu di selezziunà currettamente l'arnesi apprupriati, tenendu in contu e specificità di u prugettu, u so budgetu è altri esigenze. Per aiutà à fà a scelta bona, andemu à rivisione Jenkins è GitLab CI/CD. Spergu chì questu vi aiuterà à fà a scelta bona.

Introduzione à Jenkins

Battaglia di Jenkins è GitLab CI/CD
Jenkins hè un strumentu CI / CD ben cunnisciutu è flexible pensatu per automatizà parechje attività ligate à prughjetti di software. Jenkins hè scrittu interamente in Java è liberatu sottu a licenza MIT. Havi un putente inseme di funzioni destinate à automatizà i travaglii assuciati à a custruzione, a prova, l'implementazione, l'integrazione è a liberazione di software. Stu strumentu pò ièssiri usatu a diversi sistemi upirativu. Questi include macOS, Windows, è parechje distribuzioni Linux cum'è OpenSUSE, Ubuntu è Red Hat. Ci sò pacchetti di installazione per Jenkins cuncepiti per diversi OS, questu strumentu pò esse installatu in Docker è in qualsiasi sistema chì hà un JRE (Java Runtime Environment).

I sviluppatori di Jenkins anu creatu un altru prughjettu, Jenkins X, chì hè pensatu per travaglià in un ambiente Kubernetes. Jenkins X integra Helm, u servitore Jenkins CI/CD, Kubernetes, è altri strumenti per custruisce pipeline CI/CD chì seguitanu e migliori pratiche DevOps. Per esempiu, GitOps hè utilizatu quì.

Un pò aghjunghje à u tesoru di i vantaghji di Jenkins u fattu chì i so scripts sò assai ben strutturati, cumprendi, è faciuli di leghje. A squadra di Jenkins hà creatu circa 1000 plugins chì sò destinati à urganizà l'interazzione di Jenkins cù una larga varietà di tecnulugia. I scripts ponu utilizà sistemi di autentificazione, chì, per esempiu, vi permette di cunnette cù diversi sistemi chjusi.

Duranti u funziunamentu di u pipeline Jenkins, pudete osservà ciò chì succede à ogni passu, se certi fasi di u travagliu sò stati cumpleti cù successu o micca. Pudete vede tuttu questu, però, senza aduprà una certa interfaccia grafica, ma cù e capacità di u terminal.

Caratteristiche di Jenkins

Trà e caratteristiche ben cunnisciute di Jenkins sò facilità di setup, un altu livellu di automatizazione di diverse operazioni, è una documentazione eccellente. Se parlemu di risolve i travaglii di DevOps, allora Jenkins hè cunsideratu un strumentu assai affidabile, cù quale, in regula, ùn hà micca sensu di seguità attentamente tuttu u prucessu di prucessu di prughjettu. Questu ùn hè micca u casu cù l'altri strumenti CI / CD. Parlemu di alcune di e caratteristiche più impurtanti di Jenkins.

▍1. Supportu gratuitu, open source, multipiattaforma

Jenkins pò eseguisce nantu à e plataforme macOS, Windows è Linux. Puderà ancu funziunà in un ambiente Docker, chì vi permette di urganizà l'esekzione uniforme è rapida di i travaglii automatizati. Stu strumentu pò ancu esse esecutatu cum'è un servlet in cuntenituri attivati ​​in Java cum'è Apache Tomcat è GlassFish. Installazione di Jenkins qualitativamente documentatu.

▍2. Ecosistema di plugins sviluppatu

L'ecosistema di plugin Jenkins pare chì hè assai più maturu chì l'ecosistema di plugin di altri strumenti CI / CD. Ci sò attualmente più di 1500 plugins per Jenkins. Questi plugins sò destinati à risolve una larga gamma di tarei, cù u so aiutu pudete automatizà una varietà di prughjetti. A ricchezza di plugins gratuiti per sceglie significa chì sè vo site cù Jenkins, ùn avete micca bisognu di cumprà plugins pagati caru. Ci hè una pussibilità integrazione Jenkins cù assai strumenti DevOps.

▍3. Installazione è cunfigurazione faciule

Jenkins hè abbastanza faciule da stallà è cunfigurà. À u listessu tempu, u prucessu di aghjurnamentu di u sistema hè dinù assai còmuda. Quì, dinò, vale a pena menzionate a qualità di a ducumentazione, postu chì in questu pudete truvà risposte à una varietà di dumande riguardanti l'installazione è a cunfigurazione di Jenkins.

▍4. Cumunità amichevule

Comu digià dettu, Jenkins hè un prughjettu open source, l'ecosistema di quale include un gran numaru di plugins. Una grande cumunità di utilizatori è sviluppatori hà sviluppatu intornu à Jenkins per aiutà à sviluppà u prugettu. A cumunità hè unu di i fatturi chì guidanu u sviluppu di Jenkins.

▍5. Disponibilità di l'API REST

Mentre travaglia cù Jenkins, pudete aduprà l'API REST, chì espansione e capacità di u sistema. L'API per l'accessu remoto à u sistema hè presentata in trè versioni: XML, JSON cù supportu JSONP, Python. quì Pagina di documentazione chì copre i dettagli nantu à u travagliu cù l'API REST di Jenkins.

▍6. Supportu per l'esekzione parallela di i travaglii

Jenkins supporta a parallelizazione di e attività DevOps. Pò esse facilmente integratu cù e strumenti pertinenti è riceve notificazioni nantu à i risultati di i travaglii. A prova di codice pò esse accelerata urganizendu una custruzione parallela di u prugettu utilizendu diverse macchine virtuali.

▍7. Supportu per u travagliu in ambienti distribuiti

Jenkins vi permette di urganizà custruzzioni distribuite cù parechje computer. Questa funzione hè applicabile in grandi prughjetti è usa un schema di travagliu, secondu chì ci hè un servitore Jenkins maestru è parechje macchine slave. Macchine slave ponu ancu esse aduprate in situazioni induve hè necessariu urganizà a prova di un prughjettu in diverse ambienti. Queste caratteristiche distinguenu Jenkins da altri prughjetti simili.

Introduzione à GitLab

Battaglia di Jenkins è GitLab CI/CD
GitLab CI/CD pò esse chjamatu unu di i strumenti DevOps più novi è amati. Stu strumentu open source gratuitu hè custruitu in u sistema di cuntrollu di versione GitLab. A piattaforma GitLab hà una versione comunitaria, supporta a gestione di repository, strumenti di seguimentu di emissioni, urganizazione di rivisione di codice, meccanismi orientati à a documentazione. L'imprese ponu installà GitLab in u locu, liendu à l'Active Directory è i servitori LDAP per l'autorizazione è l'autentificazione sicura di l'utilizatori.

quì Un video tutoriale per aiutà à amparà cumu creà pipeline CI/CD utilizendu e capacità GitLab CI/CD.

GitLab CI/CD hè stata inizialmente liberata cum'è un prughjettu standalone, ma in u 2015 stu settore di strumenti hè stata integrata in GitLab 8.0. Un solu servitore GitLab CI/CD pò sustene più di 25000 XNUMX utilizatori. Basatu nantu à tali servitori, pudete creà sistemi chì sò assai dispunibili.

GitLab CI/CD è u prughjettu principale GitLab sò scritti in Ruby and Go. Sò liberati sottu a licenza MIT. GitLab CI/CD, in più di e funzioni abituale di l'utili CI/CD, sustene ancu e funzioni supplementari ligati, per esempiu, à a pianificazione di u travagliu.

L'integrazione di GitLab CI/CD in un prughjettu hè assai faciule. Quandu si usa GitLab CI/CD, u prucessu di trasfurmazioni di u codice di u prughjettu hè divisu in tappe, ognuna di e quali pò esse cumpostu di parechje attività realizate in un certu ordine. I travaglii ponu esse fine-tuned.

I travaglii ponu esse in parallelu. Dopu avè stabilitu a sequenza di tappe è tarei, a pipeline CI / CD hè pronta per andà. Pudete monitorà u so prugressu monitorendu u statutu di e attività. In u risultatu, l'usu di GitLab CI / CD hè assai còmuda, forse più còmuda di l'altri strumenti simili.

Funzioni di GitLab CI/CD è GitLab

GitLab CI/CD hè unu di i strumenti DevOps più populari. U prughjettu hè distinatu da una documentazione d'alta qualità, e so funziunalità sò faciuli è convenienti à aduprà. Se ùn site micca familiarizatu cù GitLab CI/CD, a seguente lista di e funzioni di sta strumentu vi darà una idea generale di ciò chì pudete aspittà da ellu. Hè da nutà chì assai di sti funziunalità sò in relazione cù a piattaforma GitLab stessu, in quale GitLab CI / CD hè integratu.

▍1. Popularità

GitLab CI/CD hè un strumentu relativamente novu chì hà trovu un usu generalizatu. GitLab CI/CD hè diventatu lentamente un strumentu CI/CD assai populari utilizatu per teste automatizati è implementazione di software. Hè simplice di stallà. Hè ancu un strumentu CI / CD gratuitu integratu in a piattaforma GitLab.

▍2. Supportu per e Pagine GitLab è Jekyll

Jekyll hè un generatore di situ staticu chì pò esse usatu in u sistema di Pagine GitLab per creà siti basati in repositori GitLab. U sistema piglia i materiali fonte è genera un situ staticu prontu basatu annantu à elli. Pudete cuntrullà l'apparenza è e caratteristiche di tali siti editendu u schedariu _config.yml, usatu da Jekyll.

▍3. Capacità di pianificazione di prughjettu

Grazie à a capacità di pianificà e tappe di prughjetti, a cunvenzione di i prublemi di seguimentu è i so gruppi aumenta. Questu permette di gestisce l'urganizazione di u travagliu nantu à i prughjetti, pianificà a so implementazione in una data specifica.

▍4. Scala automatica di i corridori CI

Grazie à a scala automatica di i corridori rispunsevuli di eseguisce funzioni specifiche, pudete risparmià assai in u costu di l'affittu di capacità di u servitore. Questu hè assai impurtante, soprattuttu quandu si tratta di ambienti induve i prughjetti sò pruvati in parallelu. Inoltre, questu hè impurtante per i grandi prughjetti custituiti da parechji repositori.

▍5. Issue strumenti di seguimentu

E putenti capacità di seguimentu di prublemi di GitLab anu purtatu parechji prughjetti open source à aduprà a piattaforma. GitLab CI/CD permette teste parallele di diverse branche di codice. I risultati di a prova sò convenientemente analizati in l'interfaccia di u sistema. Questu distingue GitLab CI/CD da Jenkins.

▍6. Restrizzione di l'accessu à i repositori

A piattaforma GitLab supporta a restrizzione di l'accessu à i repositori. Per esempiu, quelli chì cullabureghjanu in un prughjettu in un repository ponu esse attribuiti permessi adatti à i so roli. Questu hè soprattuttu veru per i prughjetti corporativi.

▍7. Supportu attivu di a cumunità

Una cumunità attiva hà sviluppatu intornu à GitLab, chì cuntribuisce à u sviluppu di sta piattaforma è i so arnesi, in particulare, GitLab CI / CD. L'integrazione prufonda di GitLab CI/CD è GitLab, tra l'altri cose, facilita à truvà risposte à e dumande chì si sviluppanu quandu si travaglia cù GitLab CI/CD.

▍8. Supportu per diversi sistemi di cuntrollu di versione

GitLab CI/CD hè un sistema chì pò travaglià cù più di u codice allughjatu in i repositori GitLab. Per esempiu, u codice pò esse guardatu in un repository GitHub, è u pipeline CI / CD pò esse urganizatu nantu à a basa di GitLab cù GitLab CI / CD.

Comparazione di Jenkins è GitLab CI/CD

Jenkins è GitLab CI/CD sò assai boni strumenti, chì sò tutti dui capaci di fà chì u pipeline CI/CD scorra bè. Ma s'ellu si paragunate, si trova chì, ancu s'elli sò simili in parechje manere, si sferiscenu in certi modi.

Caratteristiche
Jenkins
GitLab CI/CD

Fonte aperta o fonte chjusa
fonte aperta
fonte aperta

rimarchevuli
Ubligatoriu.
Ùn hè micca necessariu perchè questu hè una funzione integrata di a piattaforma GitLab.

Funzioni uniche
Supportu di plugin.
Integrazione profonda in u sistema di cuntrollu di versione.

sustegnu
Ùn dispunibili.
Disponibile.

Stallazione è cunfigurazione
Difficultà ùn causanu micca
Difficultà ùn causanu micca

Auto-implementazione di u sistema
Questu hè l'unicu modu per utilizà u sistema.
Supportatu.

Creazione di pipeline CI/CD
Supportatu, utilizendu Jenkins Pipeline.
Supportatu.

Monitoraghju di u rendiment di l'applicazione
Ùn dispunibili.
Disponibile.

Ecosistema
Ci sò più di 1000 plugins.
U sistema hè sviluppatu in GitLab.

API
Supporta un sistema API avanzatu.
Offre una API per una integrazione più profonda in i prughjetti.

Supportu JavaScript
Disponibile.
Disponibile.

Integrazione cù altri strumenti
L'integrazione cù altre arnesi è piattaforme hè supportata (Slack, GitHub).
Parechji strumenti per integrazione cù sistemi di terzu, in particulare - cù GitHub è Kubernetes.

cuntrollu di qualità codice
Supportatu - utilizendu u plugin SonarQube è altri plugins.
Supportatu.

Differenze trà Jenkins è GitLab CI/CD

Dopu avè descrittu è paragunatu Jenkins è GitLab CI/CD, focalizemu nantu à e differenze trà questi strumenti DevOps. Sapendu sti diffirenzi vi aiuterà à capisce quelli chì preferisce unu di sti arnesi sopra à l'altru.

  • GitLab CI/CD pò cuntrullà cumplettamente i repositori Git. Parlemu di a gestione di rami di repository è di alcune altre funziunalità. Ma Jenkins, ancu s'ellu pò travaglià cù repository, ùn dà micca u listessu livellu di cuntrollu nantu à elli cum'è GitLab CI / CD.
  • Jenkins hè un prughjettu open source gratuitu. Quellu chì a sceglie u dispiega in modu indipendenti. È GitLab CI / CD hè inclusu in a piattaforma GitLab, questa hè una soluzione chiavi in ​​mano.
  • GitLab CI/CD supporta strumenti avanzati di gestione di u travagliu chì travaglianu à u livellu di u prugettu. Stu latu di Jenkins hè menu sviluppatu.

Jenkins è GitLab CI/CD: punti di forza è debule

Avà avete qualchì idea di Jenkins è GitLab CI/CD. Avà, per avè ancu megliu cunniscenza di sti arnesi, fighjemu un ochju à i so punti di forza è debule. Assumimu chì avete digià decisu quale strumentu avete bisognu. Spergu chì sta sezione vi permetterà di pruvà sè stessu.

▍I punti di forza di Jenkins

  • Un gran numaru di plugins.
  • Cuntrolu cumpletu nantu à a stallazione di l'arnesi.
  • Debugging simplice di i corridori.
  • Configurazione di nodi faciule.
  • Implementazione di codice faciule.
  • Moltu bonu sistema di gestione di credenziali.
  • Flessibilità è versatilità.
  • Supportu per diverse lingue di prugrammazione.
  • U sistema hè comprensibile à un livellu intuitivu.

▍Debulezza di Jenkins

  • I plugins ponu esse difficili d'utilizà.
  • Quandu si usa Jenkins in picculi prughjetti, u tempu necessariu per cunfigurà sè stessu pò esse irragionevolmente grande.
  • Mancanza di infurmazione generale analitica nantu à e catene CI/CD.

▍I punti di forza di GitLab CI/CD

  • Bona integrazione cù Docker.
  • Scala semplice di i corridori.
  • Esecuzione parallela di i travaglii chì facenu parte di e tappe di u pipeline CI/CD.
  • Utilizà u mudellu di gràficu aciclicu direttu quandu stabilisce relazioni di compiti.
  • Altu livellu di scalabilità per via di a pussibilità di esecuzione parallela di corridori.
  • Facilità di aghjunghje attività.
  • Risoluzione simplice di cunflittu.
  • Sistema di sicurezza affidabile.

▍Debulezza di GitLab CI/CD

  • Per ogni compitu, avete bisognu di descriverà è caricate / scaricate artefatti.
  • Ùn pudete micca pruvà i risultati di a fusione di rami prima ch'elli sò veramente uniti.
  • Quandu si descrizanu e tappe di u pipeline CI / CD, ùn hè micca ancu pussibule di sceltu e tappe individuali in elli.

Risultati

Tanti Jenkins è GitLab CI / CD anu punti di forza è debule. A risposta à a quistione di ciò chì sceglie dipende di i bisogni è e caratteristiche di un prughjettu particulari. Ciascuna di l'arnesi CI / CD rivista oghje hà certe caratteristiche, ancu s'è sti arnesi sò stati creati per risolve u stessu prublema. À u listessu tempu, Jenkins hè un strumentu autonomu, è GitLab CI / CD hè parte di una piattaforma pensata per a cullaburazione nantu à u codice.

Quandu sceglite un sistema CI / CD, in più di e so capacità, vale a pena piglià in contu i costi chì ponu esse assuciati cun ellu, è ciò chì esattamente l'ingegneri DevOps chì sustenenu u prugettu sò abituati à travaglià.

Chì strumenti CI/CD aduprate?

Battaglia di Jenkins è GitLab CI/CD

Battaglia di Jenkins è GitLab CI/CD

Source: www.habr.com

Add a comment