Á 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ð.
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
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
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.
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
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
▍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
▍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.
▍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
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 þú?
Heimild: www.habr.com