Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Ingxenye 1: Iwebhu/Android

Ukubhala: lesi sihloko sihumushela olimini lwesiRashiya lwesihloko sokuqala “Amathuluzi e-DevOps awawona ama-DevOps kuphela. "Ukwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni." Kodwa-ke, yonke imifanekiso, izixhumanisi, izingcaphuno namagama agcinwa ngolimi lokuqala ukuze kugwenywe ukuhlanekezelwa kwencazelo lapho ihunyushelwa olimini lwesiRashiya. Ngikufisela injabulo yokufunda!

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Njengamanje, okukhethekile kwe-DevOps kungenye yezinto ezidingeka kakhulu embonini ye-IT. Uma uvula amasayithi okusesha imisebenzi adumile futhi uhlunge ngeholo, uzobona ukuthi imisebenzi ehlobene ne-DevOps iphezulu ohlwini. Kodwa-ke, kubalulekile ukuqonda ukuthi lokhu ikakhulukazi kubhekisela esikhundleni 'esiphezulu', okusho ukuthi ikhandidethi unezinga eliphezulu lamakhono, ulwazi lobuchwepheshe namathuluzi. Lokhu futhi kuza nezinga eliphezulu lokuzibophezela elihambisana nokusebenza okungaphazamiseki kokukhiqiza. Nokho, saqala ukukhohlwa ukuthi iyini i-DevOps. Ekuqaleni, kwakungeyena umuntu othile noma umnyango. Uma sibheka izincazelo zaleli gama, sizothola amabizo amaningi amahle nalungile, njenge-methodology, imikhuba, ifilosofi yamasiko, iqoqo lemiqondo, njalonjalo.

Ubuchwepheshe bami buwunjiniyela ozenzakalelayo wokuhlola (unjiniyela we-automation we-QA), kodwa ngikholwa ukuthi akufanele ahlotshaniswe kuphela nokubhala ukuhlola okuzenzakalelayo noma ukuthuthukisa ukwakheka kohlaka lokuhlola. Ngo-2020, ulwazi lwengqalasizinda ezenzakalelayo nalo lubalulekile. Lokhu kukuvumela ukuthi uhlele inqubo yokuzenzakalela ngokwakho, kusukela ekwenzeni izivivinyo kuye ekunikezeni imiphumela kubo bonke ababambiqhaza ngokuhambisana nemigomo yakho. Ngenxa yalokho, amakhono e-DevOps ayadingeka ukuze umsebenzi wenziwe. Futhi konke lokhu kuhle, kodwa, ngeshwa, kunenkinga (spoiler: lesi sihloko sizama ukwenza le nkinga ibe lula). Iphuzu liwukuthi i-DevOps inzima. Futhi lokhu kusobala, ngoba izinkampani ngeke zikhokhe imali eningi ngento elula ukuyenza... Ezweni le-DevOps, kunenani elikhulu lamathuluzi, imigomo, kanye nezinqubo ezidinga ukuqondiswa. Lokhu kunzima kakhulu ekuqaleni komsebenzi futhi kuncike ekuhlangenwe nakho kwezobuchwepheshe okunqwabelene.

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni
Source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Lapha cishe sizoqeda ngengxenye yesingeniso futhi sigxile enjongweni yalesi sihloko. 

Imayelana nani lesi sihloko?

Kulesi sihloko, ngizokwabelana ngolwazi lwami lokwakha ingqalasizinda yokuhlola ezishintshayo. Miningi imithombo yolwazi ku-inthanethi mayelana namathuluzi ahlukahlukene nokuthi asetshenziswa kanjani, kodwa ngingathanda ukuyibuka ngokwengqikithi yokuzenzakalela. Ngikholwa ukuthi onjiniyela abaningi be-automation bayasijwayele isimo lapho kungekho muntu ngaphandle kwakho oqhuba izivivinyo ezithuthukisiwe noma onendaba nokuzigcina. Ngenxa yalokho, ukuhlola kuphelelwa isikhathi futhi kufanele uchithe isikhathi ukuzibuyekeza. Futhi, ekuqaleni komsebenzi, lokhu kungaba umsebenzi onzima kakhulu: ukunquma ngokuhlakanipha ukuthi yimaphi amathuluzi okufanele asize ekuqedeni inkinga ethile, indlela yokukhetha, ukumisa nokugcina. Abanye abahloli baphendukela ku-DevOps (abantu) ukuze bathole usizo futhi, masikhulume iqiniso, le ndlela iyasebenza. Ezimweni eziningi lokhu kungase kube ukuphela kwenketho njengoba singabonakali kukho konke ukuncika. Kodwa njengoba sazi, ama-DevOps angabantu abamatasa kakhulu, ngoba kufanele bacabange ngengqalasizinda yenkampani yonke, ukuthunyelwa, ukuqapha, ama-microservices neminye imisebenzi efanayo kuye ngenhlangano/ithimba. Njengoba kuvamise ukuba njalo, i-automation ayiyona into ehamba phambili. Esimeni esinjalo, kumelwe sizame ukwenza konke okusemandleni ethu kusukela ekuqaleni kuze kube sekugcineni. Lokhu kuzonciphisa ukuncika, kusheshise ukuhamba komsebenzi, kuthuthukise amakhono ethu futhi kusivumele ukuthi sibone isithombe esikhulu salokho okwenzekayo.

I-athikili yethula amathuluzi aziwa kakhulu futhi adumile futhi ikhombisa ukuthi asetshenziswa kanjani ukwakha ingqalasizinda ye-automation isinyathelo ngesinyathelo. Iqembu ngalinye limelelwa ngamathuluzi ahlolwe ngolwazi lomuntu siqu. Kodwa lokho akusho ukuthi kufanele usebenzise into efanayo. Amathuluzi ngokwawo awabalulekile, avela futhi aphelelwe yisikhathi. Umsebenzi wethu wobunjiniyela ukuqonda izimiso eziyisisekelo: kungani sidinga leli qembu lamathuluzi nokuthi yiziphi izinkinga zomsebenzi esingazixazulula ngosizo lwabo. Kungakho ekugcineni kwesigaba ngasinye ngishiya izixhumanisi zamathuluzi afanayo angasetshenziswa enhlanganweni yakho.

Yini engekho kulesi sihloko

Ngiyaphinda futhi ukuthi i-athikili ayiphathelene namathuluzi athile, ngakho-ke ngeke kube khona ukufakwa kwekhodi kusuka kumadokhumenti nezincazelo zemiyalelo ethile. Kodwa ekupheleni kwesigaba ngasinye ngishiya izixhumanisi zokutadisha okuningiliziwe.

Lokhu kwenziwa ngoba: 

  • le nto kulula kakhulu ukuyithola emithonjeni ehlukahlukene (imibhalo, izincwadi, izifundo zevidiyo);
  • uma siqala ukujula, kuzodingeka sibhale izingxenye ze-10, 20, 30 zalesi sihloko (ngenkathi izinhlelo zingu-2-3);
  • Angifuni nje ukuchitha isikhathi sakho njengoba ungase ufune ukusebenzisa amanye amathuluzi ukuze ufinyelele imigomo efanayo.

Hlanganisa

Ngingathanda ngempela ukuthi lesi sihloko sibe usizo kuwo wonke umfundi, hhayi nje ukufunda nokukhohlwa. Kunoma yisiphi isifundo, ukuzijwayeza kuyisici esibaluleke kakhulu. Lokhu ngikulungiselele Inqolobane ye-GitHub enemiyalelo yesinyathelo ngesinyathelo yokuthi ungayenza kanjani yonke into kusukela ekuqaleni. Kukhona nomsebenzi wasekhaya okulindele ukuthi uqiniseke ukuthi awukopishi ngokungenangqondo imigqa yemiyalelo oyenzayo.

Hlela

Isinyathelo
Ubuchwepheshe
Amathuluzi

1
Ukusebenza kwasendaweni (lungiselela ukuhlolwa kwedemo yewebhu / ye-android bese uyiqhuba endaweni) 
Node.js, Selenium, Appium

2
Izinhlelo zokulawula i-Version 
I-Git

3
Ukufakwa kwesitsha
I-Docker, igridi ye-Selenium, i-Selenoid (Iwebhu, i-Android)

4
CI/CD
I-Gitlab CI

5
Amapulatifomu wefu
I-Google Cloud Platform

6
I-Orchestration
Kubernetes

7
Ingqalasizinda njengekhodi (IaC)
Terraform, Ansible

Isakhiwo sesigaba ngasinye

Ukugcina ukulandisa kucacile, isigaba ngasinye sichazwa ngokulandela uhlaka olulandelayo:

  • incazelo emfushane yobuchwepheshe,
  • inani lengqalasizinda ezenzakalelayo,
  • umfanekiso wesimo samanje sengqalasizinda,
  • izixhumanisi zokufunda,
  • amathuluzi afanayo.

1. Yenza izivivinyo endaweni

Incazelo emfushane yobuchwepheshe

Lesi isinyathelo nje sokulungiselela ukwenza izivivinyo zedemo endaweni futhi uqinisekise ukuthi ziyaphumelela. Engxenyeni engokoqobo, i-Node.js isetshenziswa, kodwa ulimi lokuhlela nenkundla nakho akubalulekile futhi ungasebenzisa lezo ezisetshenziswa enkampanini yakho. 

Kodwa-ke, njengamathuluzi wokuzenzakalelayo, ngincoma ukusebenzisa i-Selenium WebDriver yamapulatifomu ewebhu kanye ne-Appium yesikhulumi se-Android, ngokulandelana, njengoba ezinyathelweni ezilandelayo sizosebenzisa izithombe ze-Docker ezenzelwe ukusebenza ngokuqondile nalawa mathuluzi. Ngaphezu kwalokho, uma kukhulunywa ngezidingo zomsebenzi, lawa mathuluzi yiwona adingeka kakhulu emakethe.

Njengoba kungenzeka ukuthi uqaphele, sicabangela kuphela izivivinyo zewebhu ne-Android. Ngeshwa, i-iOS yindaba ehluke ngokuphelele (sibonga i-Apple). Ngihlela ukukhombisa izixazululo nezinqubo ezihlobene ne-IOS ezingxenyeni ezizayo.

Inani lengqalasizinda ezenzakalelayo

Ngokombono wengqalasizinda, ukusebenza endaweni akuhlinzeki ngevelu. Uhlola kuphela ukuthi ukuhlola kusebenza emshinini wendawo kuziphequluli zasendaweni nezilingisi. Kodwa kunoma yikuphi, lokhu kuyisiqalo esidingekayo.

Umfanekiso wesimo samanje sengqalasizinda

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Izixhumanisi zokuhlola

Amathuluzi afanayo

  • noma yiluphi ulimi lokuhlela oluthandayo ngokuhambisana nokuhlolwa kwe-Selenium/Appium;
  • noma yikuphi ukuhlolwa;
  • noma yimuphi umgijimi wokuhlola.

2. Amasistimu okulawula inguqulo (Git)

Incazelo emfushane yobuchwepheshe

Ngeke kube isambulo esikhulu kunoma ubani uma ngithi ukulawulwa kwenguqulo kuyingxenye ebaluleke kakhulu yokuthuthukiswa, kokubili eqenjini futhi ngabanye. Ngokusekelwe emithonjeni ehlukahlukene, kuphephile ukusho ukuthi i-Git ingummeleli odume kakhulu. Isistimu yokulawula inguqulo inikeza izinzuzo eziningi, njengokwabelana ngekhodi, ukugcina izinguqulo, ukubuyisela emagatsheni adlule, ukuqapha umlando wephrojekthi, nezipele. Ngeke sixoxe ngephuzu ngalinye ngokuningiliziwe, njengoba ngiqinisekile ukuthi ujwayelene nalo futhi ulisebenzisa emsebenzini wakho wansuku zonke. Kodwa uma kungazelelwe kungenjalo, khona-ke ngincoma ukuthi ngime kancane ukufunda lesi sihloko futhi ngigcwalise lesi sikhala ngokushesha ngangokunokwenzeka.

Inani lengqalasizinda ezenzakalelayo

Futhi lapha ungabuza umbuzo onengqondo: “Kungani esitshela nge-Git? Wonke umuntu uyakwazi lokhu futhi uyisebenzisela ikhodi yokuthuthukisa kanye nekhodi yokuhlola okuzenzakalelayo.” Uzobe uqinisile, kodwa kulesi sihloko sikhuluma ngengqalasizinda futhi lesi sigaba sisebenza njengokubuka kuqala kwesigaba sesi-7: "Ingqalasizinda njengeKhodi (IaC)". Kithina, lokhu kusho ukuthi yonke ingqalasizinda, okuhlanganisa nokuhlola, ichazwa ngendlela yekhodi, ngakho-ke singasebenzisa amasistimu enguqulo kuyo futhi sithole izinzuzo ezifanayo nezokuthuthukisa kanye nekhodi yokuzenzakalela.

Sizobheka i-IaC ngokuningiliziwe esinyathelweni sesi-7, kodwa ngisho namanje ungaqala ukusebenzisa i-Git endaweni ngokwakha inqolobane yasendaweni. Isithombe esikhulu sizonwetshwa lapho sengeza inqolobane ekude nengqalasizinda.

Umfanekiso wesimo samanje sengqalasizinda

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Izixhumanisi zokuhlola

Amathuluzi afanayo

3. Ukufakwa kwesitsha (I-Docker)

Incazelo emfushane yobuchwepheshe

Ukukhombisa ukuthi ukufakwa kwesitsha kuyiguqule kanjani imithetho yomdlalo, ake sibuyele emuva emashumini ambalwa eminyaka. Ngaleso sikhathi, abantu babethenga futhi basebenzise imishini yeseva ukuze basebenzise izinhlelo zokusebenza. Kodwa ezimweni eziningi, izinsiza zokuqalisa ezidingekayo zazingaziwa kusengaphambili. Ngenxa yalokho, izinkampani zachitha imali ekuthengeni amaseva abizayo, anamandla, kodwa amanye ala mandla awazange asetshenziswe ngokuphelele.

Isigaba esilandelayo sokuziphendukela kwemvelo kwakuyimishini ebonakalayo (ama-VM), eyaxazulula inkinga yokumosha imali ezinsizeni ezingasetshenzisiwe. Lobu buchwepheshe buye benza kwaba nokwenzeka ukusebenzisa izinhlelo zokusebenza ngokuzimela komunye nomunye ngaphakathi kweseva efanayo, kwabiwa indawo ehlukaniswe ngokuphelele. Kodwa, ngeshwa, noma ibuphi ubuchwepheshe bunezinkinga zabo. Ukusebenzisa i-VM kudinga isistimu yokusebenza egcwele, edla i-CPU, i-RAM, isitoreji futhi, kuye nge-OS, izindleko zelayisensi zidinga ukucatshangelwa. Lezi zici zithinta isivinini sokulayisha futhi zenza ukuphatheka kube nzima.

Futhi manje sifika ku-containerization. Nakulokhu futhi, lobu buchwepheshe buxazulula inkinga yangaphambilini, njengoba iziqukathi zingasebenzisi i-OS egcwele, ekhulula inani elikhulu lezinsiza futhi inikeze isisombululo esisheshayo nesiguquguqukayo sokuphatheka.

Vele, ubuchwepheshe be-containation abuyona into entsha futhi yethulwa okokuqala ngasekupheleni kweminyaka yama-70s. Ngalezo zinsuku, ucwaningo oluningi, intuthuko, nemizamo yenziwa. Kodwa yi-Docker eyajwayela lobu buchwepheshe futhi yabenza bafinyeleleka kalula kubantu abaningi. Namuhla, uma sikhuluma ngeziqukathi, esikhathini esiningi sisho i-Docker. Uma sikhuluma ngeziqukathi ze-Docker, sisho iziqukathi ze-Linux. Singasebenzisa izinhlelo zeWindows ne-macOS ukuze sisebenzise iziqukathi, kodwa kubalulekile ukuqonda ukuthi kulokhu kuvela isendlalelo esengeziwe. Isibonelo, i-Docker ku-Mac iqhuba iziqukathi buthule ngaphakathi kwe-Linux VM engasindi. Sizobuyela kulesi sihloko uma sidingida ngokugijima ama-emulators e-Android ngaphakathi kweziqukathi, ngakho-ke lapha kukhona i-nuance ebaluleke kakhulu okudingeka kuxoxwe ngayo ngokuningiliziwe.

Inani lengqalasizinda ezenzakalelayo

Sithole ukuthi ukufakwa kweziqukathi kanye ne-Docker kuhle. Ake sibheke lokhu kumongo wokuzenzakalela, ngoba wonke amathuluzi noma ubuchwepheshe budinga ukuxazulula inkinga. Ake siveze izinkinga ezisobala zokuhlola okuzenzakalelayo kumongo wokuhlolwa kwe-UI:

  • inani elikhulu lokuncika lapho kufakwa i-Selenium futhi ikakhulukazi i-Appium;
  • izinkinga zokuhambisana phakathi kwezinguqulo zeziphequluli, izilingisi nabashayeli;
  • ukuntuleka kwesikhala esingasodwa seziphequluli/izifanisi, okubaluleke kakhulu ekusebenzeni okufanayo;
  • okunzima ukuphatha nokugcina uma udinga ukusebenzisa iziphequluli eziyi-10, 50, 100 noma eziyi-1000 ngesikhathi esisodwa.

Kodwa njengoba i-Selenium iyithuluzi elisebenza ngokuzenzakalelayo elidume kakhulu futhi i-Docker iyithuluzi elithandwa kakhulu lokuthwala, akufanele kumangaze ukuthi othile uzame ukuwahlanganisa ukuze enze ithuluzi elinamandla lokuxazulula izinkinga ezibalwe ngenhla. Ake sicabangele izixazululo ezinjalo ngokuningiliziwe. 

Igridi ye-Selenium ku-docker

Leli thuluzi lidume kakhulu emhlabeni we-Selenium ngokusebenzisa iziphequluli eziningi emishinini eminingi futhi liyiphathe lisuka kuhabhu emaphakathi. Ukuze uqale, udinga ukubhalisa okungenani izingxenye ezi-2: Ihabhu kanye namaNodi. Ihabhu iyinodi emaphakathi ethola zonke izicelo ezivela ekuhlolweni futhi izisabalalise kumaNodes afanelekile. Ku-Node ngayinye singamisa ukucushwa okuthile, isibonelo, ngokucacisa isiphequluli esisifunayo kanye nenguqulo yaso. Nokho, sisadinga ukunakekela abashayeli besiphequluli abahambisanayo ngokwethu futhi sibafake kumaNodes esiwafunayo. Ngalesi sizathu, igridi ye-Selenium ayisetshenziswa ngendlela ehlanzekile, ngaphandle kwalapho sidinga ukusebenza neziphequluli ezingakwazi ukufakwa ku-Linux OS. Kuzo zonke ezinye izimo, isixazululo esivumelana nezimo kakhulu nesilungile kungaba ukusebenzisa izithombe ze-Docker ukusebenzisa i-Selenium grid Hub namaNodes. Le ndlela ikwenza kube lula ukuphatha ama-node, njengoba singakhetha isithombe esisidingayo ngezinguqulo ezihambisanayo zeziphequluli nezishayeli esezifakiwe.

Naphezu kokubuyekezwa okungalungile mayelana nokuzinza, ikakhulukazi uma usebenzisa inombolo enkulu yamaNodes ngokuhambisana, igridi ye-Selenium iseyithuluzi elidume kakhulu lokuqhuba izivivinyo ze-Selenium ngokuhambisana. Kubalulekile ukuqaphela ukuthi ukuthuthukiswa okuhlukahlukene nokuguqulwa kwaleli thuluzi kubonakala njalo emthonjeni ovulekile, olwa namabhodlela ahlukahlukene.

I-Selenoid yeWebhu

Leli thuluzi liyimpumelelo emhlabeni we-Selenium njengoba lisebenza ngaphandle kwebhokisi futhi lenze impilo yonjiniyela abaningi be-automation yaba lula kakhulu. Okokuqala, lokhu akukhona okunye ukuguqulwa kwegridi ye-Selenium. Esikhundleni salokho, abathuthukisi badala inguqulo entsha ngokuphelele ye-Selenium Hub e-Golang, ehlanganiswe nezithombe ze-Docker ezingasindi zeziphequluli ezihlukahlukene, yanikeza umfutho ekuthuthukisweni kokuhlola okuzenzakalelayo. Ngaphezu kwalokho, endabeni ye-Selenium Grid, kufanele sinqume zonke iziphequluli ezidingekayo nezinguqulo zazo kusengaphambili, okungeyona inkinga lapho usebenza nesiphequluli esisodwa kuphela. Kepha uma kukhulunywa ngeziphequluli eziningi ezisekelwayo, i-Selenoid iyisixazululo sokuqala ngenxa yesici sayo esithi 'isiphequluli esifunwayo'. Okudingekayo kithi ukulanda izithombe ezidingekayo ngeziphequluli kusengaphambili futhi sibuyekeze ifayela lokucushwa i-Selenoid exhumana nalo. Ngemuva kokuthi i-Selenoid ithole isicelo esivivinyweni, izokwethula ngokuzenzakalelayo isiqukathi esifiswayo ngesiphequluli osifunayo. Lapho ukuhlolwa kuqedwa, i-Selenoid izohoxisa isiqukathi, ngaleyo ndlela ikhulule izinsiza zezicelo zesikhathi esizayo. Le ndlela iqeda ngokuphelele inkinga eyaziwayo 'yokucekelwa phansi kwe-node' esivame ukuhlangana nayo kugridi ye-Selenium.

Kodwa, maye, i-Selenoid namanje ayiyona inhlamvu yesiliva. Sithole isici esithi 'isiphequluli esifunwayo', kodwa isici esithi 'izinsiza ezifunekayo' asikatholakali. Ukuze sisebenzise i-Selenoid, kufanele siyisebenzise ku-hardware ebonakalayo noma ku-VM, okusho ukuthi kufanele sazi kusengaphambili ukuthi zingaki izinsiza ezidinga ukwabiwa. Ngicabanga ukuthi lokhu akuyona inkinga kumaphrojekthi amancane asebenzisa iziphequluli eziyi-10, ezingama-20 noma ezingama-30 ngokuhambisana. Kodwa kuthiwani uma sidinga i-100, 500, 1000 nangaphezulu? Akuwenzi umqondo ukugcina nokukhokhela izinsiza eziningi ngaso sonke isikhathi. Ezigabeni 5 no-6 zalesi sihloko, sizoxoxa ngezixazululo ezikuvumela ukuthi ulinganise, ngaleyo ndlela wehlise kakhulu izindleko zenkampani.

I-Selenoid ye-Android

Ngemuva kwempumelelo ye-Selenoid njengethuluzi lewebhu elizenzakalelayo, abantu bafuna into efanayo ku-Android. Futhi kwenzeka - i-Selenoid ikhishwe ngokusekelwa kwe-Android. Ngokombono womsebenzisi wezinga eliphezulu, isimiso sokusebenza sifana ne-web automation. Umehluko kuphela ukuthi esikhundleni seziqukathi zesiphequluli, i-Selenoid isebenzisa iziqukathi ze-emulator ze-Android. Ngokubona kwami, leli okwamanje ithuluzi lamahhala elinamandla kakhulu lokusebenzisa izivivinyo ze-Android ngokuhambisana.

Angithandi ngempela ukukhuluma ngezici ezingezinhle zaleli thuluzi, njengoba ngilithanda ngempela. Kodwa noma kunjalo, kunezinto ezimbi ezifanayo ezisebenza ku-web automation futhi zihlotshaniswa nokukala. Ngaphezu kwalokhu, sidinga ukukhuluma ngomkhawulo owodwa futhi ongamangala uma sisetha ithuluzi okokuqala ngqa. Ukuze sisebenzise izithombe ze-Android, sidinga umshini ophathekayo noma i-VM enosekelo lwe-virtualization esidlekeni. Emqondisweni wokwenza kanjani, ngikhombisa ukuthi ungakwenza kanjani lokhu ku-Linux VM. Kodwa-ke, uma ungumsebenzisi we-macOS futhi ufuna ukusebenzisa i-Selenoid endaweni, lapho-ke lokhu ngeke kwenzeke ukwenza izivivinyo ze-Android. Kodwa ungakwazi njalo ukusebenzisa i-Linux VM endaweni nge-'nested virtualization' emisiwe futhi usebenzise i-Selenoid ngaphakathi.

Umfanekiso wesimo samanje sengqalasizinda

Ngokwengqikithi yalesi sihloko, sizokwengeza amathuluzi angu-2 ukukhombisa ingqalasizinda. Lawa igridi ye-Selenium yokuhlolwa kwewebhu kanye ne-Selenoid yokuhlolwa kwe-Android. Esifundweni se-GitHub, ngizokukhombisa futhi ukuthi ungasebenzisa kanjani i-Selenoid ukwenza izivivinyo zewebhu. 

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Izixhumanisi zokuhlola

Amathuluzi afanayo

  • Akhona amanye amathuluzi okufaka iziqukathi, kepha i-Docker idume kakhulu. Uma ufuna ukuzama enye into, khumbula ukuthi amathuluzi esiwakhava okuqalisa ukuhlolwa kwe-Selenium ngokuhambisana ngeke asebenze ngaphandle kwebhokisi.  
  • Njengoba sekushiwo, kunezinguqulo eziningi ze-Selenium grid, isibonelo, I-Zalenium.

4.CI/CD

Incazelo emfushane yobuchwepheshe

Umkhuba wokuhlanganisa okuqhubekayo udume kakhulu ekuthuthukisweni futhi uhambisana nezinhlelo zokulawula inguqulo. Naphezu kwalokhu, nginomuzwa wokuthi kukhona ukudideka emagameni. Kulesi sigaba ngithanda ukuchaza ukuguqulwa kwe-3 yalobu buchwepheshe ngokombono wami. Ku-inthanethi uzothola izindatshana eziningi ezinezincazelo ezihlukene, futhi kujwayelekile uma umbono wakho wehluka. Okubaluleke kakhulu ukuthi nisekhasini elilodwa nozakwenu.

Ngakho, kunamagama ama-3: CI - Ukuhlanganiswa Okuqhubekayo, i-CD - Ukulethwa Okuqhubekayo kanye ne-CD - Ukuthunyelwa Okuqhubekayo. (Ngezansi ngizosebenzisa la magama ngesiNgisi). Ukuguqulwa ngakunye kwengeza izinyathelo ezimbalwa ezengeziwe kumugqa wakho wokuthuthukisa. Kodwa izwi eqhubekayo (okuqhubekayo) kuyinto ebaluleke kakhulu. Kulo mongo, sisho into eyenzekayo kusukela ekuqaleni kuze kube sekupheleni, ngaphandle kokuphazamiseka noma ukungenelela mathupha. Ake sibheke i-CI & CD kanye ne-CD kulo mongo.

  • Ukuhlanganisa Okuqhubekayo lesi yisinyathelo sokuqala sokuziphendukela kwemvelo. Ngemva kokuhambisa ikhodi entsha kuseva, silindele ukuthola impendulo esheshayo yokuthi izinguquko zethu zilungile. Ngokuvamile, i-CI ihlanganisa ukusebenzisa amathuluzi okuhlaziya ikhodi emile kanye nokuhlolwa kweyunithi/kwangaphakathi kwe-API. Lokhu kusivumela ukuthi sithole ulwazi mayelana nekhodi yethu phakathi kwamasekhondi/imizuzu embalwa.
  • Ukulethwa Okuqhubekayo kuyisinyathelo esithuthuke kakhulu lapho senza khona izivivinyo zokuhlanganisa/i-UI. Kodwa-ke, kulesi sigaba asitholi imiphumela ngokushesha njenge-CI. Okokuqala, lezi zinhlobo zokuhlola zithatha isikhathi eside ukuqeda. Okwesibili, ngaphambi kokwethula, kufanele sithumele izinguquko zethu endaweni yokuhlola/yesiteji. Ngaphezu kwalokho, uma sikhuluma ngokuthuthukiswa kweselula, kuzovela isinyathelo esengeziwe sokudala ukwakheka kohlelo lwethu lokusebenza.
  • Ukuthunyelwa Okuqhubekayo sicabanga ukuthi sikhipha ngokuzenzakalelayo izinguquko zethu ekukhiqizeni uma zonke izivivinyo zokwamukela ziphasiswe ezigabeni ezedlule. Ngokungeziwe kulokhu, ngemva kwesiteji sokukhishwa, ungalungiselela izigaba ezihlukahlukene, njengokusebenzisa ukuhlolwa kwentuthu ekukhiqizeni kanye nokuqoqa amamethrikhi entshisakalo. Ukuthunyelwa Okuqhubekayo kungenzeka kuphela ngokufakwa okuhle ngokuhlolwa okuzenzakalelayo. Uma noma yikuphi ukungenelela okwenziwa mathupha kudingekile, okuhlanganisa nokuhlola, lokhu akusekho okuqhubekayo (eqhubekayo). Khona-ke singasho ukuthi ipayipi lethu lihambisana kuphela nomkhuba wokuThuthukiswa Okuqhubekayo.

Inani lengqalasizinda ezenzakalelayo

Kulesi sigaba, kufanele ngicacise ukuthi uma sikhuluma ngokuhlolwa kwe-UI ekugcineni kuya kokuphela, kusho ukuthi kufanele sikhiphe izinguquko zethu namasevisi ahlobene ezindaweni zokuhlola. Ukuhlanganisa Okuqhubekayo - inqubo ayisebenzi kulo msebenzi futhi kufanele sinakekele ukusebenzisa okungenani izinqubo Zokudiliva Okuqhubekayo. Ukuthunyelwa Okuqhubekayo nakho kunengqondo kumongo wokuhlolwa kwe-UI uma sizokusebenzisa ekukhiqizeni.

Futhi ngaphambi kokuthi sibheke umfanekiso woshintsho lwezakhiwo, ngifuna ukusho amagama ambalwa nge-GitLab CI. Ngokungafani namanye amathuluzi e-CI/CD, i-GitLab inikeza indawo yokugcina ekude nezinye izici eziningi ezengeziwe. Ngakho, i-GitLab ingaphezu kwe-CI. Kuhlanganisa ukuphathwa kwekhodi yomthombo, ukuphathwa kwe-Agile, amapayipi e-CI/CD, amathuluzi okugawula nokuqoqwa kwamamethrikhi ngaphandle kwebhokisi. I-architecture ye-GitLab iqukethe i-Gitlab CI/CD kanye ne-GitLab Runner. Nansi incazelo emfushane evela kuwebhusayithi esemthethweni:

I-Gitlab CI/CD iwuhlelo lwewebhu olune-API egcina isimo sayo kusizindalwazi, iphethe amaphrojekthi/yakha futhi inikeza isixhumi esibonakalayo somsebenzisi. I-GitLab Runner uhlelo lokusebenza olwakhayo. Ingafakwa ngokuhlukene futhi isebenza ne-GitLab CI/CD nge-API. Ukuhlola okusebenzayo udinga kokubili isibonelo se-Gitlab kanye ne-Runner.

Umfanekiso wesimo samanje sengqalasizinda

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Izixhumanisi zokuhlola

Amathuluzi afanayo

5. Izinkundla zamafu

Incazelo emfushane yobuchwepheshe

Kulesi sigaba sizokhuluma ngomkhuba odumile obizwa ngokuthi 'amafu omphakathi'. Naphezu kwezinzuzo ezinkulu ezinikezwa ubuchwepheshe be-virtualization kanye ne-containation echazwe ngenhla, sisadinga izinsiza zekhompyutha. Izinkampani zithenga amaseva abizayo noma ziqashe izikhungo zedatha, kodwa kulokhu kuyadingeka ukwenza izibalo (ngezinye izikhathi ezingenakwenzeka) ukuthi zingaki izinsiza esizozidinga, noma sizozisebenzisa 24/7 futhi ngaziphi izinjongo. Isibonelo, ukukhiqiza kudinga iseva esebenzisa u-XNUMX/XNUMX, kodwa ingabe sidinga izinsiza ezifanayo zokuhlola ngaphandle kwamahora okusebenza? Kuphinde kuncike ohlotsheni lokuhlola olwenziwayo. Isibonelo kungaba ukuhlolwa komthwalo/ingcindezi esihlela ukukusebenzisa ngamahora angewona awemisebenzi ukuze sithole imiphumela ngakusasa. Kodwa nakanjani ukutholakala kweseva engu-XNUMX/XNUMX akudingekile ekuhloleni okuzenzakalelayo kokuphela kuya ekupheleni futhi ikakhulukazi hhayi ezindaweni zokuhlola mathupha. Ezimweni ezinjalo, kungaba kuhle ukuthola izinsiza eziningi ngangokunokwenzeka lapho kudingeka, uzisebenzise, ​​futhi uyeke ukukhokha lapho zingasadingeki. Ngaphezu kwalokho, kungaba kuhle ukuzithola khona manjalo ngokuchofoza amagundane okumbalwa noma ukusebenzisa imibhalo embalwa. Yilokhu okusetshenziselwa amafu omphakathi. Ake sibheke incazelo:

“Ifu lomphakathi lichazwa njengezinsiza zekhompuyutha ezihlinzekwa ngabahlinzeki bezinkampani zangaphandle nge-inthanethi esesidlangalaleni, okwenza zitholakale kunoma ubani ofuna ukuzisebenzisa noma ukuzithenga. Zingase zibe mahhala noma zithengiswe lapho zifunwa khona, okuvumela amakhasimende ukuthi akhokhele kuphela ukusetshenziswa ngakunye kwemijikelezo ye-CPU, isitoreji, noma umkhawulokudonsa abawusebenzisayo. "

Kunombono wokuthi amafu omphakathi ayabiza. Kodwa umqondo wabo oyinhloko uwukunciphisa izindleko zenkampani. Njengoba kushiwo ngaphambili, amafu omphakathi akuvumela ukuthi uthole izinsiza ngokufunwa futhi ukhokhele kuphela isikhathi osisebenzisayo. Futhi, ngezinye izikhathi siyakhohlwa ukuthi abasebenzi bathola amaholo, kanti ochwepheshe nabo bayinsiza ebizayo. Kumele kucatshangelwe ukuthi amafu omphakathi enza ukusekelwa kwengqalasizinda kube lula kakhulu, okuvumela onjiniyela ukuthi bagxile emisebenzini ebaluleke kakhulu. 

Inani lengqalasizinda ezenzakalelayo

Yiziphi izinsiza eziqondile esizidingayo ukuze sihlole i-UI ekugcineni? Ngokuyisisekelo lena imishini ebonakalayo noma amaqoqo (sizokhuluma nge-Kubernetes esigabeni esilandelayo) sokusebenzisa iziphequluli nama-emulators. Lapho sifuna ukusebenzisa iziphequluli ezengeziwe kanye nama-emulators ngasikhathi sinye, kudingeka i-CPU nenkumbulo eyengeziwe futhi siba nemali eningi yokukukhokhela. Ngakho-ke, amafu omphakathi kumongo wokuzenzakalela kokuhlola asivumela ukuthi sisebenzise inombolo enkulu (100, 200, 1000...) yeziphequluli/izifanisi lapho kudingeka khona, sithole imiphumela yokuhlolwa ngokushesha okukhulu futhi siyeke ukukhokhela izinsiza ezinjalo ezinobuhlanya. amandla. 

Abahlinzeki bamafu abadume kakhulu yi-Amazon Web Services (AWS), iMicrosoft Azure, i-Google Cloud Platform (GCP). Umhlahlandlela wendlela yokwenza unikeza izibonelo zokuthi isetshenziswa kanjani i-GCP, kodwa ngokuvamile akunandaba ukuthi usebenziseni emisebenzini ezenzakalelayo. Wonke ahlinzeka cishe ngokusebenza okufanayo. Ngokuvamile, ukukhetha umhlinzeki, abaphathi bagxila kuyo yonke ingqalasizinda yenkampani kanye nezidingo zebhizinisi, okungaphezu kobubanzi balesi sihloko. Konjiniyela abazenzakalelayo, kuzothakazelisa kakhulu ukuqhathanisa ukusetshenziswa kwabahlinzeki bamafu nokusetshenziswa kwezinkundla zamafu eziqondiswe ngqo izinjongo zokuhlola, njengeSauce Labs, BrowserStack, BitBar, njalo njalo. Ngakho nathi asikwenze! Ngokubona kwami, iSauce Labs iyipulazi elidume kakhulu lokuhlola ifu, yingakho ngiyisebenzisele ukuqhathanisa. 

I-GCP vs Sauce Labs ngezinjongo zokuzenzakalela:

Ake sicabange ukuthi sidinga ukwenza izivivinyo zewebhu eziyisi-8 nezingu-8 ze-Android ngesikhathi esisodwa. Kulokhu sizosebenzisa i-GCP futhi sisebenzise imishini ebonakalayo emi-2 nge-Selenoid. Kwesokuqala sizophakamisa iziqukathi eziyi-8 ezineziphequluli. Kwesibili kukhona iziqukathi eziyi-8 ezinama-emulators. Ake sibheke izintengo:  

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni
Ukuze siqalise isiqukathi esisodwa nge-Chrome, siyasidinga n1-okujwayelekile-1 imoto. Endabeni ye-Android kuyoba n1-okujwayelekile-4 kwe-emulator eyodwa. Eqinisweni, indlela evumelana nezimo futhi eshibhile ukusetha amanani athile omsebenzisi e-CPU/Memori, kodwa okwamanje lokhu akubalulekile uma kuqhathaniswa nama-Sauce Labs.

Futhi nazi izinkokhelo zokusebenzisa ama-Sauce Labs:

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni
Ngikholwa ukuthi usuwubonile umehluko, kodwa ngisazohlinzeka ngetafula elinezibalo zomsebenzi wethu:

Izinsiza ezidingekayo
Nyanga zonke
Amahora okusebenza(8am - 8pm)
Amahora okusebenza+ Okubalulekile

I-GCP Yewebhu
n1-okujwayelekile-1 x 8 = n1-okujwayelekile-8
$194.18
izinsuku ezingu-23 * 12h * 0.38 = $104.88 
izinsuku ezingu-23 * 12h * 0.08 = $22.08

I-Sauce Labs Yewebhu
Ukuhlolwa okuhambisanayo kwe-Virtual Cloud8
$1.559
-
-

I-GCP ye-Android
n1-okujwayelekile-4 x 8: n1-okujwayelekile-16
$776.72
izinsuku ezingu-23 * 12h * 1.52 = $419.52 
izinsuku ezingu-23 * 12h * 0.32 = $88.32

I-Sauce Labs ye-Android
Ukuhlola okuhambisanayo kwedivayisi ye-Real Cloud 8
$1.999
-
-

Njengoba ubona, umehluko ezindlekweni mkhulu, ikakhulukazi uma wenza izivivinyo kuphela phakathi nesikhathi sokusebenza samahora ayishumi nambili. Kepha unganciphisa izindleko nangokwengeziwe uma usebenzisa imishini etholakala kuqala. Kwenzenjani?

I-VM eyandulelayo iyisibonelo ongasidala futhi usisebenzise ngentengo ye-muchower kunezimo ezivamile. Nokho, i-Compute Engine ingase inqamule (preempt) lezi zimo uma idinga ukufinyelela kulezo zinsiza kweminye imisebenzi. Izimo ezingalungiseka ziwumthamo oweqile we-Compute Engine, ngakho ukutholakala kwazo kuyahlukahluka ngokuya ngokusetshenziswa.

Uma izinhlelo zakho zokusebenza ziwabekezelela amaphutha futhi zingamelana nemibandela engase ibe khona, izimo ezingalungiseka zinganciphisa izindleko zakho ze-Compute Engine kakhulu. Isibonelo, imisebenzi yokucubungula i-batch ingasebenza ezimweni ezitholakalayo. Uma ezinye zalezo zimo zinqanyulwa ngesikhathi sokucutshungulwa, umsebenzi uhamba kancane kodwa awumi ngokuphelele. Izimo ezingalungiseka ziqeda imisebenzi yakho yokucubungula inqwaba ngaphandle kokubeka umthwalo womsebenzi owengeziwe kuzimo zakho ezikhona futhi ngaphandle kokudinga ukuthi ukhokhe inani eligcwele lezimo ezengeziwe ezivamile.

Futhi namanje akukapheli! Eqinisweni, ngiqinisekile ukuthi akekho owenza izivivinyo amahora ayi-12 ngaphandle kokuphumula. Futhi uma kunjalo, ungaqala ngokuzenzakalelayo futhi umise imishini ebonakalayo lapho ingadingeki. Isikhathi sangempela sokusebenzisa singancishiswa sibe amahora angu-6 ngosuku. Khona-ke inkokhelo kumongo womsebenzi wethu izokwehla ibe ngu-$11 ngenyanga ezipheqululini eziyi-8. Akumangalisi yini lokhu? Kodwa ngemishini engenakulinganiswa kufanele siqaphele futhi silungiselele ukuphazamiseka nokungazinzi, nakuba lezi zimo zingahlinzekwa futhi ziphathwe ngesofthiwe. Kuyafaneleka!

Kodwa angisho neze ukuthi 'ungalokothi usebenzise amapulazi okuhlola amafu'. Banezinzuzo eziningi. Okokuqala, lokhu akuwona nje umshini obonakalayo, kodwa isisombululo esiphelele sokuhlola esizenzakalelayo esinesethi yokusebenza ngaphandle kwebhokisi: ukufinyelela okukude, amalogi, izithombe-skrini, ukuqoshwa kwevidiyo, iziphequluli ezihlukahlukene kanye namadivayisi eselula aphathekayo. Ezimweni eziningi, lokhu kungaba enye indlela ebalulekile ye-chic. Izinkundla zokuhlola ziwusizo ikakhulukazi ku-automation ye-IOS, lapho amafu omphakathi akwazi ukunikeza izinhlelo ze-Linux/Windows kuphela. Kodwa sizokhuluma nge-iOS ezihlokweni ezilandelayo. Ngincoma ukuthi ngaso sonke isikhathi ngibheke isimo futhi ngiqale emisebenzini: kwezinye izimo ishibhile futhi kuphumelela kakhulu ukusebenzisa amafu omphakathi, kanti kwezinye izinkundla zokuhlola zifanelekile imali esetshenzisiwe.

Umfanekiso wesimo samanje sengqalasizinda

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Izixhumanisi zokuhlola

Amathuluzi afanayo:

6. I-orchestration

Incazelo emfushane yobuchwepheshe

Nginezindaba ezinhle - cishe sesisekupheleni kwesihloko! Okwamanje, ingqalasizinda yethu yokuzenzakalela iqukethe ukuhlolwa kwewebhu ne-Android, esikusebenzisa ku-GitLab CI ngokuhambisana, sisebenzisa amathuluzi anikwe amandla i-Docker: igridi ye-Selenium ne-Selenoid. Ngaphezu kwalokho, sisebenzisa imishini ebonakalayo edalwe nge-GCP ukusingatha iziqukathi ezineziphequluli nama-emulators. Ukunciphisa izindleko, siqala le mishini ebonakalayo kuphela ngokufunwa futhi siyimise lapho ukuhlolwa kungenziwa. Ingabe kukhona okunye okungathuthukisa ingqalasizinda yethu? Impendulo ithi yebo! Hlangana no-Kubernetes (K8s)!

Okokuqala, ake sibheke ukuthi amagama i-orchestration, iqoqo, ne-Kubernetes ahlobene kanjani. Ezingeni eliphezulu, i-orchestration isistimu ephakela futhi iphathe izinhlelo zokusebenza. Ngokuzenzakalela kokuhlola, izinhlelo zokusebenza ezinjalo ezineziqukathi ziyigridi ye-Selenium ne-Selenoid. I-Docker ne-K8s bayaphelelisana. Eyokuqala isetshenziselwa ukuthunyelwa kwesicelo, eyesibili i-orchestration. Ngokulandelayo, i-K8s iyiqoqo. Umsebenzi weqoqo ukusebenzisa ama-VM njengamaNodes, okukuvumela ukuthi ufake ukusebenza okuhlukahlukene, izinhlelo kanye nezinsizakalo ngaphakathi kweseva eyodwa (iqoqo). Uma noma iyiphi yamaNode ehluleka, amanye amaNode azocosha, okuqinisekisa ukusebenza okungaphazamiseki kohlelo lwethu. Ngaphezu kwalokhu, ama-K8 anokusebenza okubalulekile okuhlobene nokukala, ngenxa yalokho sithola ngokuzenzakalelayo inani eliphelele lezinsiza ngokusekelwe emthwalweni nasekubekeni imikhawulo.

Eqinisweni, ukuthumela i-Kubernetes mathupha kusukela ekuqaleni akuwona neze umsebenzi omncane. Ngizoshiya isixhumanisi esiya kumhlahlandlela odumile othi "Kubernetes The Hard Way" futhi uma uthanda, ungazijwayeza. Kodwa, ngenhlanhla, zikhona ezinye izindlela namathuluzi. Indlela elula ukusebenzisa i-Google Kubernetes Engine (GKE) ku-GCP, ezokuvumela ukuthi uthole iqoqo elenziwe ngomumo ngokuchofoza okumbalwa. Ngincoma ukusebenzisa le ndlela ukuze uqale ukufunda, njengoba izokuvumela ukuba ugxile ekufundeni indlela yokusebenzisa ama-K8s emisebenzini yakho esikhundleni sokufunda ukuthi izingxenye zangaphakathi kufanele zihlanganiswe kanjani. 

Inani lengqalasizinda ezenzakalelayo

Ake sibheke izici ezimbalwa ezibalulekile ezihlinzekwa yi-K8s:

  • ukuthunyelwa kohlelo lokusebenza: kusetshenziswa iqoqo elinamanodi amaningi esikhundleni sama-VM;
  • ukukala okuguquguqukayo: kunciphisa izindleko zezinsiza ezisetshenziswa kuphela lapho kudingeka;
  • ukuziphilisa: ukubuyisela okuzenzakalelayo kwama-pods (ngenxa yokuthi iziqukathi nazo zibuyiselwa);
  • ukukhishwa kwezibuyekezo nokuhlehliswa kwezinguquko ngaphandle kwesikhathi sokuphumula: amathuluzi okubuyekeza, iziphequluli nama-emulators akuphazamisi umsebenzi wabasebenzisi bamanje.

Kodwa ama-K8s akakabi yinhlamvu yesiliva. Ukuze siqonde zonke izinzuzo nemikhawulo kumongo wamathuluzi esiwacabangelayo (igridi ye-Selenium, i-Selenoid), sizoxoxa kafushane ngesakhiwo se-K8s. I-Cluster iqukethe izinhlobo ezimbili zamaNodes: Ama-Master Nodes kanye namaNodi Ezisebenzi. Ama-Master Node anomthwalo wemfanelo wokuphatha, ukuthunyelwa kanye nezinqumo zokuhlela. Izindawo zabasebenzi yilapho izicelo zethulwa khona. Amanodi aqukethe nendawo yesikhathi sokusebenza esitsheni. Esimweni sethu, lena yi-Docker, enesibopho semisebenzi ehlobene neziqukathi. Kodwa kukhona nezinye izixazululo, isibonelo okuhlanganisiwe. Kubalulekile ukuqonda ukuthi ukukala noma ukuzilapha akusebenzi ngqo ezitsheni. Lokhu kwenziwa ngokwengeza/ukunciphisa inani lama-pods, nawo aqukethe iziqukathi (imvamisa isitsha esisodwa nge-pod ngayinye, kodwa kuye ngomsebenzi kungase kube nokunye). Uhlu lwezinga eliphezulu luqukethe ama-node ezisebenzi, ngaphakathi kwawo kukhona ama-pods, ngaphakathi lapho iziqukathi ziphakanyiswa.

Isici sokukala siyisihluthulelo futhi singasetshenziswa kuwo womabili ama-node ngaphakathi kwe-cluster node-pool nama-pods ngaphakathi kwendawo. Kunezinhlobo ezi-2 zokukala ezisebenza kuwo womabili ama-node nama-pods. Uhlobo lokuqala luvundlile - ukukala kwenzeka ngokwandisa inani lamanodi/pods. Lolu hlobo lukhethwa kakhulu. Uhlobo lwesibili, ngokufanele, luqondile. Ukukala kwenziwa ngokukhulisa usayizi wama-node/pods, hhayi inombolo yawo.

Manje ake sibheke amathuluzi ethu kumongo wamagama angenhla.

Igridi ye-Selenium

Njengoba kushiwo ngaphambili, igridi ye-Selenium iyithuluzi elidume kakhulu, futhi akumangazi ukuthi ifakwe esitsheni. Ngakho-ke, akumangazi ukuthi igridi ye-Selenium ingasatshalaliswa kuma-K8s. Isibonelo sendlela yokwenza lokhu singatholakala endaweni esemthethweni ye-K8s. Njengokuvamile, nginamathisela izixhumanisi ekugcineni kwesigaba. Ngaphezu kwalokho, umhlahlandlela wendlela yokwenza ukhombisa ukuthi ungakwenza kanjani lokhu ku-Terraform. Kukhona nemiyalelo yokuthi ulinganisa kanjani inani lama-pods aqukethe iziqukathi zesiphequluli. Kodwa umsebenzi wokukala okuzenzakalelayo kumongo we-K8s awukabi umsebenzi osobala ngokuphelele. Lapho ngiqala ukufunda, angizange ngithole isiqondiso esiwusizo noma izincomo. Ngemuva kwezifundo nokuhlolwa okuningana ngosekelo lwethimba le-DevOps, sikhethe indlela yokukhulisa iziqukathi ngeziphequluli ezidingekayo ngaphakathi kwephodi eyodwa, etholakala ngaphakathi kwendawo eyodwa yesisebenzi. Le ndlela isivumela ukuthi sisebenzise isu lokukala okuvundlile kwama-node ngokwandisa inombolo yawo. Ngithemba ukuthi lokhu kuzoshintsha esikhathini esizayo futhi sizobona izincazelo ezengeziwe zezindlela ezingcono kanye nezixazululo ezenziwe ngomumo, ikakhulukazi ngemva kokukhululwa kwegridi ye-Selenium 4 ngesakhiwo sangaphakathi esishintshile.

I-Selenoid:

Ukuthunyelwa kwe-Selenoid kuma-K8 okwamanje kuyindumalo enkulu. Azihambisani. Ngokombono, singakwazi ukuphakamisa isitsha se-Selenoid ngaphakathi kwe-pod, kodwa uma i-Selenoid iqala ukwethula iziqukathi ezineziphequluli, zisazoba ngaphakathi kwe-pod efanayo. Lokhu kwenza ukukala kungenzeki futhi, ngenxa yalokho, umsebenzi we-Selenoid ngaphakathi kweqoqo ngeke uhluke emsebenzini ongaphakathi komshini obonakalayo. Isiphetho sendaba.

Moon:

Ukwazi lokhu kuphazamiseka lapho besebenza ne-Selenoid, abathuthukisi bakhiphe ithuluzi elinamandla elibizwa ngokuthi iNyanga. Leli thuluzi ekuqaleni laliklanyelwe ukusebenza ne-Kubernetes futhi, ngenxa yalokho, isici se-autoscaling singakwazi futhi kufanele sisetshenziswe. Ngaphezu kwalokho, ngingasho ukuthi okwamanje kuphela ithuluzi emhlabeni we-Selenium, elinokusekelwa kweqoqo le-K8s lendabuko ngaphandle kwebhokisi (ayisatholakali, bona ithuluzi elilandelayo ). Izici ezibalulekile zeNyanga ezihlinzeka ngalokhu kusekelwa yilezi: 

Akunasimo ngokuphelele. I-Selenoid igcina ulwazi lwenkumbulo mayelana nezikhathi zesiphequluli esisebenza njengamanje. Uma ngesizathu esithile inqubo yayo iphahlazeka - khona-ke wonke amaseshini asebenzayo ayalahleka. Inyanga ngokuphambene ayinaso isimo sangaphakathi futhi ingaphindaphindwa kuzo zonke izikhungo zedatha. Izikhathi zesiphequluli zihlala ziphila ngisho noma isifaniso esisodwa noma ngaphezulu siyehla.

Ngakho-ke, iNyanga iyisixazululo esihle, kepha kunenkinga eyodwa: ayimahhala. Intengo incike enanini lamaseshini. Ungaqalisa izikhathi ezingu-0-4 kuphela mahhala, okungelona usizo olukhulu. Kodwa, kusukela ngeseshini yesihlanu, kuzodingeka ukhokhe u-$5 ngayinye. Isimo singase sihluke enkampanini ngenkampani, kodwa kithi, ukusebenzisa iNyanga akusizi ngalutho. Njengoba ngichazile ngenhla, singasebenzisa ama-VM nge-Selenium Grid ngokufunwa noma sandise inani lamaNodes kuqoqo. Cishe ngomugqa owodwa, sethula iziphequluli ezingu-500 futhi simise zonke izinsiza ngemva kokuqedwa kokuhlolwa. Uma sisebenzisa iNyanga, bekuzodingeka sikhokhe okwengeziwe okungu-500 x 5 = $2500 ngenyanga, kungakhathaliseki ukuthi sivivinya kangaki. Futhi, angisho ukuthi ungayisebenzisi iNyanga. Emisebenzini yakho, lokhu kungaba yisixazululo esibalulekile, isibonelo, uma unamaphrojekthi/amaqembu amaningi enhlanganweni yakho futhi udinga iqoqo elikhulu elivamile lawo wonke umuntu. Njengenjwayelo, ngishiya isixhumanisi ekugcineni futhi ngincoma ukwenza zonke izibalo ezidingekayo kumongo womsebenzi wakho.

I-Callisto: (Qaphela! Lokhu akukho esihlokweni sokuqala futhi kuqukethwe kuphela ekuhunyushweni kwesiRashiya)

Njengoba ngishilo, i-Selenium iyithuluzi elithandwa kakhulu, futhi insimu ye-IT ithuthuka ngokushesha okukhulu. Ngenkathi ngisasebenza ekuhumusheni, ithuluzi elisha elithembisayo elibizwa ngokuthi iCallisto livele kuwebhu (sawubona iCypress nabanye ababulali beSelenium). Isebenza ngokwendabuko ngama-K8 futhi ikuvumela ukuthi usebenzise iziqukathi ze-Selenoid kuma-pods, asakazwe kuwo wonke amaNode. Yonke into isebenza ngaphandle kwebhokisi, kufaka phakathi i-autoscaling. Kuhle, kodwa kudinga ukuhlolwa. Sengivele ngikwazile ukusebenzisa leli thuluzi futhi ngenza izivivinyo ezimbalwa. Kodwa kusesekuseni kakhulu ukwenza iziphetho, ngemuva kokuthola imiphumela ebangeni elide, mhlawumbe ngizokwenza isibuyekezo ezihlokweni ezizayo. Okwamanje ngishiya kuphela izixhumanisi zocwaningo oluzimele.  

Umfanekiso wesimo samanje sengqalasizinda

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Izixhumanisi zokuhlola

Amathuluzi afanayo

7. Ingqalasizinda njengeKhodi (IaC)

Incazelo emfushane yobuchwepheshe

Futhi manje sifika esigabeni sokugcina. Ngokuvamile, lobu buchwepheshe nemisebenzi ehlobene akuwona umthwalo wonjiniyela abazenzakalelayo. Futhi kunezizathu zalokhu. Okokuqala, ezinhlanganweni eziningi, izindaba zengqalasizinda zingaphansi komnyango we-DevOps futhi amathimba okuthuthukisa awakhathaleli ngempela ukuthi yini eyenza ipayipi lisebenze nokuthi yonke into exhumene nalo idinga ukusekelwa. Okwesibili, masikhulume iqiniso, umkhuba weNgqalasizinda njengeKhodi (IaC) awukamukelwa ezinkampanini eziningi. Kodwa nakanjani isiphenduke inkambiso ethandwayo futhi kubalulekile ukuzama ukuhileleka ezinkambisweni, izindlela namathuluzi ahambisana nayo. Noma okungenani uhlale usesikhathini samanje.

Ake siqale ngesisusa sokusebenzisa le ndlela. Sesixoxile kakade ukuthi ukuze senze izivivinyo ku-GitlabCI, sizodinga okungenani izinsiza zokuqalisa i-Gitlab Runner. Futhi ukuze sisebenzise iziqukathi ezineziphequluli/izilingisi, sidinga ukubekisa i-VM noma iqoqo. Ngokungeziwe ezinsizeni zokuhlola, sidinga inani elibalulekile lomthamo wokusekela intuthuko, isiteji, izindawo zokukhiqiza, ezihlanganisa nesizindalwazi, amashejuli azenzakalelayo, ukulungiselelwa kwenethiwekhi, izilinganisi zomthwalo, amalungelo abasebenzisi, nokunye. Udaba olubalulekile wumzamo odingekayo ukuze kusekelwe konke. Kunezindlela ezimbalwa esingenza ngazo izinguquko futhi sikhiphe izibuyekezo. Isibonelo, kumongo we-GCP, singasebenzisa ikhonsoli ye-UI esipheqululini futhi senze zonke izenzo ngokuchofoza izinkinobho. Okunye kungaba ukusebenzisa amakholi e-API ukuze uhlanganyele nezinkampani zamafu, noma usebenzise insiza yomugqa womyalo we-gcloud ukuze wenze ukukhohlisa okufunayo. Kodwa ngenani elikhulu ngempela lezinhlaka ezahlukene kanye nezakhi zengqalasizinda, kuba nzima noma akunakwenzeka ukwenza yonke imisebenzi ngesandla. Ngaphezu kwalokho, zonke lezi zenzo ezenziwa ngesandla azilawuleki. Asikwazi ukuzihambisa ukuze zibuyekezwe ngaphambi kokuthi zisetshenziswe, sisebenzise isistimu yokulawula inguqulo, futhi sibuyisele emuva ngokushesha izinguquko eziholele kulesi sigameko. Ukuze kuxazululwe izinkinga ezinjalo, onjiniyela badala futhi bakha imibhalo ye-bash/shell ezenzakalelayo, engengcono kakhulu kunezindlela zangaphambilini, ngoba akulula kangako ukufunda, ukuqonda, ukulondoloza nokuguqula ngokushesha ngesitayela senqubo.

Kulesi sihloko kanye nendlela yokuqondisa, ngisebenzisa amathuluzi we-2 ahlobene nokusebenza kwe-IaC. Lezi yi-Terraform ne-Ansible. Abanye abantu bakholelwa ukuthi akunangqondo ukuzisebenzisa ngasikhathi sinye, ngoba ukusebenza kwazo kuyafana futhi ziyashintshana. Kodwa iqiniso liwukuthi ekuqaleni banikezwa imisebenzi ehluke ngokuphelele. Futhi iqiniso lokuthi lawa mathuluzi kufanele aphelelisane laqinisekiswa esethulweni esihlanganyelwe onjiniyela abamele i-HashiCorp ne-RedHat. Umehluko womqondo wukuthi i-Terraform iyithuluzi lokuhlinzeka lokuphatha amaseva ngokwawo. Nakuba i-Ansible iyithuluzi lokuphatha ukuhlela umsebenzi walo ukufaka, ukulungisa nokuphatha isofthiwe kulawa maseva.

Esinye isici esibalulekile esihlukanisayo salawa mathuluzi isitayela sokubhala amakhodi. Ngokungafani ne-bash ne-Ansible, i-Terraform isebenzisa isitayela sokumemezela esisekelwe encazelweni yesimo sokuphela esifiswayo okufanele sizuzwe ngenxa yokubulawa. Isibonelo, uma sizodala ama-VM angu-10 futhi sisebenzise izinguquko nge-Terraform, khona-ke sizothola ama-VM angu-10. Uma siphinda siqhuba iskripthi, akukho okuzokwenzeka njengoba sesivele sinama-VM angu-10, futhi iTerraform iyazi ngalokhu ngoba igcina isimo samanje sengqalasizinda efayeleni lesifundazwe. Kepha i-Ansible isebenzisa indlela yenqubo futhi, uma uyicela ukuthi yakhe ama-VM ayi-10, lapho kwethulwa okokuqala sizothola ama-VM ayi-10, afana neTerraform. Kodwa ngemva kokuqala kabusha sizobe sesinama-VM angu-20. Lona umehluko obalulekile. Ngesitayela senqubo, asigcini isimo samanje futhi simane sichaza ukulandelana kwezinyathelo okufanele zenziwe. Yebo, singakwazi ukubhekana nezimo ezihlukahlukene, sengeze amasheke amaningana ukuba khona kwezinsiza kanye nesimo samanje, kodwa asikho isidingo sokuchitha isikhathi sethu nokubeka umzamo ekulawuleni le logic. Ngaphezu kwalokho, lokhu kwandisa ingozi yokwenza amaphutha. 

Sifingqa konke lokhu okungenhla, singaphetha ngokuthi i-Terraform ne-declarative notation iyithuluzi elifaneleka kakhulu lokuhlinzeka ngamaseva. Kodwa kungcono ukunikeza umsebenzi wokuphatha ukucushwa ku-Ansible. Ngalokho kuphuma endleleni, ake sibheke izimo zokusetshenziswa kumongo we-automation.

Inani lengqalasizinda ezenzakalelayo

Okuwukuphela kwento ebalulekile okufanele uyiqonde lapha ukuthi ingqalasizinda yokuhlola ezishintshayo kufanele ibhekwe njengengxenye yayo yonke ingqalasizinda yenkampani. Lokhu kusho ukuthi zonke izinqubo ze-IaC kufanele zisetshenziswe emhlabeni wonke kuzisetshenziswa zayo yonke inhlangano. Ubani onesibopho salokhu kuncike ezinqubweni zakho. Ithimba le-DevOps linolwazi oluthe xaxa kulezi zinkinga, libona isithombe sonke salokho okwenzekayo. Kodwa-ke, onjiniyela be-QA bahileleke kakhulu ohlelweni lokwakha i-automation kanye nesakhiwo sepayipi, okubavumela ukuba babone kangcono zonke izinguquko ezidingekayo namathuba okwenza ngcono. Inketho engcono kakhulu ukusebenzisana, ukushintshana ngolwazi nemibono ukuze kuzuzwe umphumela olindelekile. 

Nazi izibonelo ezimbalwa zokusebenzisa i-Terraform ne-Ansible kumongo wokuhlola okuzenzakalelayo kanye namathuluzi esixoxe ngawo ngaphambili:

1. Chaza izici ezidingekayo namapharamitha wama-VM namaqoqo usebenzisa i-Terraform.

2. Usebenzisa i-Ansible, faka amathuluzi adingekayo ukuze uhlole: idokha, i-Selenoid, i-Selenium Grid bese ulanda izinguqulo ezidingekayo zeziphequluli/izifanisi.

3. Usebenzisa i-Terraform, chaza izici ze-VM lapho kuzokwethulwa khona i-GitLab Runner.

4. Faka i-GitLab Runner kanye namathuluzi adingekayo ahambisana nawo usebenzisa i-Ansible, setha izilungiselelo kanye nezilungiselelo.

Umfanekiso wesimo samanje sengqalasizinda

Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Izixhumanisi ongazihlola:

Amathuluzi afanayo

Ake sikufingqe!

Isinyathelo
Ubuchwepheshe
Amathuluzi
Inani lengqalasizinda ezenzakalelayo

1
Ukugijima kwendawo
Node.js, Selenium, Appium

  • Amathuluzi aziwa kakhulu ewebhu neselula
  • Isekela izilimi eziningi nezinkundla (kufaka phakathi i-Node.js)

2
Izinhlelo zokulawula i-Version 
I-Git

  • Izinzuzo ezifanayo ngekhodi yokuthuthukisa

3
Ukufakwa kwesitsha
I-Docker, igridi ye-Selenium, i-Selenoid (Iwebhu, i-Android)

  • Ukwenza izivivinyo ngokuhambisana
  • Izindawo ezingazodwa
  • Ukuthuthukiswa kwenguqulo elula, evumelana nezimo
  • Imisa ngamandla izinsiza ezingasetshenzisiwe
  • Kulula ukusetha

4
CI/CD
I-Gitlab CI

  • Ihlola ingxenye yepayipi
  • Impendulo Esheshayo
  • Ukubonakala kwayo yonke inkampani/ithimba

5
Amapulatifomu wefu
I-Google Cloud Platform

  • Izinsiza ezidingekayo (sikhokha kuphela uma kudingeka)
  • Kulula ukuphatha nokubuyekeza
  • Ukubonakala nokulawulwa kwazo zonke izinsiza

6
I-Orchestration
Kubernetes
Kumongo weziqukathi ezineziphequluli/izilingisi ngaphakathi kwama-pods:

  • Ukukala/ukukala okuzenzakalelayo
  • Ukuziphilisa
  • Izibuyekezo nokuhlehliswa ngaphandle kokuphazamiseka

7
Ingqalasizinda njengekhodi (IaC)
Terraform, Ansible

  • Izinzuzo ezifanayo nengqalasizinda yentuthuko
  • Zonke izinzuzo zenguqulo yekhodi
  • Kulula ukwenza izinguquko nokugcina
  • Okuzenzakalelayo ngokugcwele

Imidwebo yemephu yengqondo: ukuvela kwengqalasizinda

isinyathelo1: Indawo
Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Isinyathelo 2: VCS
Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Isinyathelo sesi-3: Ukufakwa kweziqukathi 
Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Isinyathelo 4: CI/CD 
Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

step5: Cloud Platform
Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Isinyathelo 6:I-Orchestration
Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Isinyathelo 7: IaC
Amathuluzi e-DevOps awawona nje awe-DevOps. Inqubo yokwakha ingqalasizinda yokuhlola ezishintshayo kusukela ekuqaleni

Yini okulandelayo?

Ngakho, lesi ukuphela kwesihloko. Kodwa ekugcineni, ngingathanda ukwenza izivumelwano nawe.

Kusukela ohlangothini lwakho
Njengoba ngishilo ekuqaleni, ngingathanda ukuthi lesi sihloko sibe usizo olungokoqobo futhi sikusize usebenzise ulwazi oluzuzwe emsebenzini wangempela. Ngiyangeza futhi isixhumanisi somhlahlandlela osebenzayo.

Kodwa ngisho nangemva kwalokho, ungayeki, uzilolonge, ufunde izixhumanisi ezifanele nezincwadi, thola ukuthi kusebenza kanjani enkampanini yakho, thola izindawo ezingathuthukiswa futhi ubambe iqhaza kuzo. Ngikufisela inhlanhla!

Kusukela ohlangothini lwami

Kusukela esihlokweni ungabona ukuthi lena bekuyingxenye yokuqala kuphela. Naphezu kweqiniso lokuthi kukhulu impela, izihloko ezibalulekile azikahlanganiswa lapha. Engxenyeni yesibili, ngihlela ukubheka ingqalasizinda ye-automation kumongo we-IOS. Ngenxa yemikhawulo ye-Apple ekusebenziseni izilingisi ze-iOS kuphela ezinhlelweni ze-macOS, uhla lwethu lwezixazululo lunciphile. Isibonelo, asikwazi ukusebenzisa i-Docker ukusebenzisa isifanisi noma amafu omphakathi ukuze siqhube imishini ebonakalayo. Kodwa lokhu akusho ukuthi azikho ezinye izindlela. Ngizozama ukukugcina unolwazi lwakamuva ngezixazululo ezithuthukile namathuluzi esimanje!

Futhi, angizange ngikhulume ngezihloko ezinkulu kakhulu ezihlobene nokuqapha. Engxenyeni yesi-3, ngizobheka amathuluzi okuqapha ingqalasizinda aziwa kakhulu nokuthi iyiphi idatha namamethrikhi okufanele icatshangelwe.

Futhi ekugcineni. Ngokuzayo, ngihlela ukukhipha isifundo sevidiyo sokwakha ingqalasizinda yokuhlola namathuluzi adumile. Njengamanje, kunezifundo ezimbalwa kanye nezifundo ku-DevOps ku-inthanethi, kodwa zonke izinto ezisetshenziswayo zethulwa kumongo wentuthuko, hhayi ukuhlola okuzenzakalelayo. Kulolu daba, ngidinga ngempela impendulo yokuthi isifundo esinjalo sizothakazelisa futhi sibaluleke emphakathini wabahloli nonjiniyela bemishini ezenzakalelayo. Ngikubonga kusengaphambili!

Source: www.habr.com

Engeza amazwana