Brwydr Jenkins a GitLab CI/CD

Yn ystod y degawd diwethaf, mae datblygiadau sylweddol wedi'u gwneud o ran datblygu offer ar gyfer integreiddio parhaus (Integreiddio Parhaus, CI) a defnydd parhaus (Cyflenwi Parhaus, CD). Mae datblygu technolegau ar gyfer integreiddio datblygu a gweithredu meddalwedd (Gweithrediadau Datblygu, DevOps) wedi arwain at gynnydd cyflym yn y galw am offer CI / CD. Mae atebion presennol yn cael eu gwella'n gyson, gan geisio cadw i fyny â'r amseroedd, mae eu fersiynau newydd yn cael eu rhyddhau, ym myd meddalwedd sicrhau ansawdd (Sicrwydd Ansawdd, QA), mae llawer o gynhyrchion newydd yn ymddangos yn gyson. Gyda chymaint o ddewis, nid yw dewis yr offeryn cywir yn dasg hawdd.

Brwydr Jenkins a GitLab CI/CD

Ymhlith yr holl offer CI / CD presennol, mae dau brosiect sy'n bendant yn werth talu sylw i rywun sy'n chwilio am rywbeth o'r ardal hon. Yr ydym yn sôn am Jenkins a’r teclyn GitLab CI/CD, sy’n rhan o lwyfan GitLab. Mae gan Jenkins fwy na 16000 sêr ar GitHub. Sgoriodd ystorfa GitLab ar gitlab.com ychydig yn fwy 2000 ser. Os byddwn yn cymharu poblogrwydd y storfeydd, mae'n ymddangos bod Jenkins wedi sgorio 8 gwaith yn fwy o sêr na'r platfform, sy'n cynnwys GitLab CI / CD. Ond wrth ddewis offeryn CI / CD, mae hyn ymhell o fod yr unig ddangosydd y dylech roi sylw iddo. Mae digon o rai eraill, ac mae hyn yn esbonio pam mewn llawer o gymariaethau, mae Jenkins a GitLab CI/CD yn agos iawn at ei gilydd.

Cymerwch, er enghraifft, ddata o'r platfform G2, sy'n cronni adolygiadau o amrywiaeth eang o gynhyrchion a'r graddfeydd y mae defnyddwyr yn eu rhoi iddynt. Dyma'r sgôr gyfartalog Jenkins, yn seiliedig ar 288 o adolygiadau, yn 4,3 seren. O och GitLab mae yna 270 o adolygiadau, y sgôr gyfartalog ar gyfer yr offeryn hwn yw 4,4 seren. Ni fyddwn yn camgymryd wrth ddweud bod Jenkins a GitLab CI/CD yn cystadlu â’i gilydd ar delerau cyfartal. Mae’n ddiddorol nodi bod prosiect Jenkins wedi ymddangos yn 2011 ac ers hynny mae wedi bod yn hoff arf i brofwyr. Ond ar yr un pryd, mae'r prosiect GitLab CI / CD, a lansiwyd yn 2014, wedi cymryd ei safle, yn uchel iawn, diolch i'r nodweddion uwch a gynigir gan y platfform hwn.

Os soniwn am boblogrwydd Jenkins o’i gymharu â llwyfannau tebyg eraill, nodwn inni, ar ôl cyhoeddi erthygl yn cymharu llwyfannau Travis CI a Jenkins, drefnu arolwg. Cymerodd 85 o ddefnyddwyr ran ynddo. Gofynnwyd i ymatebwyr ddewis yr offeryn CI/CD y maent yn ei hoffi fwyaf. Dewisodd 79% Jenkins, dewisodd 5% Travis CI, a nododd 16% ei bod yn well ganddynt offer eraill.

Brwydr Jenkins a GitLab CI/CD
Canlyniadau pleidleisio

Ymhlith offer CI/CD eraill, soniwyd amlaf am GitLab CI/CD.

Os ydych chi o ddifrif am DevOps, yna mae angen i chi ddewis yr offer priodol yn ofalus, gan ystyried manylion y prosiect, ei gyllideb, a gofynion eraill. Er mwyn eich helpu i wneud y dewis cywir, rydym yn mynd i adolygu Jenkins a GitLab CI/CD. Gobeithio y bydd hyn yn eich helpu i wneud y dewis cywir.

Cyflwyniad i Jenkins

Brwydr Jenkins a GitLab CI/CD
Jenkins yn offeryn CI/CD hyblyg adnabyddus sydd wedi'i gynllunio i awtomeiddio llawer o dasgau sy'n ymwneud â phrosiectau meddalwedd. Mae Jenkins wedi'i ysgrifennu'n gyfan gwbl mewn Java a'i ryddhau o dan drwydded MIT. Mae ganddo set bwerus o nodweddion sydd â'r nod o awtomeiddio'r tasgau sy'n gysylltiedig ag adeiladu, profi, defnyddio, integreiddio a rhyddhau meddalwedd. Gellir defnyddio'r offeryn hwn ar systemau gweithredu amrywiol. Mae'r rhain yn cynnwys macOS, Windows, a llawer o ddosbarthiadau Linux fel OpenSUSE, Ubuntu, a Red Hat. Mae pecynnau gosod ar gyfer Jenkins wedi'u cynllunio ar gyfer OSes amrywiol, gellir gosod yr offeryn hwn ar Docker ac ar unrhyw system sydd â JRE (Java Runtime Environment).

Mae datblygwyr Jenkins wedi creu prosiect arall, Jenkins X, sydd wedi'i gynllunio i weithio mewn amgylchedd Kubernetes. Mae Jenkins X yn integreiddio Helm, Jenkins CI / CD Server, Kubernetes, ac offer eraill i adeiladu piblinellau CI / CD sy'n dilyn arferion gorau DevOps. Er enghraifft, defnyddir GitOps yma.

Gellir ychwanegu at y drysorfa o fanteision Jenkins y ffaith bod ei sgriptiau wedi'u strwythuro'n dda iawn, yn ddealladwy, ac yn hawdd eu darllen. Mae tîm Jenkins wedi creu tua 1000 o ategion sydd â'r nod o drefnu rhyngweithiad Jenkins ag amrywiaeth eang o dechnolegau. Gall sgriptiau ddefnyddio systemau dilysu, sydd, er enghraifft, yn caniatáu ichi gysylltu â systemau caeedig amrywiol.

Yn ystod gweithrediad piblinell Jenkins, gallwch arsylwi ar yr hyn sy'n digwydd ar bob cam, p'un a yw camau penodol o'r gwaith wedi'u cwblhau'n llwyddiannus ai peidio. Gallwch wylio hyn i gyd, fodd bynnag, heb ddefnyddio rhyngwyneb graffigol penodol, ond gan ddefnyddio galluoedd y derfynell.

Nodweddion Jenkins

Ymhlith nodweddion adnabyddus Jenkins mae rhwyddineb gosod, lefel uchel o awtomeiddio gweithrediadau amrywiol, a dogfennaeth ragorol. Os byddwn yn siarad am ddatrys tasgau DevOps, yna mae Jenkins yn cael ei ystyried yn offeryn dibynadwy iawn, gan ei ddefnyddio, fel rheol, nid yw'n gwneud unrhyw synnwyr i fonitro'r broses gyfan o brosesu prosiectau yn agos. Nid yw hyn yn wir gydag offer CI/CD eraill. Gadewch i ni siarad am rai o nodweddion pwysicaf Jenkins.

▍1. Cefnogaeth aml-lwyfan, ffynhonnell agored am ddim

Gall Jenkins redeg ar lwyfannau macOS, Windows a Linux. Gall hefyd weithredu mewn amgylchedd Docker, sy'n eich galluogi i drefnu gweithrediad unffurf a chyflym o dasgau awtomataidd. Gall yr offeryn hwn hefyd redeg fel servlet mewn cynwysyddion wedi'u galluogi gan Java fel Apache Tomcat a GlassFish. Gosod Jenkins yn ansoddol dogfenedig.

▍2. Datblygwyd ecosystem ategyn

Mae'n ymddangos bod ecosystem ategyn Jenkins yn llawer mwy aeddfed nag ecosystemau ategion offer CI / CD eraill. Ar hyn o bryd mae dros 1500 o ategion ar gyfer Jenkins. Mae'r ategion hyn wedi'u hanelu at ddatrys ystod eang o dasgau, gyda'u help gallwch chi awtomeiddio amrywiaeth o brosiectau. Mae'r cyfoeth o ategion rhad ac am ddim i ddewis ohonynt yn golygu os ydych chi'n defnyddio Jenkins, nid oes rhaid i chi brynu ategion drud â thâl. Mae yna bosibilrwydd integreiddio Jenkins gyda llawer o offer DevOps.

▍3. Gosodiad a gosodiad hawdd

Mae Jenkins yn weddol hawdd i'w osod a'i ffurfweddu. Ar yr un pryd, mae'r broses o ddiweddaru'r system hefyd yn gyfleus iawn. Yma, unwaith eto, mae'n werth sôn am ansawdd y ddogfennaeth, oherwydd ynddo gallwch ddod o hyd i atebion i amrywiaeth o gwestiynau yn ymwneud â gosod a ffurfweddu Jenkins.

▍4. Cymuned gyfeillgar

Fel y crybwyllwyd eisoes, mae Jenkins yn brosiect ffynhonnell agored, y mae ei ecosystem yn cynnwys nifer enfawr o ategion. Mae cymuned fawr o ddefnyddwyr a datblygwyr wedi datblygu o amgylch Jenkins i helpu i ddatblygu'r prosiect. Mae'r gymuned yn un o'r ffactorau sy'n gyrru datblygiad Jenkins.

▍5. Argaeledd REST API

Wrth weithio gyda Jenkins, gallwch ddefnyddio'r API REST, sy'n ehangu galluoedd y system. Cyflwynir API ar gyfer mynediad o bell i'r system mewn tair fersiwn: XML, JSON gyda chefnogaeth JSONP, Python. Yma Tudalen ddogfennaeth sy'n rhoi manylion am weithio gyda'r Jenkins REST API.

▍6. Cefnogaeth ar gyfer cyflawni tasgau yn gyfochrog

Mae Jenkins yn cefnogi paraleleiddio tasgau DevOps. Gellir ei integreiddio'n hawdd ag offer perthnasol a derbyn hysbysiadau am ganlyniadau tasgau. Gellir cyflymu profion cod trwy drefnu adeiladu cyfochrog o'r prosiect gan ddefnyddio gwahanol beiriannau rhithwir.

▍7. Cefnogaeth i waith mewn amgylcheddau gwasgaredig

Mae Jenkins yn caniatáu ichi drefnu adeiladau gwasgaredig gan ddefnyddio cyfrifiaduron lluosog. Mae'r nodwedd hon yn berthnasol mewn prosiectau mawr ac mae'n defnyddio cynllun gwaith, ac yn unol â hynny mae un gweinyddwr Jenkins meistr a nifer o beiriannau caethweision. Gellir defnyddio peiriannau caethweision hefyd mewn sefyllfaoedd lle mae angen trefnu profi prosiect mewn gwahanol amgylcheddau. Mae'r nodweddion hyn yn gosod Jenkins ar wahân i brosiectau tebyg eraill.

Cyflwyniad i GitLab

Brwydr Jenkins a GitLab CI/CD
GitLab CI/CD gellir ei alw'n un o'r offer DevOps mwyaf newydd a mwyaf annwyl. Mae'r offeryn ffynhonnell agored rhad ac am ddim hwn wedi'i ymgorffori yn system rheoli fersiwn GitLab. Mae gan blatfform GitLab fersiwn gymunedol, mae'n cefnogi rheoli cadwrfeydd, offer olrhain materion, trefniadaeth adolygu cod, mecanweithiau sy'n canolbwyntio ar ddogfennaeth. Gall cwmnïau osod GitLab yn lleol, gan ei gysylltu â gweinyddwyr Active Directory a LDAP ar gyfer awdurdodi a dilysu defnyddwyr yn ddiogel.

Yma Tiwtorial fideo i'ch helpu chi i ddysgu sut i greu piblinellau CI/CD gan ddefnyddio galluoedd GitLab CI/CD.

Rhyddhawyd GitLab CI/CD yn wreiddiol fel prosiect annibynnol, ond yn 2015 cafodd y set hon o offer ei hintegreiddio i GitLab 8.0. Gall un gweinydd GitLab CI/CD gefnogi dros 25000 o ddefnyddwyr. Yn seiliedig ar weinyddion o'r fath, gallwch greu systemau sydd ar gael yn fawr.

Mae GitLab CI/CD a phrif brosiect GitLab wedi'u hysgrifennu yn Ruby and Go. Maent yn cael eu rhyddhau o dan y drwydded MIT. Mae GitLab CI/CD, yn ogystal â nodweddion arferol offer CI/CD, hefyd yn cefnogi nodweddion ychwanegol sy'n gysylltiedig, er enghraifft, ag amserlennu gwaith.

Mae'n hawdd iawn integreiddio GitLab CI/CD mewn prosiect. Wrth ddefnyddio GitLab CI/CD, rhennir y broses brosesu cod prosiect yn gamau, a gall pob un ohonynt gynnwys sawl tasg a gyflawnir mewn trefn benodol. Gellir mireinio tasgau.

Gall tasgau redeg yn gyfochrog. Ar ôl sefydlu'r dilyniant o gamau a thasgau, mae'r biblinell CI/CD yn barod i fynd. Gallwch fonitro ei gynnydd trwy fonitro statws tasgau. O ganlyniad, mae defnyddio GitLab CI / CD yn gyfleus iawn, efallai'n fwy cyfleus nag offer tebyg eraill.

Nodweddion GitLab CI/CD a GitLab

GitLab CI/CD yw un o'r offer DevOps mwyaf poblogaidd. Mae'r prosiect yn cael ei wahaniaethu gan ddogfennaeth o ansawdd uchel, mae ei nodweddion yn hawdd ac yn gyfleus i'w defnyddio. Os nad ydych eto'n gyfarwydd â GitLab CI/CD, bydd y rhestr ganlynol o nodweddion yr offeryn hwn yn rhoi syniad cyffredinol i chi o'r hyn y gallwch ei ddisgwyl ganddo. Dylid nodi bod llawer o'r nodweddion hyn yn gysylltiedig â'r platfform GitLab ei hun, y mae GitLab CI / CD wedi'i integreiddio ynddo.

▍1. Poblogrwydd

Offeryn cymharol newydd yw GitLab CI/CD sydd wedi cael ei ddefnyddio'n eang. Mae GitLab CI/CD wedi dod yn offeryn CI/CD hynod boblogaidd a ddefnyddir ar gyfer profi awtomataidd a defnyddio meddalwedd. Mae'n syml i'w sefydlu. Mae hefyd yn offeryn CI / CD am ddim sydd wedi'i ymgorffori yn y platfform GitLab.

▍2. Cefnogaeth i GitLab Pages a Jekyll

Mae Jekyll yn gynhyrchydd safle sefydlog y gellir ei ddefnyddio o fewn system GitLab Pages i greu safleoedd yn seiliedig ar gadwrfeydd GitLab. Mae'r system yn cymryd y deunyddiau ffynhonnell ac yn cynhyrchu safle sefydlog parod yn seiliedig arnynt. Gallwch reoli ymddangosiad a nodweddion gwefannau o'r fath trwy olygu'r ffeil _config.yml, a ddefnyddir gan Jekyll.

▍3. Galluoedd cynllunio prosiect

Diolch i'r gallu i gynllunio camau prosiectau, mae hwylustod olrhain problemau a'u grwpiau yn cynyddu. Mae hyn yn eich galluogi i reoli trefniadaeth gwaith ar brosiectau, cynllunio eu gweithredu ar ddyddiad penodol.

▍4. Graddio rhedwyr CI yn awtomatig

Diolch i raddfa awtomatig y rhedwyr sy'n gyfrifol am gyflawni tasgau penodol, gallwch arbed llawer ar y gost o rentu galluoedd gweinydd. Mae hyn yn bwysig iawn, yn enwedig o ran amgylcheddau lle mae prosiectau'n cael eu profi ochr yn ochr. Yn ogystal, mae hyn yn bwysig ar gyfer prosiectau mawr sy'n cynnwys nifer o ystorfeydd.

▍5. Offer olrhain problemau

Mae galluoedd olrhain materion pwerus GitLab wedi arwain llawer o brosiectau ffynhonnell agored i ddefnyddio'r platfform. Mae GitLab CI/CD yn caniatáu profion cyfochrog ar wahanol ganghennau cod. Mae canlyniadau profion yn cael eu dadansoddi'n gyfleus yn rhyngwyneb y system. Mae hyn yn gosod GitLab CI/CD ar wahân i Jenkins.

▍6. Cyfyngu mynediad i gadwrfeydd

Mae platfform GitLab yn cefnogi cyfyngu mynediad i gadwrfeydd. Er enghraifft, gellir rhoi caniatâd priodol i'w rolau i'r rhai sy'n cydweithio ar brosiect mewn cadwrfa. Mae hyn yn arbennig o wir ar gyfer prosiectau corfforaethol.

▍7. Cefnogaeth gymunedol weithredol

Mae cymuned weithgar wedi datblygu o amgylch GitLab, sy'n cyfrannu at ddatblygiad y platfform hwn a'i offer, yn arbennig, GitLab CI / CD. Mae integreiddio dwfn GitLab CI/CD a GitLab, ymhlith pethau eraill, yn ei gwneud hi'n hawdd dod o hyd i atebion i gwestiynau sy'n codi wrth weithio gyda GitLab CI/CD.

▍8. Cefnogaeth i systemau rheoli fersiynau amrywiol

Mae GitLab CI/CD yn system a all weithio gyda mwy na chod yn unig a gynhelir yn storfeydd GitLab. Er enghraifft, gellir storio'r cod mewn ystorfa GitHub, a gellir trefnu'r biblinell CI / CD ar sail GitLab gan ddefnyddio GitLab CI / CD.

Cymhariaeth o CI/CD Jenkins a GitLab

Mae Jenkins a GitLab CI/CD yn offer da iawn, y ddau yn gallu gwneud i'r biblinell CI/CD redeg yn esmwyth. Ond os cymharwch nhw, mae'n ymddangos, er eu bod yn debyg mewn sawl ffordd, eu bod yn wahanol i'w gilydd mewn rhai ffyrdd.

Nodweddu
Jenkins
GitLab CI/CD

Ffynhonnell agored neu ffynhonnell gaeedig
ffynhonnell agor
ffynhonnell agor

Gosod
Angenrheidiol.
Nid yw'n ofynnol gan fod hon yn nodwedd adeiledig o'r platfform GitLab.

Nodweddion Unigryw
Cefnogaeth ategyn.
Integreiddio dwfn i system rheoli fersiwn.

Cymorth
Mae ar goll.
Ar gael.

Gosod a chyfluniad
Nid yw anawsterau yn achosi
Nid yw anawsterau yn achosi

Hunan-leoli'r system
Dyma'r unig ffordd i ddefnyddio'r system.
Cefnogwyd.

Creu Piblinellau CI/CD
Wedi'i gefnogi, gan ddefnyddio Piblinell Jenkins.
Cefnogwyd.

Monitro perfformiad ceisiadau
Mae ar goll.
Ar gael.

Ecosystem
Mae yna dros 1000 o ategion.
Mae'r system yn cael ei datblygu o fewn GitLab.

API
Yn cefnogi system API uwch.
Yn cynnig API ar gyfer integreiddio dyfnach i brosiectau.

Cefnogaeth JavaScript
Ar gael.
Ar gael.

Integreiddio ag offer eraill
Cefnogir integreiddio ag offer a llwyfannau eraill (Slack, GitHub).
Llawer o offer ar gyfer integreiddio â systemau trydydd parti, yn arbennig - gyda GitHub a Kubernetes.

Rheoli ansawdd cod
Wedi'i gefnogi - gan ddefnyddio'r ategyn SonarQube ac ategion eraill.
Cefnogwyd.

Gwahaniaethau rhwng Jenkins a GitLab CI/CD

Ar ôl disgrifio a chymharu Jenkins a GitLab CI/CD, gadewch i ni ganolbwyntio ar y gwahaniaethau rhwng yr offer DevOps hyn. Bydd gwybod y gwahaniaethau hyn yn eich helpu i ddeall y rhai y mae'n well ganddynt un o'r offer hyn dros y llall.

  • Gall GitLab CI/CD reoli storfeydd Git yn llawn. Rydym yn sôn am reoli canghennau ystorfa a rhai nodweddion eraill. Ond nid yw Jenkins, er ei fod yn gallu gweithio gydag ystorfeydd, yn rhoi'r un lefel o reolaeth drostynt â GitLab CI / CD.
  • Mae Jenkins yn brosiect ffynhonnell agored am ddim. Mae'r sawl sy'n ei ddewis yn ei ddefnyddio'n annibynnol. Ac mae GitLab CI / CD wedi'i gynnwys yn y platfform GitLab, mae hwn yn ddatrysiad un contractwr.
  • Mae GitLab CI/CD yn cefnogi offer rheoli tasgau uwch sy'n gweithio ar lefel prosiect. Mae'r ochr hon i Jenkins yn llai datblygedig.

Jenkins a GitLab CI/CD: cryfderau a gwendidau

Nawr mae gennych chi ryw syniad am Jenkins a GitLab CI/CD. Nawr, er mwyn i chi ddod yn fwy cyfarwydd â'r offer hyn, gadewch i ni edrych ar eu cryfderau a'u gwendidau. Rydym yn cymryd yn ganiataol eich bod eisoes wedi penderfynu pa offeryn sydd ei angen arnoch. Gobeithio y bydd yr adran hon yn caniatáu ichi brofi'ch hun.

▍ Cryfderau Jenkins

  • Nifer fawr o ategion.
  • Rheolaeth lawn dros osod offer.
  • Dadfygio rhedwyr yn syml.
  • Gosodiad nod hawdd.
  • Defnydd cod hawdd.
  • System rheoli cymwysterau da iawn.
  • Hyblygrwydd ac amlbwrpasedd.
  • Cefnogaeth i ieithoedd rhaglennu amrywiol.
  • Mae'r system yn ddealladwy ar lefel reddfol.

▍ Gwendidau Jenkins

  • Gall fod yn anodd defnyddio ategion.
  • Wrth ddefnyddio Jenkins mewn prosiectau bach, gall yr amser sydd ei angen i'w ffurfweddu eich hun fod yn afresymol o fawr.
  • Diffyg gwybodaeth ddadansoddol gyffredinol ar gadwyni CI/CD.

▍ Cryfderau GitLab CI/CD

  • Integreiddiad da gyda Docker.
  • Graddio rhedwyr yn syml.
  • Cyflawni tasgau cyfochrog sy'n rhan o gamau'r biblinell CI/CD.
  • Defnyddio'r model graff acyclic cyfeiriedig wrth sefydlu perthnasoedd tasg.
  • Lefel uchel o scalability oherwydd y posibilrwydd o ddienyddio rhedwyr yn gyfochrog.
  • Rhwyddineb ychwanegu tasgau.
  • Datrys gwrthdaro syml.
  • System ddiogelwch ddibynadwy.

▍ Gwendidau GitLab CI/CD

  • Ar gyfer pob tasg, mae angen i chi ddisgrifio a llwytho / lawrlwytho arteffactau.
  • Ni allwch brofi canlyniadau uno canghennau cyn iddynt gael eu huno mewn gwirionedd.
  • Wrth ddisgrifio camau'r biblinell CI / CD, nid yw'n bosibl nodi camau unigol ynddynt eto.

Canlyniadau

Mae gan Jenkins a GitLab CI/CD gryfderau a gwendidau. Mae'r ateb i'r cwestiwn beth i'w ddewis yn dibynnu ar anghenion a nodweddion prosiect penodol. Mae gan bob un o'r offer CI/CD a adolygwyd heddiw rai nodweddion, er bod yr offer hyn wedi'u creu i ddatrys yr un broblem. Ar yr un pryd, mae Jenkins yn offeryn annibynnol, ac mae GitLab CI / CD yn rhan o lwyfan a gynlluniwyd ar gyfer cydweithredu ar god.

Wrth ddewis system CI / CD, yn ogystal â'i alluoedd, mae'n werth cymryd i ystyriaeth y costau a allai fod yn gysylltiedig ag ef, a beth yn union y mae peirianwyr DevOps sy'n cefnogi'r prosiect wedi arfer gweithio gyda nhw.

Pa offer CI/CD ydych chi'n eu defnyddio?

Brwydr Jenkins a GitLab CI/CD

Brwydr Jenkins a GitLab CI/CD

Ffynhonnell: hab.com

Ychwanegu sylw