{"id":96161,"date":"2020-10-08T19:42:48","date_gmt":"2020-10-08T17:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd"},"modified":"2020-10-08T19:42:48","modified_gmt":"2020-10-08T17:42:48","slug":"bitva-jenkins-i-gitlab-ci-cd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","title":{"rendered":"Bitka izme\u0111u Jenkins i GitLab CI\/CD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>U posljednjem desetlje\u0107u postignuti su zna\u010dajni uspjesi u razvoju alata za kontinuiranu integraciju (Continuous Integration, CI) i kontinuirano isporu\u010divanje (Continuous Delivery, CD). Razvoj tehnologija integracije razvoja i operacija softvera (Development Operations, DevOps) doveo je do brzog rasta potra\u017enje za CI\/CD alatima. Postoje\u0107a rje\u0161enja se neprekidno pobolj\u0161avaju, nastoje\u0107i dr\u017eati korak s vremenom, izlaze nove verzije, a u svijetu osiguranja kvalitete softvera (Quality Assurance, QA) neprestano se pojavljuje mno\u0161tvo novih proizvoda. S obzirom na takav bogat izbor, odabir odgovaraju\u0107eg alata postaje izazovna zada\u0107a.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/522334\/\"><img decoding=\"async\" alt=\"Bitka izme\u0111u Jenkins i GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/6cf6dfa92ebec7d6e44776e9c9bfbb6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Me\u0111u svim postoje\u0107im CI\/CD alatima postoje dva projekta na koja definitivno vrijedi obratiti pa\u017enju onima koji tra\u017ee ne\u0161to iz ove sfere. Rije\u010d je o Jenkinsu i alatu GitLab CI\/CD, koji je dio platforme GitLab. Jenkins ima vi\u0161e <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jenkinsci\/jenkins\">16000<\/a><\/noindex> zvjezdica na GitHubu. GitLabov repozitorij na gitlab.com dobio je ne\u0161to vi\u0161e od <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\">2000<\/a><\/noindex> zvjezdica. Ako usporedimo popularnost repozitorija, otkrio bi da Jenkins ima osam puta vi\u0161e zvjezdica od platforme koja uklju\u010duje GitLab CI\/CD. No, pri odabiru CI\/CD alata to nije jedini pokazatelj na koji treba obratiti pa\u017enju. Ima i mno\u0161tvo drugih, \u0161to obja\u0161njava da se u mnogim usporedbama Jenkins i GitLab CI\/CD nalaze vrlo blizu jedni drugima.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nUzmimo, na primjer, podatke s platforme G2, koja akumulira recenzije o raznim proizvodima i ocjene koje im daju korisnici. Ovdje je prosje\u010dna ocjena <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/jenkins\/reviews\">Jenkins<\/a><\/noindex>, dobivena na temelju 288 recenzija, 4,3 zvjezdice. A o <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/gitlab\/reviews\">GitLab<\/a><\/noindex> ima 270 recenzija, a prosje\u010dna ocjena ovog alata iznosi 4,4 zvjezdice. Ne bismo pogrije\u0161ili ako bismo izjavili da Jenkins i GitLab CI\/CD konkuriraju jedni drugima pod jednakim uvjetima. Zanimljivo je napomenuti da je projekt Jenkins nastao 2011. godine i od tada je omiljeni alat testera. No, projekt GitLab CI\/CD, pokrenut 2014. godine, zauzeo je svoje visoke pozicije zahvaljuju\u0107i naprednim mogu\u0107nostima koje ova platforma nudi.<\/p>\n<p>Kada govorimo o popularnosti Jenkinsa u usporedbi s drugim sli\u010dnim platformama, treba napomenuti da smo, objaviv\u0161i \u010dlanak u kojem smo uspore\u0111ivali platforme Travis CI i Jenkins, organizirali anketu. U anketi je sudjelovalo 85 korisnika. Ispitanicima je ponu\u0111eno da odaberu CI\/CD alat koji im se najvi\u0161e svi\u0111a. 79% je odabralo Jenkins, 5% je odabralo Travis CI, a 16% je navelo da preferiraju druge alate.<\/p>\n<p><img decoding=\"async\" alt=\"Bitka izme\u0111u Jenkins i GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/b66b5d3d5f27f3310c8bf0fc68f4c636.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Rezultati ankete<\/i><\/p>\n<p>Me\u0111u drugim CI\/CD alatima, naj\u010de\u0161\u0107e je spominjan GitLab CI\/CD.<\/p>\n<p>Ako se ozbiljno bavite DevOps-om, trebate pa\u017eljivo odabrati odgovaraju\u0107e alate, uzimaju\u0107i u obzir osobitosti projekta, njegov prora\u010dun i druge zahtjeve. Kako bismo vam pomogli donijeti ispravnu odluku, planiramo provesti analizu Jenkinsa i GitLab CI\/CD-a. To, nadamo se, pomo\u0107i \u0107e vam u odabiru.<\/p>\n<h2>Upoznavanje s Jenkinsom<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Bitka izme\u0111u Jenkins i GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/f7df92d1fb3f81f785fc59da82a943b7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/\">Jenkins<\/a><\/noindex> \u2014 to je \u0161iroko poznat, fleksibilan CI\/CD alat namijenjen automatizaciji brojnih zadatka povezanih s softverskim projektima. Jenkins je potpuno napisan u Javi i objavljen je pod MIT licencom. Ima mo\u0107an skup mogu\u0107nosti, usmjerenih na automatizaciju zadataka povezanih sa sastavljanjem, testiranjem, implementacijom, integracijom i izdavanjem softvera. Ovaj alat mo\u017ee se koristiti na raznim operacijskim sustavima. Me\u0111u njima su macOS, Windows i brojni Linux distribucije, kao \u0161to su OpenSUSE, Ubuntu i Red Hat. Postoje instalacijski paketi Jenkinsa namijenjeni raznim OS-ima, a ovaj alat se mo\u017ee instalirati u Docker i u svemu gdje postoji JRE (Java Runtime Environment).<\/p>\n<p>Razvija\u010di Jenkinsa kreirali su jo\u0161 jedan projekt, Jenkins X, koji je namijenjen radu u Kubernetes okru\u017eenju. U Jenkinsa X integrirani su Helm, Jenkins CI\/CD server, Kubernetes i drugi alati koji su namijenjeni izradi CI\/CD cjevovoda u skladu s najboljim praksama DevOps-a. Na primjer, ovdje se koristi GitOps.<\/p>\n<p>U zbirku prednosti Jenkinsa mo\u017eemo dodati i to da su njegovi skripti vrlo dobro strukturirani, jasni i lako \u010ditljivi. Tim Jenkinsa stvorio je oko 1000 dodataka koji su usmjereni na organizaciju interakcije Jenkinsa s raznim tehnologijama. U skriptama se mogu koristiti sustavi autentifikacije, \u0161to, na primjer, omogu\u0107uje povezivanje s razli\u010ditim zatvorenim sustavima.<\/p>\n<p>Tijekom rada Jenkins konvejera mo\u017ee se pratiti \u0161to se doga\u0111a na svakom njegovom koraku, kao i to jesu li odre\u0111eni koraci bili uspje\u0161no zavr\u0161eni ili ne. Ovo pra\u0107enje mogu\u0107e je obaviti bez kori\u0161tenja grafi\u010dkog su\u010delja, koriste\u0107i mogu\u0107nosti terminala.<\/p>\n<h2>Zna\u010dajke Jenkinsa<\/h2>\n<p>\nMe\u0111u dobro poznatim zna\u010dajkama Jenkinsa mo\u017ee se istaknuti jednostavnost pode\u0161avanja, visok stupanj automatizacije razli\u010ditih operacija i izvrsna dokumentacija. Kada je rije\u010d o rje\u0161avanju DevOps zadataka, Jenkins se smatra iznimno pouzdanim alatom, gdje obi\u010dno nije potrebno pa\u017eljivo pratiti cijeli proces obrade projekta. U slu\u010daju drugih CI\/CD alata to nije tako. Razgovarajmo o nekim najva\u017enijim mogu\u0107nostima Jenkinsa.<\/p>\n<h3>\u258d1. Besplatan, otvoreni izvor, podr\u0161ka za mnoge platforme<\/h3>\n<p>\nJenkins mo\u017ee raditi na platformama macOS, Windows i Linux. Tako\u0111er mo\u017ee raditi u Docker okru\u017eenju, \u0161to omogu\u0107ava ujedna\u010deno i brzo izvr\u0161avanje automatiziranih zadataka. Ovaj alat mo\u017ee se tako\u0111er izvoditi kao servlet u kontejnerima koji podr\u017eavaju Javu, poput Apache Tomcat i GlassFish. Instalacija Jenkinsa je kvalitetno <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/installing\/\">dokumentirana<\/a><\/noindex>.<\/p>\n<h3>\u258d2. Razvijena ekosustav dodataka<\/h3>\n<p>\nEkosustav dodataka Jenkinsa izgleda znatno razvijenije u usporedbi s ekosustavima dodataka drugih CI\/CD alata. Trenutno postoji vi\u0161e od 1500 dodataka za Jenkins. Ovi dodaci usmjereni su na rje\u0161avanje \u0161irokog spektra zadataka, a uz njihovu pomo\u0107 mogu\u0107e je automatizirati najrazli\u010ditije projekte. Bogatstvo izbora besplatnih dodataka zna\u010di da korisnik Jenkinsa nema hitnu potrebu za kupnjom skupih pla\u0107enih dodataka. Postoji mogu\u0107nost <noindex><a rel=\"nofollow\" href=\"https:\/\/www.lambdatest.com\/support\/docs\/jenkins-with-lambdatest\/\">integraciji<\/a><\/noindex> Jenkinsa s brojnim DevOps alatima.<\/p>\n<h3>\u258d3. Jednostavna instalacija i konfiguracija<\/h3>\n<p>\nJenkins je prili\u010dno jednostavan za instalaciju i konfiguraciju. Nadalje, proces a\u017euriranja sustava tako\u0111er je vrlo jednostavan. Opet, treba spomenuti kvalitetu dokumentacije, jer je u njoj mogu\u0107e prona\u0107i odgovore na razna pitanja vezana uz instalaciju i konfiguraciju Jenkinsa.<\/p>\n<h3>\u258d4. Prijateljska zajednica<\/h3>\n<p>\nKao \u0161to je ve\u0107 re\u010deno, Jenkins je otvoreni izvorni projekt \u010dija ekosustav uklju\u010duje ogromnu koli\u010dinu dodataka. Oko Jenkinsa se stvorila velika zajednica korisnika i programera koja poma\u017ee u razvoju projekta. Zajednica je jedan od faktora koji doprinosi razvoju Jenkinsa.<\/p>\n<h3>\u258d5. Dostupnost REST API-ja<\/h3>\n<p>\nTijekom rada s Jenkinsom mo\u017eete koristiti REST API, \u0161to pro\u0161iruje mogu\u0107nosti sustava. API za daljinski pristup sustavu dostupan je u tri verzije: XML, JSON s podr\u0161kom za JSONP, Python. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/using\/remote-access-api\/\">Evo<\/a><\/noindex> stranica dokumentacije koja otkriva detalje o radu s REST API-jem Jenkinsa.<\/p>\n<h3>\u258d6. Podr\u0161ka za paralelno izvr\u0161avanje zadataka<\/h3>\n<p>\nJenkins podr\u017eava paralelno izvr\u0161avanje DevOps zadataka. Lako se integrira s odgovaraju\u0107im alatima i omogu\u0107uje obavijesti o rezultatima izvr\u0161enja zadataka. Izvr\u0161enje testiranja koda mo\u017ee se ubrzati organizacijom paralelne izrade projekta koriste\u0107i razli\u010dite virtualne strojeve.<\/p>\n<h3>\u258d7. Podr\u0161ka za rad u distribuiranim okru\u017eenjima<\/h3>\n<p>\nJenkins omogu\u0107ava organizaciju distribuiranih izrada koriste\u0107i nekoliko ra\u010dunala. Ova mogu\u0107nost je primjenjiva u velikim projektima i koristi shemu rada prema kojoj postoji jedan glavni Jenkins poslu\u017eitelj i nekoliko podre\u0111enih ma\u0161ina. Podre\u0111ene ma\u0161ine se mogu koristiti i u situacijama kada je potrebno organizirati testiranje projekta u razli\u010ditim okru\u017eenjima. Ove mogu\u0107nosti povoljno razlikuju Jenkins od drugih sli\u010dnih projekata.<\/p>\n<h2>Upoznavanje s GitLab-om<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Bitka izme\u0111u Jenkins i GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/aa89f462b8378c8efefef142ff0ca6be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/\">GitLab CI\/CD<\/a><\/noindex> mo\u017ee se nazvati jednim od najnovijih i najomiljenijih alata me\u0111u DevOps in\u017eenjerima. Ovaj besplatan otvoreni alat je ugra\u0111en u sustav kontrole verzija GitLab. GitLab platforma ima community verziju koja podr\u017eava upravljanje repozitorijima, alate za pra\u0107enje problema, organizaciju pregledavanja koda i mehanizme koji su usmjereni na izradu dokumentacije. Dru\u0161tva mogu instalirati GitLab lokalno, povezuju\u0107i ovaj sustav s Active Directory i LDAP poslu\u017eiteljima radi organizacije sigurnog autoriziranja i autentifikacije korisnika.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/3quCZ7ZMg0Y\">Evo<\/a><\/noindex> vodi\u010d u videu koji \u0107e vam pomo\u0107i da saznate kako stvarati CI\/CD cijevi koriste\u0107i mogu\u0107nosti GitLab CI\/CD.<\/p>\n<p>GitLab CI\/CD prvotno je bio objavljen kao samostalni projekt, ali je 2015. godine ovaj skup alata integriran u GitLab 8.0. Odvojeni GitLab CI\/CD poslu\u017eitelj mo\u017ee podr\u017eavati vi\u0161e od 25.000 korisnika. Na temelju takvih poslu\u017eitelja mogu\u0107e je kreirati sustave s visokom dostupno\u0161\u0107u.<\/p>\n<p>GitLab CI\/CD i glavni projekt GitLab napisani su u Rubyju i Go-u. Objavljeni su pod MIT licencom. GitLab CI\/CD, pored obi\u010dnih mogu\u0107nosti CI\/CD alata, podr\u017eava i dodatne funkcionalnosti, poput planiranja poslova.<\/p>\n<p>Integracija GitLab CI\/CD-a u projekt izuzetno je jednostavna. Kada koristite GitLab CI\/CD, proces obrade koda projekta dijeli se na faze, od kojih svaka mo\u017ee sadr\u017eavati nekoliko zadataka koji se izvode u odre\u0111enom redoslijedu. Zadatke je mogu\u0107e detaljno prilagoditi.<\/p>\n<p>Zadaci se mogu izvoditi paralelno. Nakon \u0161to se postavi redoslijed faza i zadataka, CI\/CD proces je spreman za rad. Tijekom njegovog izvo\u0111enja mo\u017eete pratiti stanje zadataka. Kao rezultat, kori\u0161tenje GitLab CI\/CD-a vrlo je prakti\u010dno, vjerojatno i prakti\u010dnije od drugih sli\u010dnih alata.<\/p>\n<h2>Zna\u010dajke GitLab CI\/CD-a i GitLab-a<\/h2>\n<p>\nGitLab CI\/CD jedan je od najpopularnijih DevOps alata. Projekt se izdvaja kvalitetnom dokumentacijom, a njegove mogu\u0107nosti su jednostavne i prakti\u010dne za kori\u0161tenje. Ako jo\u0161 niste upoznati s GitLab CI\/CD-om, sljede\u0107i popis mogu\u0107nosti ovog alata pru\u017eit \u0107e vam op\u0107i pregled onoga \u0161to mo\u017eete o\u010dekivati. Valja napomenuti da se mnoge od tih mogu\u0107nosti odnose na samu platformu GitLab, u koju je GitLab CI\/CD integriran.<\/p>\n<h3>\u258d1. Popularnost<\/h3>\n<p>\nGitLab CI\/CD je relativno nov alat koji je stekao \u0161iroku primjenu. GitLab CI\/CD postao je izuzetno popularan CI\/CD alat za automatizirano testiranje i implementaciju softvera. Lako ga je postaviti. Tako\u0111er, to je besplatan CI\/CD alat ugra\u0111en u GitLab platformu.<\/p>\n<h3>\u258d2. Podr\u0161ka za GitLab Pages i Jekyll<\/h3>\n<p>\nJekyll je generator stati\u010dkih web stranica koji se mo\u017ee koristiti u okviru sustava GitLab Pages za izradu web stranica temeljenih na GitLab repozitorijima. Sustav uzima izvorne materijale i na temelju njih generira gotovu stati\u010dku web stranicu. Izgled i funkcionalnosti takvih stranica mogu se upravljati ure\u0111ivanjem datoteke <code>_config.yml<\/code>, kori\u0161ten za Jekyll.<\/p>\n<h3>\u258d3. Mogu\u0107nosti planiranja projekata<\/h3>\n<p>\nZahvaljuju\u0107i mogu\u0107nosti planiranja faza projekata, pove\u0107ava se udobnost pra\u0107enja problema i njihovih grupa. Ovo omogu\u0107ava upravljanje organizacijom radova na projektima, planiraju\u0107i njihovu realizaciju na odre\u0111eni datum.<\/p>\n<h3>\u258d4. Automatsko skaliranje CI-trka\u010da<\/h3>\n<p>\nZahvaljuju\u0107i automatskom skaliranju trka\u010da, odgovornih za izvr\u0161avanje odre\u0111enih zadataka, mo\u017ee se zna\u010dajno u\u0161tedjeti na tro\u0161kovima iznajmljivanja serverskih resursa. Ovo je posebno va\u017eno, pogotovo kada se radi o okru\u017eenjima u kojima se paralelno izvodi testiranje projekata. Tako\u0111er, to je va\u017eno za velike projekte koji se sastoje od vi\u0161e repozitorija.<\/p>\n<h3>\u258d5. Alati za pra\u0107enje problema<\/h3>\n<p>\nMo\u0107ne mogu\u0107nosti GitLab-a za pra\u0107enje problema dovele su do toga da ovu platformu koriste mnogi open-source projekti. GitLab CI\/CD omogu\u0107ava paralelno testiranje raznih grana koda. Rezultate ispitivanja mogu\u0107e je lako analizirati u su\u010delju sustava. Ovo GitLab CI\/CD izdvaja od Jenkins-a.<\/p>\n<h3>\u258d6. Ograni\u010denje pristupa repozitorijima<\/h3>\n<p>\nGitLab platforma podr\u017eava ograni\u010denje pristupa repozitorijima. Na primjer, onima koji zajedni\u010dki rade na projektu u odre\u0111enom repozitoriju mogu se dodijeliti prava koja odgovaraju njihovim ulogama. Ovo je posebno relevantno za korporativne projekte.<\/p>\n<h3>\u258d7. Aktivna podr\u0161ka zajednice<\/h3>\n<p>\nOko GitLab-a se stvorila aktivna zajednica koja doprinosi razvoju ove platforme i njenih alata, posebno \u2014 GitLab CI\/CD. Duboka integracija GitLab CI\/CD s GitLab-om, izme\u0111u ostalog, olak\u0161ava pronala\u017eenje odgovora na pitanja koja se javljaju prilikom rada s GitLab CI\/CD.<\/p>\n<h3>\u258d8. Podr\u0161ka za rad s raznim sustavima kontrole verzija<\/h3>\n<p>\nGitLab CI\/CD je sustav koji mo\u017ee raditi ne samo s kodom smje\u0161tenim u GitLab repozitorijima. Na primjer, kod se mo\u017ee \u010duvati u GitHub repozitoriju, a CI\/CD pipeline mo\u017ee se organizirati na temelju GitLab-a koriste\u0107i GitLab CI\/CD.<\/p>\n<h2>Usporedba Jenkins i GitLab CI\/CD<\/h2>\n<p>\nJenkins i GitLab CI\/CD su vrlo dobri alati, svaki od njih mo\u017ee osigurati normalan rad CI\/CD pipelinea. No, ako ih usporedimo, ispostavit \u0107e se da su, iako u mnogo \u010demu sli\u010dni, u nekim stvarima razli\u010diti.<\/p>\n<p><strong>Zna\u010dajka<\/strong><br \/>\n<strong>Jenkins<\/strong><br \/>\n<strong>GitLab CI\/CD<\/strong><\/p>\n<p>Otvoreni ili zatvoreni kod<br \/>\nOtvoreni kod<br \/>\nOtvoreni kod<\/p>\n<p>Instalacija<br \/>\nPotrebno.<br \/>\nNije potrebno, jer je to ugra\u0111ena funkcija platforme GitLab.<\/p>\n<p>Jedinstvene karakteristike<br \/>\nPodr\u0161ka za dodatke.<br \/>\nDuboka integracija u sistem za upravljanje verzijama.<\/p>\n<p>Podr\u0161ka<br \/>\nNema.<br \/>\nPostoji.<\/p>\n<p>Instalacija i postavljanje<br \/>\nNe izaziva pote\u0161ko\u0107e<br \/>\nNe izaziva pote\u0161ko\u0107e<\/p>\n<p>Samostalno postavljanje sistema<br \/>\nOvo je jedina opcija za kori\u0161\u0107enje sistema.<br \/>\nPodr\u017eava se.<\/p>\n<p>Kreiranje CI\/CD cevi<br \/>\nPodr\u017eava se, koristi Jenkins Pipeline.<br \/>\nPodr\u017eava se.<\/p>\n<p>Pra\u0107enje performansi aplikacija<br \/>\nNema.<br \/>\nPostoji.<\/p>\n<p>Ekosistem<br \/>\nPostoji vi\u0161e od 1000 dodataka.<br \/>\nSistem se razvija unutar GitLab-a.<\/p>\n<p>API<br \/>\nPodr\u017eava razvijen sistem API-ja.<br \/>\nNudi API za dublju integraciju u projekte.<\/p>\n<p>Podr\u0161ka za JavaScript<br \/>\nPostoji.<br \/>\nPostoji.<\/p>\n<p>Integracija s drugim alatima<br \/>\nPodr\u017eava integraciju s drugim alatima i platformama (Slack, GitHub).<br \/>\nMnoge alate za integraciju s sporednim sistemima, posebno s GitHub-om i Kubernetesom.<\/p>\n<p>Kontrola kvaliteta koda<br \/>\nPodr\u017eava se \u2014 uz dodatak SonarQube i druge dodatke.<br \/>\nPodr\u017eava se.<\/p>\n<p><\/p>\n<h2>Razlike izme\u0111u Jenkins i GitLab CI\/CD<\/h2>\n<p>\nNakon \u0161to smo opisali i uporedili Jenkins i GitLab CI\/CD, fokusirajmo se na razlike izme\u0111u ovih DevOps alata. Poznavanje ovih razlika pomo\u0107i \u0107e onima koji preferiraju jedan alat nad drugim.<\/p>\n<ul>\n<li>GitLab CI\/CD mo\u017ee potpuno kontrolisati Git repozitorije. Ovo se odnosi na upravljanje granama repozitorija i neke druge mogu\u0107nosti. Jenkins, iako mo\u017ee raditi s repozitorijima, ne daje istu razinu kontrole kao GitLab CI\/CD.<\/li>\n<li>Jenkins je besplatan open-source projekat. Onaj ko ga odabire, postavlja ga samostalno. Dok je GitLab CI\/CD uklju\u010den u platformu GitLab, to je gotovo re\u0161enje.<\/li>\n<li>GitLab CI\/CD podr\u017eava razvijene alate za upravljanje zadacima koji funkcioni\u0161u na nivou projekata. Ova strana Jenkins-a je slabije razvijena.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Jenkins i GitLab CI\/CD: prednosti i mane<\/h2>\n<p>\nSada imate neku predstavu o Jenkins-u i GitLab CI\/CD. Sada, da biste se jo\u0161 bolje upoznali s ovim alatima, razmotrimo njihove prednosti i mane. Verujemo da ste ve\u0107 doneli odluku o tome koji alat vam je potreban. Nadamo se da \u0107e vam ovaj deo pomo\u0107i da se testirate.<\/p>\n<h3>\u258dPrednosti Jenkins-a<\/h3>\n<p><\/p>\n<ul>\n<li>Velik broj dodataka.<\/li>\n<li>Potpuna kontrola nad instalacijom alata.<\/li>\n<li>Jednostavno otklanjanje gre\u0161aka u izvr\u0161iteljima.<\/li>\n<li>Jednostavno pode\u0161avanje \u010dvorova.<\/li>\n<li>Jednostavno postavljanje koda.<\/li>\n<li>Izvrsan sustav za upravljanje podacima.<\/li>\n<li>Fleksibilnost i svestranost.<\/li>\n<li>Podr\u0161ka za razli\u010dite programske jezike.<\/li>\n<li>Sustav je intuitivno razumljiv.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dSlabosti Jenkinsa<\/h3>\n<p><\/p>\n<ul>\n<li>Mogu\u0107i su problemi prilikom kori\u0161tenja dodataka.<\/li>\n<li>U malim projektima, vrijeme potrebno za svoju vlastitu konfiguraciju Jenkinsa mo\u017ee biti neopravdano veliko.<\/li>\n<li>Nema op\u0107ih analiti\u010dkih podataka za CI\/CD tokove.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dSnage GitLab CI\/CD-a<\/h3>\n<p><\/p>\n<ul>\n<li>Dobra integracija s Dockerom.<\/li>\n<li>Jednostavno skaliranje runnera.<\/li>\n<li>Paralelno izvo\u0111enje zadataka unutar CI\/CD cjevovoda.<\/li>\n<li>Kori\u0161tenje modela usmjerenog acikli\u010dkog grafa za postavljanje me\u0111uzavisnosti zadataka.<\/li>\n<li>Visoka razina skalabilnosti zahvaljuju\u0107i paralelnom izvo\u0111enju runnera.<\/li>\n<li>Jednostavno dodavanje zadataka.<\/li>\n<li>Jednostavno rje\u0161avanje sukoba.<\/li>\n<li>Pouzdan sustav sigurnosti.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dSlabosti GitLab CI\/CD-a<\/h3>\n<p><\/p>\n<ul>\n<li>Za svaki zadatak potrebno je opisati i u\u010ditati\/izvesti artefakte.<\/li>\n<li>Nije mogu\u0107e testirati rezultate spajanja grana prije stvarnog spajanja.<\/li>\n<li>U opisivanju faza CI\/CD cjevovoda trenutno nije mogu\u0107e istaknuti posebne korake.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Zaklju\u010dci<\/h2>\n<p>\nI Jenkins i GitLab CI\/CD imaju svoje snage i slabosti. Odabir izme\u0111u njih ovisi o potrebama i karakteristikama specifi\u010dnog projekta. Svaki od danas razmatranih CI\/CD alata ima svoje posebnosti, iako su kreirani za rje\u0161avanje istog zadatka. Jenkins je autonoman alat, dok je GitLab CI\/CD dio platforme namijenjene suradnji na kodu.<\/p>\n<p>Prilikom odabira CI\/CD sustava, osim njegovih funkcionalnosti, treba uzeti u obzir i tro\u0161kove koji su s njim povezani, kao i alate s kojima su DevOps in\u017eenjeri navikli raditi.<\/p>\n<p>Koje CI\/CD alate koristite?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=perevod&amp;utm_content=bitva_jenkins_i_gitlab_ci_cd#order\"><img decoding=\"async\" alt=\"Bitka izme\u0111u Jenkins i GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/cc25a9353b43773d11028a7a2caf96f1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub\/news\/read\/123?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=perevod&amp;utm_content=bitva_jenkins_i_gitlab_ci_cd\"><img decoding=\"async\" alt=\"Bitka izme\u0111u Jenkins i GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/efaafe7301c2f6a2fb00a22e7a0fa41a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/522334\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD). \u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u041f\u041e (Development Operations, DevOps) \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0431\u044b\u0441\u0442\u0440\u043e\u043c\u0443 \u0440\u043e\u0441\u0442\u0443 \u0441\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 CI\/CD-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u044e\u0442\u0441\u044f, \u0441\u0442\u0440\u0435\u043c\u044f\u0441\u044c \u0438\u0434\u0442\u0438 \u0432 \u043d\u043e\u0433\u0443 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0438\u0445 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u0432 \u043c\u0438\u0440\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":96162,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-96161","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 Jenkins \u0438 GitLab CI\/CD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-08T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-08T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Bitka Jenkinsa i GitLab CI\/CD-a | ProHoster","description":"U posljednjem desetlje\u0107u postignuti su zna\u010dajni napreci u razvoju alata za kontinuiranu integraciju (Continuous Integration, CI) i kontinuiranu dostavu (Continuous Delivery, CD).","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 Jenkins \u0438 GitLab CI\/CD | ProHoster","og:description":"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-08T17:42:48+00:00","article:modified_time":"2020-10-08T17:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"96161","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:51:00","updated":"2026-08-11 12:50:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/96161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=96161"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/96161\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/96162"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=96161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=96161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=96161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}