{"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\/cs\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","title":{"rendered":"Bitva mezi Jenkins a GitLab CI\/CD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V posledn\u00edm desetilet\u00ed do\u0161lo k v\u00fdznamn\u00e9mu pokroku ve v\u00fdvoji n\u00e1stroj\u016f pro pr\u016fb\u011b\u017enou integraci (Continuous Integration, CI) a pr\u016fb\u011b\u017en\u00e9 dod\u00e1v\u00e1n\u00ed (Continuous Delivery, CD). Rozvoj technologi\u00ed integrace v\u00fdvoje a provozu softwaru (Development Operations, DevOps) vedl k rychl\u00e9mu zv\u00fd\u0161en\u00ed popt\u00e1vky po n\u00e1stroj\u00edch CI\/CD. Existuj\u00edc\u00ed \u0159e\u0161en\u00ed se neust\u00e1le zlep\u0161uj\u00ed, sna\u017e\u00ed se dr\u017eet krok s dobou, a na trhu kontroln\u00edch kvalit softwaru (Quality Assurance, QA) se neust\u00e1le objevuj\u00ed nov\u00e9 produkty. P\u0159i tak bohat\u00e9m v\u00fdb\u011bru se st\u00e1v\u00e1 v\u00fdb\u011br vhodn\u00e9ho n\u00e1stroje obt\u00ed\u017en\u00fdm \u00fakolem.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/522334\/\"><img decoding=\"async\" alt=\"Bitva mezi Jenkins a GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/6cf6dfa92ebec7d6e44776e9c9bfbb6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Mezi v\u0161emi existuj\u00edc\u00edmi n\u00e1stroji CI\/CD existuj\u00ed dva projekty, na kter\u00e9 rozhodn\u011b stoj\u00ed za to se zam\u011b\u0159it, pokud hled\u00e1te n\u011bco v t\u00e9to oblasti. Jedn\u00e1 se o Jenkins a n\u00e1stroj GitLab CI\/CD, kter\u00fd je sou\u010d\u00e1st\u00ed platformy GitLab. Jenkins m\u00e1 v\u00edce ne\u017e <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jenkinsci\/jenkins\">16000<\/a><\/noindex> hv\u011bzd na GitHubu. Repozit\u00e1\u0159 GitLab na gitlab.com z\u00edskal n\u011bco m\u00e1lo p\u0159es <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\">2000<\/a><\/noindex> hv\u011bzd. Pokud porovn\u00e1me popularitu repozit\u00e1\u0159\u016f, uk\u00e1\u017ee se, \u017ee Jenkins z\u00edskal 8kr\u00e1t v\u00edce hv\u011bzd ne\u017e platforma, do kter\u00e9 GitLab CI\/CD pat\u0159\u00ed. P\u0159i v\u00fdb\u011bru n\u00e1stroje CI\/CD to v\u0161ak nen\u00ed jedin\u00fd ukazatel, na kter\u00fd bychom m\u011bli d\u00e1vat pozor. Existuje \u0159ada dal\u0161\u00edch faktor\u016f, co\u017e vysv\u011btluje, pro\u010d se v mnoha srovn\u00e1n\u00edch Jenkins a GitLab CI\/CD ocitaj\u00ed velmi bl\u00edzko u sebe.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nVezm\u011bme nap\u0159\u00edklad statistiky z platformy G2, kter\u00e1 shroma\u017e\u010fuje recenze r\u016fzn\u00fdch produkt\u016f a hodnocen\u00ed u\u017eivatel\u016f. Zde je pr\u016fm\u011brn\u00e9 hodnocen\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/jenkins\/reviews\">Jenkins<\/a><\/noindex>, kter\u00e9 bylo vypo\u010d\u00edt\u00e1no na z\u00e1klad\u011b 288 recenz\u00ed, 4,3 hv\u011bzdy. A o <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/gitlab\/reviews\">GitLab<\/a><\/noindex> tady m\u00e1me 270 recenz\u00ed, pr\u016fm\u011brn\u00e9 hodnocen\u00ed tohoto n\u00e1stroje je 4,4 hv\u011bzdy. Nebudeme se m\u00fdlit, kdy\u017e \u0159ekneme, \u017ee Jenkins a GitLab CI\/CD sout\u011b\u017e\u00ed navz\u00e1jem na rovn\u00fdch podm\u00ednk\u00e1ch. Zaj\u00edmav\u00e9 je, \u017ee projekt Jenkins vznikl v roce 2011 a od t\u00e9 doby se stal obl\u00edben\u00fdm n\u00e1strojem tester\u016f. Nicm\u00e9n\u011b projekt GitLab CI\/CD, spu\u0161t\u011bn\u00fd v roce 2014, si velmi brzo z\u00edskal vysok\u00e9 pozice d\u00edky pokro\u010dil\u00fdm mo\u017enostem, kter\u00e9 tato platforma nab\u00edz\u00ed.<\/p>\n<p>Pokud mluv\u00edme o popularit\u011b Jenkins ve srovn\u00e1n\u00ed s jin\u00fdmi podobn\u00fdmi platformami, je t\u0159eba zm\u00ednit, \u017ee jsme zve\u0159ejnili \u010dl\u00e1nek, ve kter\u00e9m byly porovn\u00e1ny platformy Travis CI a Jenkins, a uskute\u010dnili jsme anketu. \u00da\u010dastnilo se j\u00ed 85 u\u017eivatel\u016f. Respondenti byli vyzv\u00e1ni, aby si vybrali CI\/CD n\u00e1stroj, kter\u00fd se jim l\u00edb\u00ed nejv\u00edce. 79 % zvolilo Jenkins, 5 % zvolilo Travis CI a 16 % uvedlo, \u017ee preferuj\u00ed jin\u00e9 n\u00e1stroje.<\/p>\n<p><img decoding=\"async\" alt=\"Bitva mezi Jenkins a GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/b66b5d3d5f27f3310c8bf0fc68f4c636.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>V\u00fdsledky ankety<\/i><\/p>\n<p>Mezi jin\u00fdmi CI\/CD n\u00e1stroji byl nej\u010dast\u011bji zmi\u0148ov\u00e1n GitLab CI\/CD.<\/p>\n<p>Pokud se v\u00e1\u017en\u011b zab\u00fdv\u00e1te DevOps, je d\u016fle\u017eit\u00e9 pe\u010dliv\u011b vyb\u00edrat odpov\u00eddaj\u00edc\u00ed n\u00e1stroje, p\u0159i\u010dem\u017e je nutn\u00e9 br\u00e1t v \u00favahu specifika projektu, jeho rozpo\u010det a dal\u0161\u00ed po\u017eadavky. Abychom v\u00e1m pomohli u\u010dinit spr\u00e1vn\u00fd v\u00fdb\u011br, pl\u00e1nujeme prov\u00e9st anal\u00fdzu Jenkins a GitLab CI\/CD. Douf\u00e1me, \u017ee v\u00e1m to pom\u016f\u017ee p\u0159i rozhodov\u00e1n\u00ed.<\/p>\n<h2>Sezn\u00e1men\u00ed s Jenkins<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Bitva mezi Jenkins a 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> \u2013 je \u0161iroce zn\u00e1m\u00fd, flexibiln\u00ed CI\/CD n\u00e1stroj ur\u010den\u00fd k automatizaci mnoha \u00fakol\u016f spojen\u00fdch s softwarov\u00fdmi projekty. Jenkins je naps\u00e1n v\u00fdhradn\u011b v Jav\u011b a je vyd\u00e1v\u00e1n pod licenc\u00ed MIT. Disponuje silnou sadou funkc\u00ed zam\u011b\u0159en\u00fdch na automatizaci \u00faloh spojen\u00fdch se sestavov\u00e1n\u00edm, testov\u00e1n\u00edm, nasazen\u00edm, integrac\u00ed a vyd\u00e1n\u00edm softwaru. Tento n\u00e1stroj m\u016f\u017ee b\u00fdt pou\u017e\u00edv\u00e1n v r\u016fzn\u00fdch opera\u010dn\u00edch syst\u00e9mech, mezi kter\u00e9 pat\u0159\u00ed macOS, Windows a mnoho distribuc\u00ed Linuxu, nap\u0159\u00edklad OpenSUSE, Ubuntu a Red Hat. Existuj\u00ed instala\u010dn\u00ed bal\u00ed\u010dky Jenkins ur\u010den\u00e9 pro r\u016fzn\u00e9 OS, tento n\u00e1stroj lze nainstalovat i do Dockeru a na jak\u00fdkoliv syst\u00e9m, kde je JRE (Java Runtime Environment).<\/p>\n<p>V\u00fdvoj\u00e1\u0159i Jenkins vytvo\u0159ili tak\u00e9 dal\u0161\u00ed projekt, Jenkins X, kter\u00fd je ur\u010den k pr\u00e1ci v prost\u0159ed\u00ed Kubernetes. V Jenkins X jsou integrov\u00e1ny Helm, server Jenkins CI\/CD, Kubernetes a dal\u0161\u00ed n\u00e1stroje ur\u010den\u00e9 k vytv\u00e1\u0159en\u00ed CI\/CD pipeline, kter\u00e9 odpov\u00eddaj\u00ed nejlep\u0161\u00edm praktik\u00e1m DevOps. Nap\u0159\u00edklad se zde vyu\u017e\u00edv\u00e1 GitOps.<\/p>\n<p>Mezi v\u00fdhody Jenkins lze tak\u00e9 p\u0159ipsat skute\u010dnost, \u017ee jeho skripty jsou velmi dob\u0159e strukturovan\u00e9, srozumiteln\u00e9 a snadno \u010diteln\u00e9. T\u00fdm Jenkins vytvo\u0159il p\u0159ibli\u017en\u011b 1000 plugin\u016f, kter\u00e9 usnad\u0148uj\u00ed interakci Jenkins s r\u016fzn\u00fdmi technologiemi. Ve skriptech lze vyu\u017e\u00edvat autentifika\u010dn\u00ed syst\u00e9my, co\u017e nap\u0159\u00edklad umo\u017e\u0148uje p\u0159ipojov\u00e1n\u00ed k r\u016fzn\u00fdm uzav\u0159en\u00fdm syst\u00e9m\u016fm.<\/p>\n<p>B\u011bhem pr\u00e1ce s Jenkinsov\u00fdm kan\u00e1lem m\u016f\u017eete sledovat, co se d\u011bje v ka\u017ed\u00e9m jeho kroku, a zda jednotliv\u00e9 f\u00e1ze pr\u00e1ce byly \u00fasp\u011b\u0161n\u011b dokon\u010deny, \u010di nikoli. Toho lze dos\u00e1hnout nejen pomoc\u00ed grafick\u00e9ho rozhran\u00ed, ale tak\u00e9 vyu\u017eit\u00edm mo\u017enost\u00ed termin\u00e1lu.<\/p>\n<h2>Vlastnosti Jenkinsu<\/h2>\n<p>\nMezi \u0161iroce zn\u00e1m\u00fdmi vlastnostmi Jenkinsu lze zm\u00ednit jednoduchost nastaven\u00ed, vysokou \u00farove\u0148 automatizace r\u016fzn\u00fdch operac\u00ed a skv\u011blou dokumentaci. Pokud jde o \u0159e\u0161en\u00ed DevOps \u00fakol\u016f, Jenkins se pova\u017euje za velmi spolehliv\u00fd n\u00e1stroj, kter\u00fd obvykle nevy\u017eaduje pe\u010dliv\u00e9 sledov\u00e1n\u00ed cel\u00e9ho procesu zpracov\u00e1n\u00ed projektu. U jin\u00fdch CI\/CD n\u00e1stroj\u016f tomu tak nen\u00ed. Poj\u010fme si promluvit o n\u011bkter\u00fdch nejd\u016fle\u017eit\u011bj\u0161\u00edch funkc\u00edch Jenkinsu.<\/p>\n<h3>\u258d1. Zdarma, open source, podpora mnoha platforem<\/h3>\n<p>\nJenkins m\u016f\u017ee fungovat na platform\u00e1ch macOS, Windows a Linux. M\u016f\u017ee tak\u00e9 pracovat v prost\u0159ed\u00ed Docker, co\u017e umo\u017e\u0148uje rychl\u00e9 a jednotn\u00e9 prov\u00e1d\u011bn\u00ed automatizovan\u00fdch \u00fakol\u016f. Tento n\u00e1stroj nav\u00edc m\u016f\u017ee b\u00fdt spu\u0161t\u011bn jako servlet v kontejnerech podporuj\u00edc\u00edch Javu, jako jsou Apache Tomcat a GlassFish. Instalace Jenkinsu je kvalitn\u011b <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/installing\/\">dokumentov\u00e1na<\/a><\/noindex>.<\/p>\n<h3>\u258d2. Rozvinut\u00fd ekosyst\u00e9m plugin\u016f<\/h3>\n<p>\nEkosyst\u00e9m plugin\u016f Jenkinsu vypad\u00e1 mnohem rozvinut\u011bji ve srovn\u00e1n\u00ed s ekosyst\u00e9my p\u0159ipojiteln\u00fdch modul\u016f jin\u00fdch CI\/CD n\u00e1stroj\u016f. V sou\u010dasnosti existuje v\u00edce ne\u017e 1500 plugin\u016f pro Jenkins. Tyto pluginy jsou zam\u011b\u0159eny na \u0159e\u0161en\u00ed \u0161irok\u00e9ho spektra \u00fakol\u016f a umo\u017e\u0148uj\u00ed automatizaci r\u016fzn\u00fdch projekt\u016f. Bohatstv\u00ed v\u00fdb\u011bru bezplatn\u00fdch p\u0159ipojiteln\u00fdch modul\u016f znamen\u00e1, \u017ee u\u017eivatel Jenkinsu nem\u00e1 nal\u00e9havou pot\u0159ebu kupovat drah\u00e9 placen\u00e9 pluginy. Existuje mo\u017enost <noindex><a rel=\"nofollow\" href=\"https:\/\/www.lambdatest.com\/support\/docs\/jenkins-with-lambdatest\/\">integrace<\/a><\/noindex> Jenkins s mnoha DevOps n\u00e1stroji.<\/p>\n<h3>\u258d3. Snadn\u00e1 instalace a nastaven\u00ed<\/h3>\n<p>\nJenkins je pom\u011brn\u011b jednoduch\u00fd na instalaci a nastaven\u00ed. Proces aktualizace syst\u00e9mu je tak\u00e9 velmi pohodln\u00fd. Zde op\u011bt stoj\u00ed za zm\u00ednku kvalita dokumentace, ve kter\u00e9 lze nal\u00e9zt odpov\u011bdi na r\u016fzn\u00e9 ot\u00e1zky t\u00fdkaj\u00edc\u00ed se instalace a nastaven\u00ed Jenkinsu.<\/p>\n<h3>\u258d4. P\u0159\u00e1telsk\u00e1 komunita<\/h3>\n<p>\nJak ji\u017e bylo \u0159e\u010deno, Jenkins je open-source projekt, jeho\u017e ekosyst\u00e9m zahrnuje obrovsk\u00e9 mno\u017estv\u00ed plugin\u016f. Kolem Jenkins vzniklo velk\u00e9 spole\u010denstv\u00ed u\u017eivatel\u016f a v\u00fdvoj\u00e1\u0159\u016f, kte\u0159\u00ed p\u0159isp\u00edvaj\u00ed k rozvoji projektu. Spole\u010denstv\u00ed je jedn\u00edm z faktor\u016f, kter\u00e9 p\u0159isp\u00edvaj\u00ed k rozvoji Jenkins.<\/p>\n<h3>\u258d5. P\u0159\u00edtomnost REST API<\/h3>\n<p>\nB\u011bhem pr\u00e1ce s Jenkins m\u016f\u017eete vyu\u017e\u00edvat REST API, co\u017e roz\u0161i\u0159uje mo\u017enosti syst\u00e9mu. API pro vzd\u00e1len\u00fd p\u0159\u00edstup k syst\u00e9mu je dostupn\u00e9 ve t\u0159ech variant\u00e1ch: XML, JSON s podporou JSONP, Python. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/using\/remote-access-api\/\">Tady<\/a><\/noindex> str\u00e1nka dokumentace, kter\u00e1 zve\u0159ej\u0148uje podrobnosti o pr\u00e1ci s REST API Jenkins.<\/p>\n<h3>\u258d6. Podpora paraleln\u00edho prov\u00e1d\u011bn\u00ed \u00faloh<\/h3>\n<p>\nJenkins podporuje paralelizaci DevOps \u00faloh. Lze jej snadno integrovat s p\u0159\u00edslu\u0161n\u00fdmi n\u00e1stroji a z\u00edsk\u00e1vat ozn\u00e1men\u00ed o v\u00fdsledc\u00edch prov\u00e1d\u011bn\u00ed \u00faloh. Prov\u00e1d\u011bn\u00ed testov\u00e1n\u00ed k\u00f3du lze urychlit organizac\u00ed paraleln\u00ed sestavy projektu pomoc\u00ed r\u016fzn\u00fdch virtu\u00e1ln\u00edch stroj\u016f.<\/p>\n<h3>\u258d7. Podpora pr\u00e1ce v distribuovan\u00fdch prost\u0159ed\u00edch<\/h3>\n<p>\nJenkins umo\u017e\u0148uje organizovat distribuovan\u00e9 sestavy s vyu\u017eit\u00edm n\u011bkolika po\u010d\u00edta\u010d\u016f. Tato mo\u017enost se uplat\u0148uje ve velk\u00fdch projektech a pou\u017e\u00edv\u00e1 sch\u00e9ma pr\u00e1ce, podle n\u011bho\u017e existuje jeden hlavn\u00ed server Jenkins a n\u011bkolik pod\u0159\u00edzen\u00fdch stroj\u016f. Pod\u0159\u00edzen\u00e9 stroje mohou b\u00fdt vyu\u017eity i v situac\u00edch, kdy je t\u0159eba organizovat testov\u00e1n\u00ed projektu v r\u016fzn\u00fdch prost\u0159ed\u00edch. Tyto mo\u017enosti v\u00fdhodn\u011b odli\u0161uj\u00ed Jenkins od jin\u00fdch podobn\u00fdch projekt\u016f.<\/p>\n<h2>Sezn\u00e1men\u00ed s GitLab<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Bitva mezi Jenkins a 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> m\u016f\u017ee b\u00fdt pova\u017eov\u00e1n za jeden z nejnov\u011bj\u0161\u00edch a nejobl\u00edben\u011bj\u0161\u00edch n\u00e1stroj\u016f mezi DevOps in\u017een\u00fdry. Tento bezplatn\u00fd open-source n\u00e1stroj je integrov\u00e1n do syst\u00e9mu spr\u00e1vy verz\u00ed GitLab. Platforma GitLab m\u00e1 komunitn\u00ed verzi, kter\u00e1 podporuje spr\u00e1vu repozit\u00e1\u0159\u016f, n\u00e1stroje pro sledov\u00e1n\u00ed probl\u00e9m\u016f, organizaci code review a mechanismy zam\u011b\u0159en\u00e9 na vytv\u00e1\u0159en\u00ed dokumentace. Firmy mohou instalovat GitLab lok\u00e1ln\u011b, propojuj\u00edc\u00ed tento syst\u00e9m s Active Directory a LDAP servery pro zaji\u0161t\u011bn\u00ed bezpe\u010dn\u00e9 autorizace a autentizace u\u017eivatel\u016f.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/3quCZ7ZMg0Y\">Tady<\/a><\/noindex> videon\u00e1vod, kter\u00fd v\u00e1m pom\u016f\u017ee zjistit, jak vytv\u00e1\u0159et CI\/CD kan\u00e1ly pomoc\u00ed funkc\u00ed GitLab CI\/CD.<\/p>\n<p>P\u016fvodn\u011b byl GitLab CI\/CD vyd\u00e1n jako samostatn\u00fd projekt, ale v roce 2015 byl tento n\u00e1stroj integrov\u00e1n do GitLab 8.0. Samostatn\u00fd server GitLab CI\/CD m\u016f\u017ee podporovat pr\u00e1ci v\u00edce ne\u017e 25 000 u\u017eivatel\u016f. Na z\u00e1klad\u011b takov\u00fdch server\u016f lze vytv\u00e1\u0159et syst\u00e9my s vysokou dostupnost\u00ed.<\/p>\n<p>GitLab CI\/CD a hlavn\u00ed projekt GitLab jsou napsan\u00e9 v Ruby a Go. Jsou vyd\u00e1ny pod licenc\u00ed MIT. GitLab CI\/CD, krom\u011b b\u011b\u017en\u00fdch mo\u017enost\u00ed CI\/CD n\u00e1stroj\u016f, tak\u00e9 podporuje dal\u0161\u00ed funkce, kter\u00e9 se nap\u0159\u00edklad t\u00fdkaj\u00ed pl\u00e1nov\u00e1n\u00ed \u00faloh.<\/p>\n<p>Integrace GitLab CI\/CD do projektu je velmi jednoduch\u00e1. P\u0159i pou\u017eit\u00ed GitLab CI\/CD je proces zpracov\u00e1n\u00ed k\u00f3du projektu rozd\u011blen na f\u00e1ze, p\u0159i\u010dem\u017e ka\u017ed\u00e1 z nich m\u016f\u017ee obsahovat n\u011bkolik \u00faloh, kter\u00e9 se vykon\u00e1vaj\u00ed v ur\u010dit\u00e9m po\u0159ad\u00ed. \u00dalohy lze jemn\u011b doladit.<\/p>\n<p>\u00dalohy mohou b\u00fdt prov\u00e1d\u011bny paraleln\u011b. Po nastaven\u00ed sekvence f\u00e1z\u00ed a \u00faloh je CI\/CD pipeline p\u0159ipravena k provozu. M\u016f\u017eete sledovat jej\u00ed pr\u016fb\u011bh a sledovat stav \u00faloh. V\u00fdsledkem je, \u017ee pou\u017e\u00edv\u00e1n\u00ed GitLab CI\/CD je velmi pohodln\u00e9, mo\u017en\u00e1 pohodln\u011bj\u0161\u00ed ne\u017e u jin\u00fdch podobn\u00fdch n\u00e1stroj\u016f.<\/p>\n<h2>Vlastnosti GitLab CI\/CD a GitLab<\/h2>\n<p>\nGitLab CI\/CD je jedn\u00edm z nejpopul\u00e1rn\u011bj\u0161\u00edch DevOps n\u00e1stroj\u016f. Projekt se vyzna\u010duje kvalitn\u00ed dokumentac\u00ed, jeho mo\u017enosti jsou snadno a pohodln\u011b pou\u017eiteln\u00e9. Pokud je\u0161t\u011b nejste obezn\u00e1meni s GitLab CI\/CD, n\u00e1sleduj\u00edc\u00ed seznam funkc\u00ed tohoto n\u00e1stroje v\u00e1m poskytne obecn\u00fd p\u0159ehled o tom, co od n\u011bj m\u016f\u017eete o\u010dek\u00e1vat. Je t\u0159eba poznamenat, \u017ee mnoh\u00e9 z t\u011bchto funkc\u00ed se vztahuj\u00ed k samotn\u00e9 platform\u011b GitLab, do kter\u00e9 je GitLab CI\/CD integrov\u00e1n.<\/p>\n<h3>\u258d1. Popularita<\/h3>\n<p>\nGitLab CI\/CD je relativn\u011b nov\u00fd n\u00e1stroj, kter\u00fd na\u0161el \u0161irok\u00e9 uplatn\u011bn\u00ed. GitLab CI\/CD se postupn\u011b stal extr\u00e9mn\u011b popul\u00e1rn\u00edm CI\/CD n\u00e1strojem, kter\u00fd se pou\u017e\u00edv\u00e1 pro automatizovan\u00e9 testov\u00e1n\u00ed a nasazen\u00ed softwaru. Je snadn\u00e9 ho nastavit. Nav\u00edc je to bezplatn\u00fd CI\/CD n\u00e1stroj integrovan\u00fd do platformy GitLab.<\/p>\n<h3>\u258d2. Podpora GitLab Pages a Jekyll<\/h3>\n<p>\nJekyll je gener\u00e1tor statick\u00fdch str\u00e1nek, kter\u00fd lze pou\u017e\u00edt v r\u00e1mci syst\u00e9mu GitLab Pages pro vytv\u00e1\u0159en\u00ed webov\u00fdch str\u00e1nek zalo\u017een\u00fdch na repozit\u00e1\u0159\u00edch GitLab. Syst\u00e9m bere zdrojov\u00fd materi\u00e1l a na jeho z\u00e1klad\u011b generuje hotovou statickou webovou str\u00e1nku. Vzhled a funkce takov\u00fdch str\u00e1nek lze \u0159\u00eddit \u00fapravou souboru <code>_config.yml<\/code>, pou\u017e\u00edvan\u00fd Jekyll.<\/p>\n<h3>\u258d3. Mo\u017enosti pl\u00e1nov\u00e1n\u00ed projekt\u016f<\/h3>\n<p>\nD\u00edky mo\u017enosti pl\u00e1nov\u00e1n\u00ed f\u00e1z\u00ed projekt\u016f se zvy\u0161uje pohodl\u00ed p\u0159i sledov\u00e1n\u00ed probl\u00e9m\u016f a jejich seskupov\u00e1n\u00ed. To umo\u017e\u0148uje efektivn\u011b \u0159\u00eddit organizaci prac\u00ed na projektech a pl\u00e1novat jejich proveden\u00ed na konkr\u00e9tn\u00ed datum.<\/p>\n<h3>\u258d4. Automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed CI runner\u016f<\/h3>\n<p>\nD\u00edky automatick\u00e9mu \u0161k\u00e1lov\u00e1n\u00ed runner\u016f, odpov\u011bdn\u00fdch za prov\u00e1d\u011bn\u00ed konkr\u00e9tn\u00edch \u00fakol\u016f, lze zna\u010dn\u011b u\u0161et\u0159it na n\u00e1kladech na pron\u00e1jem serverov\u00fdch zdroj\u016f. To je zvl\u00e1\u0161\u0165 d\u016fle\u017eit\u00e9, zejm\u00e9na pokud jde o prost\u0159ed\u00ed, kde se testov\u00e1n\u00ed projekt\u016f prov\u00e1d\u00ed paraleln\u011b. Krom\u011b toho je to d\u016fle\u017eit\u00e9 pro v\u011bt\u0161\u00ed projekty slo\u017een\u00e9 z n\u011bkolika repozit\u00e1\u0159\u016f.<\/p>\n<h3>\u258d5. N\u00e1stroje pro sledov\u00e1n\u00ed probl\u00e9m\u016f<\/h3>\n<p>\nSiln\u00e9 mo\u017enosti sledov\u00e1n\u00ed probl\u00e9m\u016f GitLab vedly k tomu, \u017ee tuto platformu pou\u017e\u00edv\u00e1 mnoho open-source projekt\u016f. GitLab CI\/CD umo\u017e\u0148uje prov\u00e1d\u011bt paraleln\u00ed testov\u00e1n\u00ed r\u016fzn\u00fdch v\u011btv\u00ed k\u00f3du. V\u00fdsledky testov\u00e1n\u00ed se pohodln\u011b analyzuj\u00ed v u\u017eivatelsk\u00e9m rozhran\u00ed syst\u00e9mu. To v\u00fdrazn\u011b odli\u0161uje GitLab CI\/CD od Jenkins.<\/p>\n<h3>\u258d6. Omezov\u00e1n\u00ed p\u0159\u00edstupu k repozit\u00e1\u0159\u016fm<\/h3>\n<p>\nPlatforma GitLab podporuje omezov\u00e1n\u00ed p\u0159\u00edstupu k repozit\u00e1\u0159\u016fm. Nap\u0159\u00edklad t\u011bm, kte\u0159\u00ed spolupracuj\u00ed na projektu v n\u011bjak\u00e9m repozit\u00e1\u0159i, lze p\u0159id\u011blit pr\u00e1va odpov\u00eddaj\u00edc\u00ed jejich rol\u00edm. To je zvl\u00e1\u0161\u0165 d\u016fle\u017eit\u00e9 pro firemn\u00ed projekty.<\/p>\n<h3>\u258d7. Aktivn\u00ed podpora komunity<\/h3>\n<p>\nKolem GitLab se vytvo\u0159ila aktivn\u00ed komunita, kter\u00e1 p\u0159isp\u00edv\u00e1 k rozvoji t\u00e9to platformy a jej\u00edch n\u00e1stroj\u016f, zejm\u00e9na - GitLab CI\/CD. Hlubok\u00e1 integrace GitLab CI\/CD a GitLab usnad\u0148uje nalezen\u00ed odpov\u011bd\u00ed na ot\u00e1zky, kter\u00e9 se b\u011bhem pr\u00e1ce s GitLab CI\/CD objevuj\u00ed.<\/p>\n<h3>\u258d8. Podpora pr\u00e1ce s r\u016fzn\u00fdmi syst\u00e9my pro spr\u00e1vu verz\u00ed<\/h3>\n<p>\nGitLab CI\/CD je syst\u00e9m, kter\u00fd dok\u00e1\u017ee pracovat nejen s k\u00f3dem um\u00edst\u011bn\u00fdm v repozit\u00e1\u0159\u00edch GitLab. Nap\u0159\u00edklad, k\u00f3d m\u016f\u017ee b\u00fdt uchov\u00e1v\u00e1n v GitHub repozit\u00e1\u0159i, zat\u00edmco CI\/CD pipeline m\u016f\u017ee b\u00fdt organizov\u00e1na na b\u00e1zi GitLab s vyu\u017eit\u00edm GitLab CI\/CD.<\/p>\n<h2>Srovn\u00e1n\u00ed Jenkins a GitLab CI\/CD<\/h2>\n<p>\nJenkins a GitLab CI\/CD jsou velmi dobr\u00e9 n\u00e1stroje, p\u0159i\u010dem\u017e ka\u017ed\u00fd z nich dok\u00e1\u017ee zaru\u010dit norm\u00e1ln\u00ed fungov\u00e1n\u00ed CI\/CD pipeline. Ale kdy\u017e je srovn\u00e1me, uk\u00e1\u017ee se, \u017ee i kdy\u017e jsou si mnoh\u00e9m podobn\u00e9, v n\u011b\u010dem se li\u0161\u00ed.<\/p>\n<p><strong>Vlastnosti<\/strong><br \/>\n<strong>Jenkins<\/strong><br \/>\n<strong>GitLab CI\/CD<\/strong><\/p>\n<p>Otev\u0159en\u00fd nebo uzav\u0159en\u00fd k\u00f3d<br \/>\nOtev\u0159en\u00fd k\u00f3d<br \/>\nOtev\u0159en\u00fd k\u00f3d<\/p>\n<p>Instalace<br \/>\nJe vy\u017eadov\u00e1n.<br \/>\nNen\u00ed nutn\u00e9, proto\u017ee je to zabudovan\u00e1 funkce platformy GitLab.<\/p>\n<p>Jedine\u010dn\u00e9 vlastnosti<br \/>\nPodpora plugin\u016f.<br \/>\nHlubok\u00e1 integrace do syst\u00e9mu spr\u00e1vy verz\u00ed.<\/p>\n<p>Podpora<br \/>\nNen\u00ed k dispozici.<br \/>\nJe k dispozici.<\/p>\n<p>Instalace a konfigurace<br \/>\nNep\u0159edstavuje \u017e\u00e1dn\u00e9 obt\u00ed\u017ee<br \/>\nNep\u0159edstavuje \u017e\u00e1dn\u00e9 obt\u00ed\u017ee<\/p>\n<p>Samostatn\u00e9 nasazen\u00ed syst\u00e9mu<br \/>\nTo je jedin\u00e1 mo\u017enost pou\u017eit\u00ed syst\u00e9mu.<br \/>\nPodporov\u00e1no.<\/p>\n<p>Vytv\u00e1\u0159en\u00ed CI\/CD pipeline<br \/>\nPodporov\u00e1no, pou\u017e\u00edv\u00e1 se Jenkins Pipeline.<br \/>\nPodporov\u00e1no.<\/p>\n<p>Monitorov\u00e1n\u00ed v\u00fdkonu aplikac\u00ed<br \/>\nNen\u00ed k dispozici.<br \/>\nJe k dispozici.<\/p>\n<p>Ekosyst\u00e9m<br \/>\nExistuje v\u00edce ne\u017e 1000 plugin\u016f.<br \/>\nSyst\u00e9m se vyv\u00edj\u00ed v r\u00e1mci GitLab.<\/p>\n<p>API<br \/>\nPodporuje rozvinut\u00fd syst\u00e9m API.<br \/>\nNab\u00edz\u00ed API pro hlub\u0161\u00ed integraci do projekt\u016f.<\/p>\n<p>Podpora JavaScriptu<br \/>\nJe k dispozici.<br \/>\nJe k dispozici.<\/p>\n<p>Integrace s jin\u00fdmi n\u00e1stroji<br \/>\nPodporov\u00e1na integrace s jin\u00fdmi n\u00e1stroji a platformami (Slack, GitHub).<br \/>\nMnoho prost\u0159edk\u016f pro integraci se t\u0159et\u00edmi syst\u00e9my, konkr\u00e9tn\u011b s GitHub a Kubernetes.<\/p>\n<p>Kontrola kvality k\u00f3du<br \/>\nPodporov\u00e1no \u2014 pomoc\u00ed pluginu SonarQube a dal\u0161\u00edch plugin\u016f.<br \/>\nPodporov\u00e1no.<\/p>\n<p><\/p>\n<h2>Rozd\u00edly mezi Jenkins a GitLab CI\/CD<\/h2>\n<p>\nPopi\u0161me a porovnejme Jenkins a GitLab CI\/CD, zam\u011b\u0159me se na rozd\u00edly t\u011bchto DevOps n\u00e1stroj\u016f. Znalost t\u011bchto rozd\u00edl\u016f n\u00e1m umo\u017en\u00ed pochopit, kdo d\u00e1v\u00e1 p\u0159ednost jednomu z t\u011bchto n\u00e1stroj\u016f p\u0159ed druh\u00fdm.<\/p>\n<ul>\n<li>GitLab CI\/CD m\u016f\u017ee pln\u011b \u0159\u00eddit Git repozit\u00e1\u0159e. To zahrnuje spr\u00e1vu v\u011btv\u00ed repozit\u00e1\u0159\u016f a n\u011bkter\u00e9 dal\u0161\u00ed funkce. Jenkins, i kdy\u017e um\u00ed pracovat s repozit\u00e1\u0159i, nenab\u00edz\u00ed stejnou \u00farove\u0148 kontroly nad nimi jako GitLab CI\/CD.<\/li>\n<li>Jenkins je bezplatn\u00fd open-source projekt. Ten, kdo si ho vybere, ho nasazuje s\u00e1m. GitLab CI\/CD je sou\u010d\u00e1st\u00ed platformy GitLab, co\u017e je hotov\u00e9 \u0159e\u0161en\u00ed.<\/li>\n<li>GitLab CI\/CD podporuje rozvinut\u00e9 n\u00e1stroje pro spr\u00e1vu \u00faloh, funguj\u00edc\u00ed na \u00farovni projekt\u016f. Tato str\u00e1nka Jenkins je slab\u0161\u00ed.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Jenkins a GitLab CI\/CD: siln\u00e9 a slab\u00e9 str\u00e1nky<\/h2>\n<p>\nNyn\u00ed m\u00e1te ur\u010dit\u00e9 pov\u011bdom\u00ed o Jenkins a GitLab CI\/CD. Abychom v\u00e1m pomohli l\u00e9pe se sezn\u00e1mit s t\u011bmito n\u00e1stroji, pod\u00edvejme se na jejich siln\u00e9 a slab\u00e9 str\u00e1nky. Douf\u00e1me, \u017ee jste ji\u017e u\u010dinili rozhodnut\u00ed, kter\u00fd konkr\u00e9tn\u00ed n\u00e1stroj pot\u0159ebujete. R\u00e1di bychom, aby v\u00e1m tato sekce poskytla zp\u011btnou vazbu.<\/p>\n<h3>\u258dSiln\u00e9 str\u00e1nky Jenkins<\/h3>\n<p><\/p>\n<ul>\n<li>Velk\u00e9 mno\u017estv\u00ed plugin\u016f.<\/li>\n<li>\u00dapln\u00e1 kontrola nad instalac\u00ed n\u00e1stroje.<\/li>\n<li>Jednoduch\u00e9 lad\u011bn\u00ed runner\u016f.<\/li>\n<li>Jednoduch\u00e9 nastaven\u00ed uzl\u016f.<\/li>\n<li>Jednoduch\u00e9 nasazen\u00ed k\u00f3du.<\/li>\n<li>Velmi dobr\u00fd syst\u00e9m spr\u00e1vy p\u0159ihla\u0161ovac\u00edch informac\u00ed.<\/li>\n<li>Flexibilita a univerz\u00e1lnost.<\/li>\n<li>Podpora r\u016fzn\u00fdch programovac\u00edch jazyk\u016f.<\/li>\n<li>Syst\u00e9m je intuitivn\u011b srozumiteln\u00fd.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dSlab\u00e9 str\u00e1nky Jenkins<\/h3>\n<p><\/p>\n<ul>\n<li>P\u0159i pou\u017e\u00edv\u00e1n\u00ed plugin\u016f mohou nastat obt\u00ed\u017ee.<\/li>\n<li>P\u0159i pou\u017e\u00edv\u00e1n\u00ed Jenkins v mal\u00fdch projektech mohou b\u00fdt \u010dasov\u00e9 n\u00e1roky na vlastn\u00ed nastaven\u00ed nep\u0159im\u011b\u0159en\u011b vysok\u00e9.<\/li>\n<li>Nedostatek obecn\u00fdch analytick\u00fdch informac\u00ed o CI\/CD pipelinech.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dSiln\u00e9 str\u00e1nky GitLab CI\/CD<\/h3>\n<p><\/p>\n<ul>\n<li>Dobr\u00e1 integrace s Dockerem.<\/li>\n<li>Jednoduch\u00e9 \u0161k\u00e1lov\u00e1n\u00ed runner\u016f.<\/li>\n<li>Paraleln\u00ed vykon\u00e1v\u00e1n\u00ed \u00faloh v r\u00e1mci CI\/CD pipeline.<\/li>\n<li>Pou\u017eit\u00ed modelu orientovan\u00e9ho acyklick\u00e9ho grafu p\u0159i nastavov\u00e1n\u00ed vztah\u016f \u00faloh.<\/li>\n<li>Vysok\u00e1 \u00farove\u0148 \u0161k\u00e1lovatelnosti d\u00edky mo\u017enosti paraleln\u00edho vykon\u00e1v\u00e1n\u00ed runner\u016f.<\/li>\n<li>Snadnost p\u0159id\u00e1v\u00e1n\u00ed \u00faloh.<\/li>\n<li>Jednoduch\u00e9 \u0159e\u0161en\u00ed konflikt\u016f.<\/li>\n<li>Spolehliv\u00fd bezpe\u010dnostn\u00ed syst\u00e9m.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dSlab\u00e9 str\u00e1nky GitLab CI\/CD<\/h3>\n<p><\/p>\n<ul>\n<li>Pro ka\u017edou \u00falohu je nutn\u00e9 popisovat a nahr\u00e1vat\/vyv\u00e1\u017eet artefakty.<\/li>\n<li>Nelze otestovat v\u00fdsledky slou\u010den\u00ed v\u011btv\u00ed p\u0159ed jejich skute\u010dn\u00fdm slou\u010den\u00edm.<\/li>\n<li>P\u0159i popisu f\u00e1z\u00ed CI\/CD pipeline nen\u00ed mo\u017en\u00e9 zat\u00edm vy\u010dlenit jednotliv\u00e9 etapy.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Z\u00e1v\u011bry<\/h2>\n<p>\nJak Jenkins, tak GitLab CI\/CD maj\u00ed sv\u00e9 siln\u00e9 a slab\u00e9 str\u00e1nky. Odpov\u011b\u010f na ot\u00e1zku, co vybrat, z\u00e1vis\u00ed na pot\u0159eb\u00e1ch a specifik\u00e1ch konkr\u00e9tn\u00edho projektu. Ka\u017ed\u00fd z dnes zkouman\u00fdch CI\/CD n\u00e1stroj\u016f m\u00e1 sv\u00e9 specifick\u00e9 vlastnosti, i kdy\u017e tyto n\u00e1stroje byly vyvinuty k \u0159e\u0161en\u00ed stejn\u00e9ho \u00fakolu. Jenkins je autonomn\u00ed n\u00e1stroj, zat\u00edmco GitLab CI\/CD je sou\u010d\u00e1st\u00ed platformy ur\u010den\u00e9 pro spolupr\u00e1ci na k\u00f3du.<\/p>\n<p>P\u0159i v\u00fdb\u011bru CI\/CD syst\u00e9mu je t\u0159eba krom\u011b jeho mo\u017enost\u00ed zohlednit tak\u00e9 n\u00e1klady, kter\u00e9 s n\u00edm mohou souviset, a to, s \u010d\u00edm jsou DevOps in\u017een\u00fd\u0159i zvykl\u00ed pracovat.<\/p>\n<p>Jak\u00e9 CI\/CD n\u00e1stroje pou\u017e\u00edv\u00e1te?<\/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=\"Bitva mezi Jenkins a 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=\"Bitva mezi Jenkins a GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/efaafe7301c2f6a2fb00a22e7a0fa41a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Bitva Jenkins a GitLab CI\/CD | ProHoster","description":"V posledn\u00edm desetilet\u00ed byly dosa\u017eeny v\u00fdznamn\u00e9 \u00fasp\u011bchy v oblasti v\u00fdvoje n\u00e1stroj\u016f pro kontinu\u00e1ln\u00ed integraci (Continuous Integration, CI) a kontinu\u00e1ln\u00ed dod\u00e1vky (Continuous Delivery, CD).","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/96161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=96161"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/96161\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/96162"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=96161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=96161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=96161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}