Orrustan við Jenkins og GitLab CI/CD

Á síðasta áratug hafa verulegar framfarir orðið í þróun tækja fyrir samfellda samþættingu (Continuous Integration, CI) og stöðuga dreifingu (Continuous Delivery, CD). Þróun tækni til að samþætta hugbúnaðarþróun og rekstur (Development Operations, DevOps) hefur leitt til örrar aukningar á eftirspurn eftir CI / CD verkfærum. Núverandi lausnir eru stöðugt endurbættar, reynt að fylgjast með tímanum, nýjar útgáfur þeirra eru gefnar út, í heimi gæðatryggingarhugbúnaðar (Quality Assurance, QA) koma stöðugt fram margar nýjar vörur. Með svo mikið úrval er ekki auðvelt verk að velja rétta tólið.

Orrustan við Jenkins og GitLab CI/CD

Meðal allra núverandi CI / CD tóla eru tvö verkefni sem er örugglega þess virði að gefa einhverjum gaum sem er að leita að einhverju frá þessu svæði. Við erum að tala um Jenkins og GitLab CI / CD tólið, sem er hluti af GitLab pallinum. Jenkins hefur meira en 16000 stjörnur á GitHub. GitLab geymslan á gitlab.com skoraði aðeins meira 2000 stjörnur. Ef við berum saman vinsældir geymslanna kemur í ljós að Jenkins fékk 8 sinnum fleiri stjörnur en pallurinn, sem inniheldur GitLab CI / CD. En þegar þú velur CI / CD tól er þetta langt frá því að vera eina vísbendingin sem þú ættir að borga eftirtekt til. Það eru fullt af öðrum, og þetta útskýrir hvers vegna í mörgum samanburði eru Jenkins og GitLab CI / CD mjög nálægt hvort öðru.

Tökum sem dæmi gögn frá G2 pallinum, sem safnar saman umsögnum um fjölbreytt úrval af vörum og einkunnum sem notendur gefa þeim. Hér er meðaleinkunn Jenkins, byggt á 288 umsögnum, er 4,3 stjörnur. Ó ó GitLab það eru 270 umsagnir, meðaleinkunn fyrir þetta tól er 4,4 stjörnur. Við munum ekki skjátlast þegar við segjum að Jenkins og GitLab CI / CD keppa sín á milli á jöfnum forsendum. Það er athyglisvert að Jenkins verkefnið birtist árið 2011 og síðan þá hefur það verið uppáhalds tól prófunaraðila. En á sama tíma hefur GitLab CI / CD verkefnið, hleypt af stokkunum árið 2014, tekið stöðu sína, mjög hátt, þökk sé háþróaðri eiginleikum sem þessi vettvangur býður upp á.

Ef við tölum um vinsældir Jenkins í samanburði við aðra svipaða vettvang, tökum við eftir því að við, eftir að hafa birt grein þar sem Travis CI og Jenkins pallarnir voru bornir saman, gerðum könnun. 85 notendur tóku þátt í henni. Svarendur voru beðnir um að velja CI/CD tólið sem þeim líkaði best við. 79% völdu Jenkins, 5% völdu Travis CI og 16% sögðust kjósa önnur verkfæri.

Orrustan við Jenkins og GitLab CI/CD
Niðurstöður skoðanakönnunar

Meðal annarra CI/CD verkfæra var GitLab CI/CD oftast nefnd.

Ef þér er alvara með DevOps, þá þarftu að velja vandlega viðeigandi verkfæri, að teknu tilliti til sérstöðu verkefnisins, fjárhagsáætlunar þess og annarra krafna. Til að hjálpa þér að velja rétt ætlum við að fara yfir Jenkins og GitLab CI/CD. Þetta mun vonandi hjálpa þér að velja rétt.

Kynning á Jenkins

Orrustan við Jenkins og GitLab CI/CD
Jenkins er vel þekkt, sveigjanlegt CI/CD tól sem er hannað til að gera mörg verkefni sem tengjast hugbúnaðarverkefnum sjálfvirk. Jenkins er alfarið skrifað á Java og gefið út undir MIT leyfinu. Það hefur öflugt sett af eiginleikum sem miða að því að gera sjálfvirk verkefni sem tengjast því að byggja, prófa, dreifa, samþætta og gefa út hugbúnað. Þetta tól er hægt að nota á ýmsum stýrikerfum. Þar á meðal eru macOS, Windows og margar Linux dreifingar eins og OpenSUSE, Ubuntu og Red Hat. Það eru uppsetningarpakkar fyrir Jenkins hannaðir fyrir ýmis stýrikerfi, þetta tól er hægt að setja upp á Docker og á hvaða kerfi sem er með JRE (Java Runtime Environment).

Jenkins verktaki hafa búið til annað verkefni, Jenkins X, sem er hannað til að vinna í Kubernetes umhverfi. Jenkins X samþættir Helm, Jenkins CI/CD netþjóninn, Kubernetes og önnur verkfæri til að byggja upp CI/CD leiðslur sem fylgja bestu starfsvenjum DevOps. Til dæmis er GitOps notað hér.

Það má bæta við fjársjóð kostanna við Jenkins að handrit þess eru mjög vel uppbyggð, skiljanleg og auðlesin. Jenkins teymið hefur búið til um 1000 viðbætur sem miða að því að skipuleggja samskipti Jenkins við margs konar tækni. Forskriftir geta notað auðkenningarkerfi, sem gerir þér til dæmis kleift að tengjast ýmsum lokuðum kerfum.

Við rekstur Jenkins-leiðslunnar geturðu fylgst með hvað gerist í hverju skrefi, hvort ákveðnum stigum verksins hefur verið lokið með góðum árangri eða ekki. Þú getur horft á þetta allt, þó án þess að nota ákveðið grafískt viðmót, heldur nota möguleika flugstöðvarinnar.

Eiginleikar Jenkins

Meðal þekktra eiginleika Jenkins eru auðveld uppsetning, mikil sjálfvirkni í ýmsum aðgerðum og framúrskarandi skjöl. Ef við tölum um að leysa DevOps verkefni, þá er Jenkins hér álitið mjög áreiðanlegt tól, sem notar sem reglu, það er ekkert vit í að fylgjast náið með öllu ferli verkefnavinnslu. Þetta er ekki raunin með önnur CI/CD verkfæri. Við skulum tala um nokkra af mikilvægustu eiginleikum Jenkins.

▍1. Ókeypis, opinn uppspretta, fjölvettvangur stuðningur

Jenkins getur keyrt á macOS, Windows og Linux kerfum. Það getur líka virkað í Docker umhverfi, sem gerir þér kleift að skipuleggja samræmda og hraðvirka framkvæmd sjálfvirkra verkefna. Þetta tól getur einnig keyrt sem servlet í Java-gerum gámum eins og Apache Tomcat og GlassFish. Uppsetning Jenkins eigindlega skjalfest.

▍2. Þróað vistkerfi viðbætur

Vistkerfi Jenkins viðbætur virðist vera mun þroskaðara en vistkerfi viðbætur annarra CI/CD verkfæra. Það eru nú yfir 1500 viðbætur fyrir Jenkins. Þessar viðbætur miða að því að leysa margs konar verkefni, með hjálp þeirra geturðu sjálfvirkt margs konar verkefni. Mikið af ókeypis viðbótum til að velja úr þýðir að ef þú ert að nota Jenkins þarftu ekki að kaupa dýr greidd viðbætur. Það er möguleiki samþættingu Jenkins með mörgum DevOps verkfærum.

▍3. Auðveld uppsetning og uppsetning

Jenkins er frekar auðvelt að setja upp og stilla. Á sama tíma er ferlið við að uppfæra kerfið líka mjög þægilegt. Hér er aftur rétt að minnast á gæði skjala, þar sem í þeim er að finna svör við ýmsum spurningum sem tengjast uppsetningu og stillingu Jenkins.

▍4. Vingjarnlegt samfélag

Eins og áður hefur komið fram er Jenkins opinn uppspretta verkefni, vistkerfi sem inniheldur gríðarlegan fjölda viðbætur. Stórt samfélag notenda og þróunaraðila hefur þróast í kringum Jenkins til að hjálpa til við að þróa verkefnið. Samfélagið er einn af þeim þáttum sem knýr þróun Jenkins.

▍5. Framboð REST API

Þegar þú vinnur með Jenkins geturðu notað REST API, sem stækkar getu kerfisins. API fyrir fjaraðgang að kerfinu er kynnt í þremur útgáfum: XML, JSON með JSONP stuðningi, Python. Hér Skjalasíða sem fjallar um upplýsingar um að vinna með Jenkins REST API.

▍6. Stuðningur við samhliða framkvæmd verkefna

Jenkins styður samhliða DevOps verkefnum. Það er auðvelt að samþætta það við viðeigandi verkfæri og fá tilkynningar um niðurstöður verkefna. Hægt er að flýta fyrir kóðaprófun með því að skipuleggja samhliða byggingu verkefnisins með því að nota mismunandi sýndarvélar.

▍7. Stuðningur við vinnu í dreifðu umhverfi

Jenkins gerir þér kleift að skipuleggja dreifðar byggingar með því að nota margar tölvur. Þessi eiginleiki á við í stórum verkefnum og notar vinnukerfi, samkvæmt því er einn aðal Jenkins netþjónn og nokkrar þrælavélar. Þrælavélar geta einnig verið notaðar við aðstæður þar sem nauðsynlegt er að skipuleggja prófun á verkefni í mismunandi umhverfi. Þessir eiginleikar aðgreina Jenkins frá öðrum svipuðum verkefnum.

Kynning á GitLab

Orrustan við Jenkins og GitLab CI/CD
GitLab CI/CD má kalla eitt af nýjustu og ástsælustu DevOps verkfærunum. Þetta ókeypis opna tól er innbyggt í GitLab útgáfustýringarkerfið. GitLab vettvangurinn er með samfélagsútgáfu, hann styður geymslustjórnun, verkfæri til að rekja útgáfur, skipulagningu endurskoðunar kóða, skjalamiðaða kerfi. Fyrirtæki geta sett upp GitLab á staðnum, tengt það við Active Directory og LDAP netþjóna fyrir örugga notendaheimild og auðkenningu.

Hér Kennslumyndband til að hjálpa þér að læra hvernig á að búa til CI/CD leiðslur með því að nota GitLab CI/CD getu.

GitLab CI/CD var upphaflega gefið út sem sjálfstætt verkefni, en árið 2015 var þetta sett af verkfærum samþætt í GitLab 8.0. Einn GitLab CI/CD þjónn getur stutt yfir 25000 notendur. Byggt á slíkum netþjónum geturðu búið til kerfi sem eru mjög fáanleg.

GitLab CI/CD og aðal GitLab verkefnið eru skrifuð í Ruby and Go. Þau eru gefin út undir MIT leyfinu. GitLab CI/CD, auk venjulegra eiginleika CI/CD verkfæra, styðja einnig viðbótareiginleika sem tengjast, til dæmis, vinnuáætlun.

Það er mjög auðvelt að samþætta GitLab CI/CD í verkefni. Þegar GitLab CI/CD er notað er verkefnakóðavinnsluferlinu skipt í þrep sem hvert um sig getur samanstaðið af nokkrum verkefnum sem eru unnin í ákveðinni röð. Hægt er að fínstilla verkefni.

Verkefni geta keyrt samhliða. Eftir að hafa sett upp röð þrepa og verkefna er CI/CD leiðslan tilbúin til notkunar. Þú getur fylgst með framvindu þess með því að fylgjast með stöðu verkefna. Þess vegna er mjög þægilegt að nota GitLab CI / CD, kannski þægilegra en önnur svipuð verkfæri.

Eiginleikar GitLab CI/CD og GitLab

GitLab CI/CD er eitt af vinsælustu DevOps verkfærunum. Verkefnið einkennist af hágæða skjölum, eiginleikar þess eru auðveldir og þægilegir í notkun. Ef þú ert ekki enn kunnugur GitLab CI/CD mun eftirfarandi listi yfir eiginleika þessa tóls gefa þér almenna hugmynd um hvers þú getur búist við af því. Það skal tekið fram að margir af þessum eiginleikum tengjast GitLab pallinum sjálfum, þar sem GitLab CI / CD er samþættur.

▍1. Vinsældir

GitLab CI/CD er tiltölulega nýtt tól sem hefur fengið útbreidda notkun. GitLab CI/CD hefur hægt og rólega orðið gríðarlega vinsælt CI/CD tól notað fyrir sjálfvirkar prófanir og dreifingu hugbúnaðar. Það er einfalt að setja upp. Það er líka ókeypis CI/CD tól innbyggt í GitLab vettvang.

▍2. Stuðningur við GitLab síður og Jekyll

Jekyll er kyrrstæður síða rafall sem hægt er að nota innan GitLab Pages kerfisins til að búa til síður byggðar á GitLab geymslum. Kerfið tekur frumefnin og býr til tilbúna kyrrstöðusíðu sem byggir á þeim. Þú getur stjórnað útliti og eiginleikum slíkra vefsvæða með því að breyta skránni _config.yml, notað af Jekyll.

▍3. Verkefnaáætlunargeta

Þökk sé getu til að skipuleggja áfanga verkefna eykst þægindin við að fylgjast með vandamálum og hópum þeirra. Þetta gerir þér kleift að stjórna skipulagi vinnu við verkefni, skipuleggja framkvæmd þeirra á tilteknum degi.

▍4. Sjálfvirk stigstærð CI hlaupara

Þökk sé sjálfvirkri mælingu hlaupara sem bera ábyrgð á að framkvæma ákveðin verkefni, geturðu sparað mikið á kostnaði við að leigja netþjónsgetu. Þetta er mjög mikilvægt, sérstaklega þegar kemur að umhverfi þar sem verkefni eru prófuð samhliða. Að auki er þetta mikilvægt fyrir stór verkefni sem samanstanda af nokkrum geymslum.

▍5. Gefðu út mælingartæki

Öflugur mælingargeta GitLab hefur leitt til þess að mörg opinn hugbúnaður hefur notað vettvanginn. GitLab CI/CD leyfir samhliða prófun á mismunandi kóðagreinum. Prófunarniðurstöður eru greindar á þægilegan hátt í kerfisviðmótinu. Þetta aðgreinir GitLab CI/CD frá Jenkins.

▍6. Að takmarka aðgang að geymslum

GitLab vettvangurinn styður takmarkanir á aðgangi að geymslum. Til dæmis er hægt að úthluta þeim sem vinna að verkefni í geymslu heimildum sem henta hlutverkum þeirra. Þetta á sérstaklega við um fyrirtækjaverkefni.

▍7. Virkur samfélagsstuðningur

Virkt samfélag hefur þróast í kringum GitLab, sem stuðlar að þróun þessa vettvangs og verkfæra hans, einkum GitLab CI / CD. Djúp samþætting GitLab CI/CD og GitLab, meðal annars, gerir það auðvelt að finna svör við spurningum sem vakna þegar unnið er með GitLab CI/CD.

▍8. Stuðningur við ýmis útgáfustýringarkerfi

GitLab CI/CD er kerfi sem getur unnið með meira en bara kóða sem hýst er í GitLab geymslum. Til dæmis er hægt að geyma kóðann í GitHub geymslu og CI / CD leiðsluna er hægt að skipuleggja á grundvelli GitLab með því að nota GitLab CI / CD.

Samanburður á Jenkins og GitLab CI/CD

Jenkins og GitLab CI/CD eru mjög góð verkfæri, sem bæði eru fær um að láta CI/CD leiðsluna ganga snurðulaust. En ef við berum þær saman kemur í ljós að þótt þær séu að mörgu leyti líkar, þá eru þær að sumu leyti ólíkar.

Lýsing
Jenkins
GitLab CI/CD

Opinn uppspretta eða lokaður uppspretta
opinn uppspretta
opinn uppspretta

Uppsetning
Áskilið.
Ekki krafist þar sem þetta er innbyggður eiginleiki GitLab vettvangsins.

Einstakir eiginleikar
Stuðningur við viðbót.
Djúp samþætting í útgáfustýringarkerfi.

Stuðningur
Vantar.
Laus.

Uppsetning og stillingar
Erfiðleikar valda ekki
Erfiðleikar valda ekki

Sjálfdreifing kerfisins
Þetta er eina leiðin til að nota kerfið.
Stuðningur.

Að búa til CI/CD leiðslur
Stuðningur, með Jenkins Pipeline.
Stuðningur.

Eftirlit með frammistöðu umsókna
Vantar.
Laus.

Vistkerfi
Það eru yfir 1000 viðbætur.
Kerfið er í þróun innan GitLab.

API
Styður háþróað API kerfi.
Býður upp á API fyrir dýpri samþættingu í verkefni.

JavaScript stuðningur
Laus.
Laus.

Samþætting við önnur tæki
Samþætting við önnur tæki og vettvang er studd (Slack, GitHub).
Mörg verkfæri til samþættingar við þriðja aðila kerfi, sérstaklega - með GitHub og Kubernetes.

Gæðaeftirlit með kóða
Styður - með því að nota SonarQube viðbótina og önnur viðbætur.
Stuðningur.

Munur á Jenkins og GitLab CI/CD

Eftir að hafa lýst og borið saman Jenkins og GitLab CI/CD skulum við einbeita okkur að muninum á þessum DevOps verkfærum. Að þekkja þennan mun mun hjálpa þér að skilja þá sem kjósa eitt af þessum verkfærum fram yfir hitt.

  • GitLab CI/CD getur fullkomlega stjórnað Git geymslum. Við erum að tala um stjórnun geymsluútibúa og nokkra aðra eiginleika. En Jenkins, þó það geti unnið með geymslum, veitir ekki sömu stjórn á þeim og GitLab CI / CD.
  • Jenkins er ókeypis opinn uppspretta verkefni. Sá sem velur það sendir það sjálfstætt út. Og GitLab CI / CD er innifalinn í GitLab pallinum, þetta er turnkey lausn.
  • GitLab CI/CD styður háþróuð verkefnastjórnunarverkfæri sem vinna á verkefnastigi. Þessi hlið Jenkins er minna þróuð.

Jenkins og GitLab CI/CD: styrkleikar og veikleikar

Nú hefurðu hugmynd um Jenkins og GitLab CI/CD. Nú, til að kynnast þessum verkfærum enn betur, skulum við kíkja á styrkleika þeirra og veikleika. Við gerum ráð fyrir að þú hafir þegar ákveðið hvaða tól þú þarft. Vonandi mun þessi hluti leyfa þér að prófa sjálfan þig.

▍ Styrkleikar Jenkins

  • Mikill fjöldi viðbóta.
  • Full stjórn á uppsetningu verkfæra.
  • Einföld kembiforrit á hlaupurum.
  • Auðveld hnútuppsetning.
  • Auðveld uppsetning kóða.
  • Mjög gott skilríkisstjórnunarkerfi.
  • Sveigjanleiki og fjölhæfni.
  • Stuðningur við ýmis forritunarmál.
  • Kerfið er skiljanlegt á leiðandi stigi.

▍Veikleikar Jenkins

  • Viðbætur geta verið erfiðar í notkun.
  • Þegar Jenkins er notað í litlum verkefnum getur tíminn sem þarf til að stilla það sjálfur verið óeðlilega mikill.
  • Skortur á almennum greiningarupplýsingum um CI/CD keðjur.

▍ Styrkleikar GitLab CI/CD

  • Góð samþætting við Docker.
  • Einföld skalun hlaupara.
  • Samhliða framkvæmd verkefna sem eru hluti af stigum CI/CD leiðslunnar.
  • Notkun stýrða óhringlaga línuritslíkansins við uppsetningu verkefnasambanda.
  • Mikið stigstærðarstig vegna möguleika á samhliða framkvæmd hlaupara.
  • Auðvelt að bæta við verkefnum.
  • Einföld ágreiningslausn.
  • Áreiðanlegt öryggiskerfi.

▍ Veikleikar GitLab CI/CD

  • Fyrir hvert verkefni þarftu að lýsa og hlaða upp / hlaða niður gripum.
  • Þú getur ekki prófað niðurstöður sameiningar útibúa áður en þær eru raunverulega sameinaðar.
  • Þegar stigum CI / CD leiðslunnar er lýst er ekki enn hægt að útskýra einstök stig í þeim.

Niðurstöður

Bæði Jenkins og GitLab CI/CD hafa styrkleika og veikleika. Svarið við spurningunni um hvað á að velja fer eftir þörfum og eiginleikum tiltekins verkefnis. Hvert CI/CD verkfæra sem farið er yfir í dag hefur ákveðna eiginleika, þó að þessi verkfæri hafi verið búin til til að leysa sama vandamál. Á sama tíma er Jenkins sjálfstætt tól og GitLab CI / CD er hluti af vettvangi sem er hannaður til að vinna með kóða.

Þegar þú velur CI / CD kerfi, auk getu þess, er vert að taka tillit til kostnaðar sem kann að fylgja því og hvað nákvæmlega DevOps verkfræðingar sem styðja verkefnið eru vanir að vinna með.

Hvaða CI/CD verkfæri notar þú?

Orrustan við Jenkins og GitLab CI/CD

Orrustan við Jenkins og GitLab CI/CD

Heimild: www.habr.com

Bæta við athugasemd