Tobankii sano ee la soo dhaafay, horumarro la taaban karo ayaa laga sameeyay horumarinta qalabyada is dhexgalka joogtada ah (Is-dhexgalka joogtada ah, CI) iyo sii daynta joogtada ah (Delivery Continuous, CD). Horumarinta tignoolajiyada ee isku dhafka horumarinta software iyo hawlgalka (Howlaha Horumarinta, DevOps) ayaa horseeday koror degdeg ah baahida qalabka CI / CD. Xalalka jira ayaa si joogto ah loo wanaajiyaa, iyagoo isku dayaya in ay la socdaan wakhtiyada, noocyadooda cusub ayaa la sii daayaa, adduunka tayada tayada tayada leh (Quality Assurance, QA), alaabooyin badan oo cusub ayaa si joogto ah u muuqda. Iyada oo hantida noocaas ah ee doorashada, doorashada qalabka saxda ah ma aha hawl fudud.
Dhammaan agabyada CI / CD ee jira, waxaa jira laba mashruuc oo runtii mudan in fiiro gaar ah loo yeesho qof wax ka raadinaya meeshan. Waxaan ka hadleynaa Jenkins iyo qalabka GitLab CI / CD, kaas oo qayb ka ah madal GitLab ah. Jenkins wuxuu leeyahay wax ka badan
Qaado, tusaale ahaan, xogta laga helay madal G2, taas oo ururisa dib u eegista alaabooyin kala duwan oo kala duwan iyo qiimaynta ay isticmaalayaashu siiyaan. Waa kan celceliska qiimaynta
Haddii aan ka hadalno caannimada Jenkins marka la barbar dhigo aaladaha kale ee la midka ah, waxaan ogaanay inaan, markii aan daabacnay maqaal isbarbar dhigaya aaladaha Travis CI iyo Jenkins, waxaan diyaarinay sahan. 85 isticmaale ayaa ka qayb qaatay. Jawaab bixiyaasha waxaa la waydiistay inay doortaan qalabka CI/CD ee ay aadka u jecel yihiin. 79% waxay doorteen Jenkins, 5% waxay doorteen Travis CI, iyo 16% waxay muujiyeen inay door bidaan aaladaha kale.
Natiijooyinka ra'yi ururinta
Qalabka kale ee CI/CD, GitLab CI/CD ayaa inta badan la sheegay.
Haddii aad dhab ka tahay DevOps, markaa waxaad u baahan tahay inaad si taxadar leh u doorato qalabka ku habboon, adoo tixgelinaya waxyaabaha gaarka ah ee mashruuca, miisaaniyadiisa, iyo shuruudaha kale. Si lagaaga caawiyo inaad samayso doorashada saxda ah, waxaanu dib u eegi doonaa Jenkins iyo GitLab CI/CD. Tani waxay rajeyneysaa inay kaa caawin doonto inaad sameyso doorashada saxda ah.
Hordhac Jenkins
Horumarinta Jenkins waxay abuureen mashruuc kale, Jenkins X, kaas oo loogu talagalay inuu ka shaqeeyo deegaanka Kubernetes. Jenkins X wuxuu isku daraa Helm, Jenkins CI/CD Server, Kubernetes, iyo qalab kale si loo dhiso tubbooyinka CI/CD ee raacaya hababka ugu wanaagsan ee DevOps. Tusaale ahaan, GitOps ayaa halkan lagu isticmaalaa.
Mid ayaa ku dari kara khasnadda faa'iidooyinka Jenkins xaqiiqda ah in qoraalladeedu ay aad u habaysan yihiin, la fahmi karo, oo ay fududahay in la akhriyo. Kooxda Jenkins waxay abuurtay ilaa 1000 plugins kuwaas oo loogu talagalay in lagu abaabulo isdhexgalka Jenkins oo leh tignoolajiyada kala duwan ee kala duwan. Qoraaladu waxay isticmaali karaan hababka aqoonsiga, kuwaas oo, tusaale ahaan, kuu ogolaanaya inaad ku xidho nidaamyada kala duwan ee xiran.
Inta lagu jiro hawlgalka dhuumaha Jenkins, waxaad arki kartaa waxa dhacaya tallaabo kasta, haddii marxaladaha shaqada qaarkood si guul leh loo dhammeeyey iyo in kale. Waxaad daawan kartaa waxaas oo dhan, si kastaba ha ahaatee, adoon isticmaalin interface garaaf gaar ah, laakiin isticmaalaya awoodaha terminal.
Tilmaamaha Jenkins
Tilmaamaha caanka ah ee Jenkins waxaa ka mid ah fududaynta dejinta, heer sare oo otomaatig ah oo hawlgallo kala duwan ah, iyo dukumeenti aad u fiican. Haddii aan ka hadalno xallinta hawlaha DevOps, markaa halkan Jenkins waxaa loo tixgeliyaa qalab aad loogu kalsoonaan karo, iyada oo la adeegsanayo, sida caadiga ah, ma aha wax macno ah in si dhow loola socdo dhammaan habka mashruuca mashruuca. Tani maahan kiiska qalabka kale ee CI/CD. Aynu ka hadalno qaar ka mid ah sifooyinka ugu muhiimsan ee Jenkins.
▍1. Bilaash, il furan, taageero madal badan
Jenkins wuxuu ku shaqayn karaa macOS, Windows iyo Linux. Waxa kale oo ay ka shaqayn kartaa jawiga Docker, kaas oo kuu ogolaanaya inaad abaabusho labbiska iyo fulinta hawlaha otomaatiga ah. Qalabkani waxa kale oo uu u shaqayn karaa servlet ahaan weelasha karti u leh Java sida Apache Tomcat iyo GlassFish. Ku rakibida Jenkins si tayo leh
▍2. Ecosystem plugin oo la sameeyay
Nidaamka deegaanka ee Jenkins plugin wuxuu u muuqdaa mid aad uga bisil marka loo eego nidaamyada deegaanka ee aaladaha kale ee CI/CD. Hadda waxaa jira in ka badan 1500 plugins oo loogu talagalay Jenkins. Xirmooyinkaan waxaa loogu talagalay in lagu xalliyo hawlo badan oo kala duwan, iyaga oo ku caawinaya waxaad si toos ah u samayn kartaa mashaariic kala duwan. Hantida plugins-yada bilaashka ah ee la dooran karo waxay la macno tahay haddii aad isticmaalayso Jenkins, uma baahnid inaad iibsato plugins lacag-bixineed qaali ah. Waxaa jirta suurtagal
▍3. Rakibaadda iyo dejinta fudud
Jenkins aad bay u fududahay in la rakibo oo la habeeyo. Isla mar ahaantaana, habka cusboonaysiinta nidaamka sidoo kale waa mid aad u habboon. Halkan, mar kale, waxaa habboon in la xuso tayada dukumentiyada, maadaama aad ka heli karto jawaabo su'aalo kala duwan oo la xidhiidha rakibidda iyo habaynta Jenkins.
▍4. Bulshada saaxiibtinimo
Sidii horeba loo sheegay, Jenkins waa mashruuc il furan, nidaamka deegaanka kaas oo ay ku jiraan tiro badan oo plugins ah. Bulsho badan oo isticmaaleyaal ah iyo horumariyeyaal ayaa ka sameeyay agagaarka Jenkins si ay gacan uga geystaan horumarinta mashruuca. Beeshu waa mid ka mid ah waxyaabaha horseeda horumarka Jenkins.
▍5. Helitaanka REST API
Markaad la shaqeyneyso Jenkins, waxaad isticmaali kartaa REST API, kaas oo ballaarinaya awoodda nidaamka. API ee gelitaanka fog ee nidaamka waxaa lagu soo bandhigay saddex nooc: XML, JSON oo leh taageerada JSONP, Python.
▍6. Taageerada fulinta hawlaha barbar socda
Jenkins wuxuu taageeraa isbarbardhigga hawlaha DevOps. Si fudud ayaa loogu dari karaa qalabyada khuseeya oo waxay heli kartaa ogeysiisyo ku saabsan natiijooyinka hawlaha. Tijaabada koodka waxa lagu dardargelin karaa iyada oo la abaabulo dhismo barbar socda mashruuca iyadoo la adeegsanayo mashiinno farsamo oo kala duwan.
▍7. Taageerada shaqada ee deegaan qaybsan
Jenkins wuxuu kuu ogolaanayaa inaad abaabusho dhismooyin la qaybiyay adoo isticmaalaya kombiyuutaro badan. Habkani waa mid lagu dabaqi karo mashaariicda waaweyn wuxuuna isticmaalaa nidaam shaqo, sida uu qabo hal server Jenkins iyo dhowr mashiinnada addoonta ah. Mashiinnada addoonsiga ayaa sidoo kale loo isticmaali karaa xaaladaha ay lagama maarmaan tahay in la abaabulo tijaabinta mashruuca deegaanno kala duwan. Tilmaamahani waxay Jenkins ka dhigeen mashruucyo kale oo la mid ah.
Hordhac GitLab
GitLab CI/CD waxaa markii hore loo sii daayay sidii mashruuc gooni-gooni ah, laakiin 2015-kii qalabkan ayaa lagu dhex daray GitLab 8.0. Hal server oo GitLab CI/CD ah ayaa taageeri kara isticmaalayaasha 25000. Iyada oo ku saleysan server-yada noocaas ah, waxaad abuuri kartaa nidaamyo si heer sare ah loo heli karo.
GitLab CI/CD iyo mashruuca ugu weyn ee GitLab waxay ku qoran yihiin Ruby iyo Go. Waxaa lagu sii daayay shatiga MIT. GitLab CI/CD, marka lagu daro astaamaha caadiga ah ee qalabka CI/CD, waxay sidoo kale taageertaa sifooyin dheeri ah oo la xiriira, tusaale ahaan, jadwalka shaqada.
Isku-dhafka GitLab CI/CD ee mashruuca waa mid aad u fudud. Marka la isticmaalayo GitLab CI/CD, habka habaynta code mashruuca waxaa loo qaybiyaa heerar, mid kasta oo ka mid ah waxay ka koobnaan kartaa dhowr hawlood oo lagu qabtay si gaar ah. Hawlaha si fiican ayaa loo hagaajin karaa.
Hawshu waxay u socon kartaa is barbar. Kadib dejinta isku xigxiga ee marxaladaha iyo hawlaha, dhuumaha CI/CD ayaa diyaar u ah inay tagaan. Waxaad la socon kartaa horumarkeeda adiga oo la socdo heerka hawluhu. Natiijo ahaan, adeegsiga GitLab CI / CD aad ayey ugu habboon tahay, laga yaabee inay ka sahlan tahay aaladaha kale ee la midka ah.
Tilmaamaha GitLab CI/CD iyo GitLab
GitLab CI/CD waa mid ka mid ah aaladaha ugu caansan ee DevOps. Mashruuca waxaa lagu kala soocaa dukumeenti tayo sare leh, sifooyinkeedu waa sahlan yihiin oo ku habboon in la isticmaalo. Haddii aadan weli aqoon u lahayn GitLab CI/CD, liiska soo socda ee astaamaha qalabkan ayaa ku siin doona fikrad guud oo ah waxa aad ka filan karto. Waa in la ogaadaa in qaar badan oo ka mid ah sifooyinkan ay la xiriiraan GitLab platform laftiisa, kaas oo GitLab CI / CD lagu daray.
▍1. Caannimada
GitLab CI/CD waa qalab cusub oo helay isticmaalka baahsan. GitLab CI/CD wuxuu si tartiib tartiib ah u noqday aalad CI/CD oo aad caan u ah oo loo isticmaalo tijaabinta tooska ah iyo geynta software-ka. Way fududahay in la dejiyo. Sidoo kale waa CI/CD qalab bilaash ah oo lagu dhex dhisay goobta GitLab.
▍2. Taageerada Bogagga GitLab iyo Jekyll
Jekyll waa dhaliyaha goobta taagan oo loo isticmaali karo gudaha nidaamka Bogagga GitLab si loo abuuro goobo ku salaysan kaydka GitLab. Nidaamku wuxuu qaadaa agabka isha wuxuuna soo saaraa goob taagan oo diyaarsan oo ku salaysan iyaga. Waxaad xakameyn kartaa muuqaalka iyo astaamaha boggagaas adigoo tafatiraya faylka _config.yml
, uu isticmaalo Jekyll.
▍3. Awoodaha qorshaynta mashruuca
Waad ku mahadsan tahay awoodda lagu qorsheynayo marxaladaha mashaariicda, ku habboonaanta dhibaatooyinka raadraaca iyo kooxahooda ayaa kordha. Tani waxay kuu ogolaaneysaa inaad maamusho abaabulka shaqada ee mashaariicda, qorsheyso hirgelintooda taariikh gaar ah.
▍4. Si toos ah u miisaamaya orodyahanada CI
Waad ku mahadsantahay cabbirka tooska ah ee orodyahannada mas'uulka ka ah qabashada hawlo gaar ah, waxaad wax badan ku badbaadin kartaa qiimaha kiraysashada awoodaha server-ka. Tani waa mid aad muhiim u ah, gaar ahaan marka ay timaado deegaannada mashaariicda lagu tijaabiyo si isbarbar socda. Intaa waxaa dheer, tani waxay muhiim u tahay mashaariicda waaweyn ee ka kooban dhowr kayd.
▍5. Soo saar qalabka raadraaca
Awoodaha raadraaca arrinta ee GitLab ayaa horseeday mashaariic badan oo il furan inay adeegsadaan goobta. GitLab CI/CD waxay ogolaataa tijaabinta isbarbar dhigga laamaha kood kala duwan. Natiijooyinka tijaabada ayaa si ku habboon loogu falanqeeyay nidaamka interface. Tani waxay GitLab CI/CD ka dhigaysaa marka laga reebo Jenkins.
▍6. Xakamaynta gelitaanka meelaha kaydka ah
Qalabka GitLab wuxuu taageeraa xaddidaadda gelitaanka meelaha kaydka ah. Tusaale ahaan, kuwa iska kaashada mashruuca ku jira kaydka waxa la siin karaa ogolaansho ku habboon doorkooda. Tani waxay si gaar ah run ugu tahay mashaariicda shirkadaha.
▍7. Taageerada bulshada ee firfircoon
Bulsho firfircoon ayaa ku horumartay agagaarka GitLab, taas oo gacan ka geysata horumarinta goobtan iyo qalabkeeda, gaar ahaan GitLab CI / CD. Is dhexgalka qoto dheer ee GitLab CI/CD iyo GitLab, iyo waxyaabo kale, waxay sahlaysaa in jawaabaha loo helo su'aalaha soo baxa marka lala shaqaynayo GitLab CI/CD.
▍8. Taageerada nidaamyada xakamaynta nooca kala duwan
GitLab CI/CD waa nidaam ku shaqayn kara in ka badan koodka lagu hayo kaydadka GitLab. Tusaale ahaan, koodka waxa lagu kaydin karaa kaydka GitHub, dhuumaha CI/CD waxa lagu habayn karaa iyadoo lagu salaynayo GitLab iyadoo la isticmaalayo GitLab CI/CD.
Isbarbardhigga Jenkins iyo GitLab CI/CD
Jenkins iyo GitLab CI/CD waa qalab aad u wanaagsan, labaduba waxay awood u leeyihiin inay ka dhigaan dhuumaha CI/CD inay si habsami leh u socdaan. Laakiin haddii aan is barbar dhigno, waxaa soo baxday, in kasta oo ay isku mid yihiin siyaabo badan, haddana siyaabo kala duwan ayay u kala duwan yihiin.
Характеристика
Jenkins
GitLab CI/CD
Isha furan ama il xidhan
il furan
il furan
Ku rakibida
Loo baahan yahay
Looma baahna maadaama tani ay tahay sifada ku dhex jirta goobta GitLab.
Tilmaamaha Gaarka ah
Taageerada furaha
Isdhexgalka qoto dheer ee nidaamka xakamaynta version.
taageero
Maqan yahay.
La heli karo
Rakibaadda iyo qaabeynta
Dhibaatooyinku ma keenaan
Dhibaatooyinku ma keenaan
Is-dejinta nidaamka
Tani waa habka kaliya ee loo isticmaalo nidaamka.
Taageeray.
Abuuritaanka dhuumaha CI/CD
La taageeray, iyadoo la isticmaalayo Jenkins Pipeline.
Taageeray.
Kormeerka waxqabadka codsiga
Maqan yahay.
La heli karo
Nidaamka deegaanka
Waxaa jira in ka badan 1000 plugins.
Nidaamka waxaa lagu soo saaray gudaha GitLab.
API
Waxay taageertaa nidaamka API horumarsan
Waxay siisaa API-ga is dhexgalka qoto dheer ee mashaariicda.
Taageerada JavaScript
La heli karo
La heli karo
Isku-dhafka qalabka kale
Ku-dhex-galka aaladaha kale iyo aaladaha waa la taageeray (Slack, GitHub).
Qalab badan oo loogu talagalay is dhexgalka nidaamyada dhinac saddexaad, gaar ahaan - oo leh GitHub iyo Kubernetes.
Koontaroolka tayada koodhka
La taageeray - iyadoo la isticmaalayo SonarQube plugin iyo plugins kale.
Taageeray.
Farqiga u dhexeeya Jenkins iyo GitLab CI/CD
Markaan sharaxnay oo isbarbar dhignay Jenkins iyo GitLab CI/CD, aan diirada saarno kala duwanaanshaha udhaxeeya aaladahan DevOps. Ogaanshaha kala duwanaanshahan ayaa kaa caawin doona inaad fahamto kuwa ka door bida mid ka mid ah qalabkan kan kale.
- GitLab CI/CD wuxuu si buuxda u maamuli karaa kaydadka Git. Waxaan ka hadleynaa maaraynta laamaha kaydka iyo qaar ka mid ah sifooyinka kale. Laakiin Jenkins, in kasta oo ay la shaqayn karto bakhaarrada, ma siiso isla heerka xakamaynta iyaga sida GitLab CI / CD.
- Jenkins waa mashruuc il furan oo bilaash ah. Kii doortaa si madax bannaan buu u hawlgeliyaa. Iyo GitLab CI / CD waxaa lagu soo daray goobta GitLab, tani waa furaha furaha.
- GitLab CI/CD waxay taageertaa agabka maaraynta hawsha horumarsan ee ka shaqeeya heerka mashruuca. Dhinacan Jenkins waa mid aad u horumarsan.
Jenkins iyo GitLab CI/CD: meelaha ku wanaagsan iyo meelaha uu ku liito
Hadda waxaad haysataa fikrad ku saabsan Jenkins iyo GitLab CI/CD. Hadda, si aad xitaa si fiican ugu barato qalabkan, aynu eegno meelaha ay ku fiican yihiin iyo meelaha ay ku liitaan. Waxaan u maleyneynaa inaad horey u go'aamisay qalabka aad u baahan tahay. Waxaan rajaynaynaa, qaybtani waxay kuu ogolaan doontaa inaad tijaabiso naftaada.
Awoodaha Jenkins
- Tiro badan oo plugins ah.
- Xakamaynta buuxda ee rakibidda qalabka.
- Dejinta fudud ee orodyahanada.
- Habaynta noodhka fudud.
- Gelin kood fudud.
- Nidaamka maaraynta aqoonsiga oo aad u wanaagsan.
- Debacsanaan iyo kala duwanaansho.
- Taageerada luuqadaha barnaamijyada kala duwan.
- Nidaamku waa mid la fahmi karo heer dareen leh.
▍Daciifnimada Jenkins
- Plugins waxay noqon kartaa mid dhib badan in la isticmaalo.
- Markaad Jenkins u isticmaalayso mashaariicda yaryar, wakhtiga loo baahan yahay si aad u habayso naftaada waxay noqon kartaa mid aan macquul ahayn.
- La'aanta macluumaadka guud ee falanqaynta ee silsiladaha CI/CD.
▍Xoogga GitLab CI/CD
- Is dhexgalka wanaagsan ee Docker.
- Miisaanka fudud ee orodyahanada.
- Fulinta hawlaha isku midka ah ee qayb ka ah marxaladaha dhuumaha CI/CD.
- Isticmaalka qaabka garaafka acyclic ee la hago marka la samaynayo xidhiidhada hawsha.
- Heerka sare ee miisaanka sababtoo ah suurtagalnimada fulinta isbarbardhigga ee orodyahannada.
- Fududeynta ku darista hawlaha
- Xallinta khilaafka fudud.
- Nidaam ammaan oo lagu kalsoonaan karo.
▍Daciifnimada GitLab CI/CD
- Hawl kasta, waxaad u baahan tahay inaad sharaxdo oo aad soo dejiso / soo dejiso farshaxanimada.
- Ma tijaabin kartid natiijooyinka isku darka laamaha ka hor inta aan dhab ahaan la isku biirin.
- Marka la tilmaamayo marxaladaha dhuumaha CI / CD, weli suurtagal ma aha in la qeexo marxaladaha gaarka ah iyaga.
Natiijooyinka
Jenkins iyo GitLab CI/CD labaduba waxay leeyihiin meelaha ay ku wanaagsan yihiin iyo meelaha ay ku liidato. Jawaabta su'aasha ah waxa la dooranayo waxay ku xiran tahay baahida iyo sifooyinka mashruuc gaar ah. Mid kasta oo ka mid ah qalabka CI/CD ee maanta dib loo eegay waxa uu leeyahay astaamo gaar ah, in kasta oo qalabkan loo abuuray in lagu xalliyo isla mushkiladda. Isla mar ahaantaana, Jenkins waa qalab keligiis ah, GitLab CI / CD waa qayb ka mid ah madal loogu talagalay in la iska kaashado koodka.
Markaad dooranayso nidaamka CI / CD, marka lagu daro awoodiisa, waxaa habboon in la tixgeliyo kharashyada la xiriirin kara, iyo waxa dhabta ah ee injineerada DevOps ee taageera mashruuca loo isticmaalo inay la shaqeeyaan.
Waa maxay qalabka CI/CD ee aad isticmaasho?
Source: www.habr.com