Kwiminyaka elishumi edlulileyo, ukuqhubela phambili okubonakalayo kuye kwenziwa ekuphuhliseni ukuhlanganiswa okuqhubekayo (CI) kunye nezixhobo eziqhubekayo zokuthunyelwa (CD). Ukuphuhliswa kobuchwephesha bokudibanisa uphuhliso lwesoftware kunye nokusebenza (uPhuhliso lweMisebenzi, i-DevOps) luye lwakhokelela ekunyuseni ngokukhawuleza kwemfuno yezixhobo zeCI / CD. Izisombululo ezikhoyo zisoloko ziphuculwa, zizama ukuhambisana namaxesha, iinguqulelo ezintsha zikhutshwa, kwaye ezininzi iimveliso ezintsha zihlala zivela kwihlabathi le-software yokuqinisekisa umgangatho (QA). Ngobutyebi obunjalo bokukhetha, ukukhetha izixhobo ezifanelekileyo akuyona into elula.
Phakathi kwazo zonke izixhobo ezikhoyo zeCI / CD, kukho iiprojekthi ezimbini ezifanelekile ukuba zinike ingqalelo kwabo bafuna into kule ndawo. Sithetha ngeJenkins kunye nesixhobo seGitLab CI/CD, esiyinxalenye yeqonga leGitLab. UJenkins unezinto ezingaphezulu
Thatha, umzekelo, idatha evela kwi-platform ye-G2, eqokelela ukuphononongwa kweentlobo ezininzi zeemveliso kunye nemilinganiselo abanikwa ngayo abasebenzisi. Nantsi i-avareji yokukala
Ukuba sithetha ngokuthandwa kweJenkins xa kuthelekiswa namanye amaqonga afanayo, siyaqaphela ukuba emva kokupapasha inqaku elithelekisa iiplatifomu zeTravis CI kunye neJenkins, salungiselela uphando. Abasebenzisi abangama-85 bathathe inxaxheba kuyo. Abaphenduli bacelwa ukuba bakhethe isixhobo se-CI/CD abasithande kakhulu. I-79% ikhethe i-Jenkins, i-5% ikhethe i-Travis CI, kwaye i-16% ibonise ukuba bakhetha ezinye izixhobo.
Iziphumo zovoto
Phakathi kwezinye izixhobo zeCI/CD, iGitLab CI/CD yayisoloko ikhankanywa.
Ukuba unzulu malunga ne-DevOps, ngoko kufuneka ukhethe ngokucophelela izixhobo ezifanelekileyo, ngokuqwalasela iimpawu zeprojekthi, uhlahlo lwabiwo-mali kunye nezinye iimfuno. Ukukunceda wenze ukhetho olufanelekileyo, siza kuhlalutya iJenkins kunye neGitLab CI/CD. Ndiyathemba, oku kuya kukunceda wenze ukhetho olufanelekileyo.
Ukwazisa uJenkins
Abaphuhlisi beJenkins benze enye iprojekthi, iJenkins X, eyenzelwe ukusebenza kwindawo yaseKubernetes. I-Jenkins X idibanisa i-Helm, i-Jenkins CI / i-CD Server, i-Kubernetes, kunye nezinye izixhobo ezenzelwe ukwakha imibhobho ye-CI / CD elandela iindlela ezilungileyo ze-DevOps. Umzekelo, iGitOps isetyenziswa apha.
Enye yeenzuzo zeJenkins zinokongezwa kwinto yokuba izikripthi zayo zakhiwe kakuhle, ziyaqondakala, kwaye kulula ukuzifunda. Iqela leJenkins lenze malunga neeplagi ze-1000 ezijoliswe ekuququzeleleni ukusebenzisana kweJenkins ngeentlobo ezahlukeneyo zobuchwepheshe. Kwizikripthi ungasebenzisa iinkqubo zokuqinisekisa, oko, umzekelo, ikuvumela ukuba udibanise kwiinkqubo ezahlukeneyo ezivaliweyo.
Ngexesha lokusebenza kombhobho weJenkins, unokubona okwenzekayo kwinqanaba ngalinye, nokuba izigaba ezithile zomsebenzi zagqitywa ngempumelelo okanye cha. Uyakwazi ukujonga konke oku, nangona kunjalo, ungasebenzisi uhlobo oluthile lojongano lomzobo, kodwa usebenzisa izakhono ze-terminal.
Iimpawu zeJenkins
Phakathi kwezinto ezaziwa kakhulu zeJenkins kukulula ukucwangciswa, izinga eliphezulu lokuzenzekelayo kwimisebenzi eyahlukeneyo kunye namaxwebhu agqwesileyo. Ukuba sithetha ngokusombulula iingxaki ze-DevOps, ngoko i-Jenkins ithathwa njengesixhobo esithembeke kakhulu, sisebenzisa, njengomthetho, akukho sizathu sokubeka iliso ngokusondeleyo yonke inkqubo yokucubungula iprojekthi. Oku akunjalo nakwezinye izixhobo zeCI/CD. Makhe sithethe ngezinye zezona mpawu zibalulekileyo zeJenkins.
▍1. Isimahla, umthombo ovulekileyo, amaqonga amaninzi axhaswayo
IiJenkins zinokusebenza kwi-macOS, iWindows kunye neLinux kumaqonga. Inokuthi iqhube kwindawo yeDocker, ekuvumela ukuba ulungelelanise imisebenzi ezenzekelayo ngendlela efanayo kwaye ngokukhawuleza. Isixhobo sinokusebenza njenge-servlet kwi-Java-enabled containers ezifana ne-Apache Tomcat kunye ne-GlassFish. Faka iJenkins ngokufanelekileyo
▍2. Kuphuhliswe i-plugin ecosystem
I-Jenkins plugin ecosystem ibonakala ikhulile kakhulu xa ithelekiswa ne-plugin ecosystems yezinye izixhobo zeCI/CD. Kukho ngoku ngaphezulu kwe-1500 iiplagi zeJenkins. Ezi plugins zijolise ekusombululeni uluhlu olubanzi lweengxaki; ngoncedo lwazo unokwenza iiprojekthi ezininzi ezahlukeneyo. Ubutyebi beeplagi zasimahla ongakhetha kuzo kuthetha ukuba nabani na osebenzisa iJenkins akanaso imfuno ecinezelayo yokuthenga iiplagi ezihlawulelwayo ezibizayo. Ikhona into enokwenzeka
▍3. Ufakelo olulula kunye nokucwangcisa
IJenkins ilula kakhulu ukuyifaka kunye nokuqwalasela. Kwangaxeshanye, inkqubo yohlaziyo lwenkqubo ikwaluncedo kakhulu. Apha, kwakhona, kufanelekile ukukhankanya umgangatho woxwebhu, kuba inokuphendula imibuzo eyahlukeneyo enxulumene nokufaka kunye nokuqwalasela iJenkins.
▍4. Uluntu olunobuhlobo
Njengoko sele kukhankanyiwe, iJenkins yiprojekthi yomthombo ovulekileyo ene-ecosystem ebandakanya inani elikhulu leeplagi. Kukho uluntu olukhulu lwabasebenzisi kunye nabaphuhlisi abajikeleze iJenkins abancedisa ukuphuhlisa iprojekthi. Uluntu ngenye yezinto eziqhuba uphuhliso lweJenkins.
▍5. Ubukho be-REST API
Xa usebenza noJenkins, ungasebenzisa i-REST API, eyandisa amandla enkqubo. I-API yokufikelela kude kwi-system iboniswe kwiinguqulelo ezintathu: i-XML, i-JSON kunye ne-JSONP inkxaso, i-Python.
▍6. Inkxaso yomsebenzi ofanayo
UJenkins uxhasa ukuhambelana kwemisebenzi yeDevOps. Inokudityaniswa ngokulula kunye nezixhobo ezinxulumeneyo kwaye ifumane izaziso malunga neziphumo zomsebenzi. Uvavanyo lwekhowudi lunokukhawuleziswa ngokuququzelela ukwakhiwa kweprojekthi ehambelanayo kusetyenziswa oomatshini abahlukileyo.
▍7. Inkxaso yokusebenza kwiindawo ezisasazwayo
I-Jenkins ikuvumela ukuba uququzelele izakhiwo ezisasazwayo usebenzisa iikhomputha ezininzi. Eli nqaku lisebenza kwiiprojekthi ezinkulu kwaye lisebenzisa isikimu somsebenzi apho kukho iseva enye yeJenkins kunye noomatshini abaninzi bekhoboka. Oomatshini bekhoboka bangasetyenziselwa kwiimeko apho kuyimfuneko ukuququzelela uvavanyo lweprojekthi kwiindawo ezahlukeneyo. Ezi mpawu zibeka uJenkins ngaphandle kwezinye iiprojekthi ezifanayo.
Ukwazisa iGitLab
I-GitLab CI/CD yakhululwa ekuqaleni njengeprojekthi ezimeleyo, kodwa ngo-2015 isixhobo sesixhobo sadityaniswa kwi-GitLab 8.0. Iseva enye ye-GitLab CI/CD inokuxhasa abasebenzisi abangaphezu kwama-25000. Ngokusekwe kwiiseva ezinjalo, unokwenza iinkqubo ezifumaneka kakhulu.
I-GitLab CI/CD kunye neprojekthi ye-GitLab engundoqo ibhalwe nge-Ruby kunye ne-Go. Bakhululwa phantsi kwelayisenisi ye-MIT. I-GitLab CI / CD, ngaphezu kwezakhono eziqhelekileyo ze-CI / CD izixhobo, iphinde ixhase amandla ongezelelweyo anxulumene, umzekelo, ukucwangcisa umsebenzi.
Ukudibanisa iGitLab CI/CD kwiprojekthi yakho kulula kakhulu. Xa usebenzisa i-GitLab CI/CD, inkqubo yokusetyenzwa kwekhowudi yeprojekthi ihlulwe ngokwezigaba, nganye kuzo inokuquka imisebenzi emininzi eyenziwa ngomyalelo othile. Imisebenzi inokulungiswa kakuhle.
Imisebenzi inokuphunyezwa ngokuhambelanayo. Emva kokumisela ukulandelelana kwezigaba kunye nemisebenzi, umbhobho weCI / CD ulungele ukuhamba. Uyakwazi ukubeka iliso kwinkqubela phambili yayo ngokulandelela ubume bemisebenzi. Ngenxa yoko, ukusebenzisa i-GitLab CI/CD kulula kakhulu, mhlawumbi kulula ngakumbi kunezinye izixhobo ezifanayo.
Iimpawu zeGitLab CI/CD kunye neGitLab
I-GitLab CI/CD yenye yezona zixhobo zidumileyo zeDevOps. Iprojekthi yahlulwa ngamaxwebhu akumgangatho ophezulu, amandla ayo alula kwaye alungele ukuwasebenzisa. Ukuba umtsha kwi-GitLab CI/CD, olu luhlu lulandelayo lweempawu zesixhobo luya kukunika umbono oqhelekileyo wento onokuyilindela kuyo. Kufuneka kuqatshelwe ukuba uninzi lwezi mpawu zinxulumene neqonga le-GitLab ngokwayo, apho i-GitLab CI/CD idityanisiwe.
▍1. Ukuduma
I-GitLab CI/CD sisixhobo esitsha esifumene ukusetyenziswa ngokubanzi. I-GitLab CI/CD ithe ngokuthe ngcembe ibe sisixhobo esithandwa kakhulu se-CI/CD esisetyenziselwa uvavanyo lwesoftware oluzenzekelayo kunye nokusasazwa. Kulula ukuseta. Ikwasisixhobo sasimahla seCI/CD esakhelwe kwiqonga leGitLab.
▍2. Amaphepha eGitLab kunye nenkxaso yeJekyll
I-Jekyll yi-static site yejenereyitha enokusetyenziswa ngaphakathi kwenkqubo yamaPhepha eGitLab ukwenza iisayithi ezisekelwe koovimba beGitLab. Inkqubo ithatha izixhobo zomthombo kwaye ivelise i-website ye-static esele yenziwe ngokusekwe kubo. Unako ukulawula inkangeleko kunye nobuchule beendawo ezinjalo ngokuhlela ifayile _config.yml
, esetyenziswa nguJekyll.
▍3. Izakhono zocwangciso lweprojekthi
Ndiyabulela ukukwazi ukucwangcisa izigaba zeprojekthi, ukulungeleka kweengxaki zokulandelela kunye namaqela abo ayanda. Oku kukuvumela ukuba ulawule umbutho womsebenzi kwiiprojekthi kwaye ucwangcise ukuphunyezwa kwazo ngomhla othile.
▍4. Ukukala okuzenzekelayo kweembaleki zeCI
Enkosi ngokukalwa okuzenzekelayo kweembaleki ezinoxanduva lokwenza imisebenzi ethile, unokonga kakhulu kwiindleko zokurenta umthamo weseva. Oku kubaluleke kakhulu, ngakumbi xa kuziwa kwiimeko apho iiprojekthi zivavanywa ngokuhambelanayo. Ukongeza, oku kubalulekile kwiiprojekthi ezinkulu ezibandakanya oovimba abaninzi.
▍5. Umba wezixhobo zokulandelela
Umba onamandla wokulandela umkhondo weGitLab ukhokelele kwiiprojekthi ezininzi ezivulelekileyo zisebenzisa iqonga. I-GitLab CI/CD ikuvumela ukuba uvavanye amasebe ekhowudi ahlukeneyo ngaxeshanye. Iziphumo zovavanyo zinokucazululwa ngokulula kwi-interface yenkqubo. Oku kumisela iGitLab CI/CD ngaphandle kweJenkins.
▍6. Ukuthintela ukufikelela kwiindawo zokugcina
Iqonga leGitLab lixhasa uthintelo lofikelelo kwiindawo zokugcina. Ngokomzekelo, abo basebenzisane kwiprojekthi kwindawo yokugcina banokunikezwa amalungelo ahambelana neendima zabo. Oku kuyinyani ngakumbi kwiiprojekthi zenkampani.
▍7. Inkxaso yoluntu esebenzayo
Uluntu olusebenzayo luphuhlile malunga ne-GitLab, enegalelo kuphuhliso lweli qonga kunye nezixhobo zalo, ngakumbi i-GitLab CI/CD. Ukudityaniswa okunzulu phakathi kweGitLab CI/CD kunye neGitLab, phakathi kwezinye izinto, kwenza kube lula ukufumana iimpendulo kwimibuzo ephakamayo xa usebenza neGitLab CI/CD.
▍8. Inkxaso yokusebenza ngeenkqubo ezahlukeneyo zolawulo lwenguqulelo
IGitLab CI/CD yinkqubo enokusebenza kungekuphela nje ngekhowudi egcinwe koovimba beGitLab. Ngokomzekelo, ikhowudi inokugcinwa kwindawo yokugcina i-GitHub, kwaye umbhobho we-CI/CD unokucwangciswa ngokusekelwe kwi-GitLab usebenzisa i-GitLab CI/CD.
Ukuthelekiswa kweJenkins kunye neGitLab CI / CD
I-Jenkins kunye ne-GitLab CI/CD zizixhobo ezilungileyo kakhulu, nganye kuzo ekwaziyo ukuqinisekisa ukusebenza okuqhelekileyo kombhobho weCI/CD. Kodwa, ukuba uyazithelekisa, kuvela ukuba, nangona zifana ngeendlela ezininzi, ziyahluka kwezinye ngeendlela.
Iimpawu
Jenkins
GitLab CI/CD
Umthombo ovulekileyo okanye ovaliweyo
Vula Umnikezi
Vula Umnikezi
isicwangciso
Kufuneka.
Ayifuneki, njengoko le iyinto eyakhelwe-ngaphakathi yeqonga leGitLab.
Iimpawu ezizodwa
Inkxaso yeplagi.
Ukudityaniswa okunzulu kwinkqubo yolawulo loguqulelo.
inkxaso
Akukho nto.
Iyafumaneka.
Ukufakwa kunye noqwalaselo
Ayibangeli nabuphi na ubunzima
Ayibangeli nabuphi na ubunzima
Ukuzithumela ngokuzimeleyo inkqubo
Olu lolona khetho lokusebenzisa inkqubo.
Ixhasiwe.
Ukudala imibhobho yeCI/CD
Ixhaswe kwaye isetyenziswe nguJenkins Pipeline.
Ixhasiwe.
Ukubekwa esweni kokuSebenza kweSicelo
Akukho nto.
Iyafumaneka.
Inkqubo yendalo
Kukho ngaphezu kwe-1000 plugins.
Inkqubo iyaphuhliswa ngaphakathi kweGitLab.
API
Ixhasa inkqubo ye-API ephezulu.
Inikezela nge-API yokudibanisa nzulu kwiiprojekthi.
Inkxaso yeJavaScript
Iyafumaneka.
Iyafumaneka.
Ukudityaniswa nezinye izixhobo
Ukudibanisa nezinye izixhobo kunye namaqonga (i-Slack, i-GitHub) ixhaswa.
Izixhobo ezininzi zokudibanisa kunye neenkqubo zomntu wesithathu, ngakumbi ngeGitHub kunye neKubernetes.
Ulawulo lomgangatho wekhowudi
Ixhaswa - usebenzisa i-SonarQube plugin kunye nezinye iiplagi.
Ixhasiwe.
Umahluko phakathi kweJenkins kunye neGitLab CI/CD
Emva kokuchaza nokuthelekisa iJenkins kunye neGitLab CI/CD, masigxininise kumahluko phakathi kwezi zixhobo zeDevOps. Ukwazi lo mahluko kuya kunika ingqiqo kwabo bakhetha esinye sezi zixhobo ngaphezu kwesinye.
- IGitLab CI/CD inokulawula ngokupheleleyo oovimba beGit. Sithetha ngokulawula amasebe ogcino kunye nezinye izinto. Kodwa i-Jenkins, nangona inokusebenza kunye neendawo zokugcina, ayiboneleli kwinqanaba elifanayo lokulawula njengeGitLab CI / CD.
- UJenkins yiprojekthi yasimahla, evulelekileyo. Lowo uwukhethayo uzityhila ngokwakhe. Kwaye i-GitLab CI/CD ibandakanyiwe kwiqonga le-GitLab, sisisombululo esele senziwe.
- I-GitLab CI/CD ixhasa izixhobo zolawulo lwemiba ephambili esebenza kwinqanaba leprojekthi. Eli cala leJenkins aliphuhliswanga kangako.
Jenkins kunye neGitLab CI / CD: amandla kunye nobuthathaka
Ngoku unombono malunga neJenkins kunye neGitLab CI/CD. Ngoku, ukwenza ukuba uqhelane ngakumbi nezi zixhobo, makhe sijonge amandla kunye nobuthathaka bazo. Sikholelwa ukuba sele wenze isigqibo malunga nokuba sesiphi isixhobo osifunayo. Ndiyathemba ukuba eli candelo liyakuvumela ukuba uzivavanye.
▍Amandla kaJenkins
- Inani elikhulu leeplagi.
- Ulawulo olupheleleyo kufakelo lwesixhobo.
- Ukulungiswa okulula kweembaleki.
- Ukuseta i-node elula.
- Ukusasazwa kwekhowudi elula.
- Ilungile kakhulu inkqubo yolawulo lweziqinisekiso.
- Ukuguquguquka kunye nokuguquguquka.
- Inkxaso kwiilwimi ezahlukeneyo zokucwangcisa.
- Inkqubo iyaqondakala kumgangatho wokuqonda.
▍Ubuthathaka bukaJenkins
- Ubunzima bunokuvela xa usebenzisa iiplagi.
- Xa usebenzisa iJenkins kwiiprojekthi ezincinci, ixesha elifunekayo ukuze uzibeke ngokwakho linokuba likhulu ngokungenangqiqo.
- Ukunqongophala kolwazi oluhlalutyayo ngokubanzi kwimixokelelwane yeCI/CD.
▍Amandla eGitLab CI/CD
- Ukudityaniswa okuhle kunye neDocker.
- Ukukala ngokulula kweembaleki.
- Ukwenziwa okufanayo kwemisebenzi efakwe kwizigaba zombhobho weCI/CD.
- Ukusebenzisa imodeli yegrafu ye-acyclic eqondisiweyo xa useka ubudlelwane bomsebenzi.
- Inqanaba eliphezulu lokulinganisa ngenxa yokuba kunokwenzeka ukubulawa ngokuhambelanayo kweembaleki.
- Ukulula ukongeza imisebenzi.
- Ukusombulula impixano elula.
- Inkqubo yokhuseleko ethembekileyo.
▍Ubuthathaka beGitLab CI/CD
- Kumsebenzi ngamnye, kufuneka uchaze kwaye ulayishe / ukhuphe izinto zakudala.
- Awukwazi ukuvavanya iziphumo zokudityaniswa kwamasebe phambi kokuwadibanisa.
- Xa uchaza izigaba zombhobho we-CI / CD, akunakwenzeka ukuhlukanisa izigaba zomntu ngamnye.
Iziphumo
Zombini iJenkins kunye neGitLab CI/CD zinamandla kunye nobuthathaka. Impendulo kumbuzo wento omele ukhethe ngayo ixhomekeke kwiimfuno kunye neempawu zeprojekthi ethile. Isixhobo ngasinye seCI / CD esixutyushwayo namhlanje sihluke kwiimpawu ezithile, nangona ezi zixhobo zidalwe ukuxazulula ingxaki efanayo. Ngelo xesha, iJenkins sisixhobo esizimeleyo, kwaye i-GitLab CI / CD yinxalenye yeqonga elenzelwe intsebenziswano kwikhowudi.
Xa ukhetha inkqubo ye-CI / CD, ngaphezu kwezakhono zayo, kuyafaneleka ukuba kuthathelwe ingqalelo iindleko ezinokudityaniswa nayo, kwaye yintoni kanye kanye iinjineli ze-DevOps ezixhasa iprojekthi ezisetyenziselwa ukusebenza nazo.
Zeziphi izixhobo ze-CI/CD ozisebenzisayo?
umthombo: www.habr.com