Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Icandelo 1: Web/Android

Qaphela:: eli nqaku yinguqulelo yesiRashiya yenqaku lokuqala β€œIzixhobo zeDevOps azikho kwiDevOps kuphela. "Ukwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni." Nangona kunjalo, yonke imizekeliso, amakhonkco, iingcaphuno kunye namagama agcinwe ngolwimi lwangaphambili ukuze aphephe ukugqwethwa kwentsingiselo xa iguqulelwe kwisiRashiya. Ndikunqwenelela ukonwaba ngokufunda!

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Okwangoku, i-specialty ye-DevOps yenye yezona zinto zifunwa kakhulu kwishishini le-IT. Ukuba uvula iindawo ezithandwayo zokukhangela imisebenzi kunye nokucoca ngomvuzo, uya kubona ukuba imisebenzi enxulumene ne-DevOps iphezulu kuluhlu. Nangona kunjalo, kubalulekile ukuqonda ukuba oku kubhekiselele ikakhulu kwisikhundla 'eSiphezulu', nto leyo ethetha ukuba umviwa unomgangatho ophezulu wezakhono, ulwazi lweteknoloji kunye nezixhobo. Oku kwakhona kuza nenqanaba eliphezulu loxanduva olunxulumene nokusebenza okungaphazanyiswa kwemveliso. Nangona kunjalo, saqala ukulibala ukuba yintoni iDevOps. Ekuqaleni, yayingengomntu okanye isebe elithile. Ukuba sijonga iinkcazo zeli gama, siya kufumana izibizo ezininzi ezintle nezichanekileyo, ezifana nendlela yokusebenza, izenzo, ifilosofi yenkcubeko, iqela leengqikelelo, njalo njalo.

Ubungcali bam yinjineli yovavanyo oluzenzekelayo (i-QA automation engineer), kodwa ndiyakholelwa ukuba akufanele idibaniswe kuphela nokubhala iimvavanyo ezizenzekelayo okanye ukuphuhlisa isakhelo sovavanyo lwesakhelo. Ngo-2020, ulwazi lweziseko ezizenzekelayo nalo lubalulekile. Oku kukuvumela ukuba uququzelele inkqubo ye-automation ngokwakho, ukusuka kwiimvavanyo zokuqhuba ukubonelela ngeziphumo kubo bonke abachaphazelekayo ngokuhambelana neenjongo zakho. Ngenxa yoko, izakhono ze-DevOps ziyimfuneko ukuze wenziwe umsebenzi. Kwaye konke oku kulungile, kodwa, ngelishwa, kukho ingxaki (spoiler: eli nqaku lizama ukwenza lula le ngxaki). Ingongoma kukuba i-DevOps inzima. Kwaye oku kucacile, kuba iinkampani aziyi kuhlawula kakhulu into elula ukuyenza ... Kwihlabathi le-DevOps, kukho inani elikhulu lezixhobo, imigaqo, kunye nezenzo ezifunekayo ukuba ziphathwe kakuhle. Oku kunzima ngakumbi ekuqaleni kwekhondo lomsebenzi kwaye kuxhomekeke kumava obugcisa aqokelelweyo.

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni
umthombo: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Apha mhlawumbi siya kugqiba ngenxalenye yentshayelelo kwaye sigxile kwinjongo yeli nqaku. 

Limalunga nantoni eli nqaku?

Kweli nqaku, ndiza kubelana ngamava am okwakha isiseko sovavanyo oluzenzekelayo. Mininzi imithombo yolwazi kwi-Intanethi malunga nezixhobo ezahlukeneyo kunye nendlela yokuzisebenzisa, kodwa ndingathanda ukuzijonga ngokuthe ngqo kumxholo wokuzenzekelayo. Ndiyakholelwa ukuba iinjineli ezininzi ezizenzekelayo ziqhelene nemeko xa kungekho mntu ngaphandle kwakho oqhuba iimvavanyo eziphuhlisiweyo okanye okhathalayo ngokuzigcina. Ngenxa yoko, iimvavanyo ziphelelwa lixesha kwaye kufuneka uchithe ixesha uzihlaziya. Kwakhona, ekuqaleni kwekhondo lomsebenzi, oku kunokuba ngumsebenzi onzima kakhulu: ukwenza isigqibo ngobulumko ukuba zeziphi izixhobo eziya kunceda ukuphelisa ingxaki ethile, indlela yokukhetha, ukuqwalasela nokugcina. Abanye abavavanyi baphendukela kwi-DevOps (abantu) ngoncedo kwaye, masithembeke, le ndlela isebenza. Kwiimeko ezininzi le inokuba kuphela kwendlela kuba singabonakali kuyo yonke into exhomekeke kuyo. Kodwa njengoko sisazi, i-DevOps ngabafana abaxakeke kakhulu, kuba kufuneka bacinge malunga nesiseko senkampani yonke, ukuthunyelwa, ukubeka iliso, ii-microservices kunye neminye imisebenzi efanayo ngokuxhomekeke kumbutho / iqela. Njengoko kuqhelekile ukuba njalo, i-automation ayiyona nto iphambili. Kwimeko enjalo, simele sizame ukwenza konke okusemandleni ethu ukususela ekuqaleni kuse ekugqibeleni. Oku kuya kunciphisa ukuxhomekeka, kukhawulezise ukuhamba komsebenzi, ukuphucula izakhono zethu kwaye kusivumele ukuba sibone umfanekiso omkhulu wento eyenzekayo.

Eli nqaku libonisa ezona zixhobo zidumileyo nezidumileyo kwaye libonisa indlela yokuzisebenzisa ukwakha isiseko esizenzekelayo inyathelo ngenyathelo. Iqela ngalinye limelwe ngezixhobo eziye zavavanywa ngamava obuqu. Kodwa oko akuthethi ukuba kufuneka usebenzise into efanayo. Izixhobo ngokwazo azibalulekanga, zivela kwaye ziphelelwe lixesha. Umsebenzi wethu wobunjineli kukuqonda imigaqo esisiseko: kutheni sifuna eli qela lezixhobo kwaye zeziphi iingxaki zomsebenzi esinokuzisombulula ngoncedo lwabo. Yiyo loo nto ekupheleni kwecandelo ngalinye ndishiya amakhonkco kwizixhobo ezifanayo ezinokuthi zisetyenziswe kumbutho wakho.

Yintoni engekho kweli nqaku

Ndiphinda kwakhona ukuba inqaku alikho malunga nezixhobo ezithile, ngoko ke akuyi kubakho ukufakwa kwekhowudi kumaxwebhu kunye neenkcazo zemiyalelo ethile. Kodwa ekupheleni kwecandelo ngalinye ndishiya amakhonkco okufunda ngokubanzi.

Oku kwenziwa ngenxa yokuba: 

  • le nto ilula kakhulu ukuyifumana kwimithombo eyahlukeneyo (amaxwebhu, iincwadi, iikhosi zevidiyo);
  • ukuba siqala ukungena nzulu, kuya kufuneka sibhale iinxalenye ezili-10, ezingama-20, ezingama-30 zeli nqaku (ngelixa izicwangciso zi-2-3);
  • Andifuni ukuchitha ixesha lakho kuba unokufuna ukusebenzisa ezinye izixhobo ukufezekisa iinjongo ezifanayo.

Zenza

Ndingathanda ngokwenene ukuba lo mbandela ube luncedo kubo bonke abafundi, kwaye ungafundi nje kwaye ulibale. Kulo naluphi na uphononongo, ukuziqhelanisa yinxalenye ebaluleke kakhulu. Le nto ndiyilungiselele Indawo yokugcina yeGitHub enemiyalelo yenyathelo nenyathelo lendlela yokwenza yonke into ukusuka ekuqaleni. Kukwakho nomsebenzi wasekhaya olindele ukuba uqiniseke ukuba awukhupheli ngaphandle kwengqondo imigca yemiyalelo oyenzayo.

Cwangciso

inyathelo
Technology
izixhobo

1
Ukusebenza kwendawo (lungiselela iwebhu / iimvavanyo zedemo ye-android kwaye uyiqhube ekuhlaleni) 
Node.js, Selenium, Appium

2
Iinkqubo zolawulo lwenguqulelo 
Git

3
Ukufakwa komgqomo
I-Docker, igridi yeSelenium, i-Selenoid (iWebhu, i-Android)

4
CI/CD
Gitlab CI

5
Amaqonga amafu
Platform ye Cloud Google

6
Uluhlu
Kubernetes

7
Iziseko zophuhliso njengekhowudi (IaC)
I-Terraform, Ebonakalayo

Ulwakhiwo lwecandelo ngalinye

Ukugcina ibali licacile, icandelo ngalinye lichazwa ngokuhambelana nolu lwandlalo lulandelayo:

  • inkcazo emfutshane yetekhnoloji,
  • ixabiso leziseko ezizenzekelayo,
  • umboniso wemeko yangoku yeziseko ezingundoqo,
  • amakhonkco okufunda,
  • izixhobo ezifanayo.

1. Qhuba iimvavanyo ekuhlaleni

Inkcazo emfutshane yethekhinoloji

Eli linyathelo nje lokulungiselela ukuqhuba iimvavanyo zedemo ekuhlaleni kwaye uqinisekise ukuba ziyaphumelela. Kwinxalenye ebonakalayo, i-Node.js isetyenziswa, kodwa ulwimi lwenkqubo kunye neqonga nazo azibalulekanga kwaye ungasebenzisa ezo zisetyenziswa kwinkampani yakho. 

Nangona kunjalo, njengezixhobo ezizenzekelayo, ndincoma ukusebenzisa i-Selenium WebDriver kwiiplatifomu zewebhu kunye ne-Appium yeqonga le-Android, ngokulandelanayo, ekubeni kumanyathelo alandelayo siza kusebenzisa imifanekiso ye-Docker elungiselelwe ukusebenza ngokukodwa ngezi zixhobo. Ngaphezu koko, ngokubhekisele kwiimfuno zomsebenzi, ezi zixhobo zezona zifunwa kakhulu kwimarike.

Njengoko usenokuba uqaphele, siqwalasela kuphela iimvavanyo zewebhu kunye ne-Android. Ngelishwa, iOS libali elahluke ngokupheleleyo (enkosi Apple). Ndiceba ukubonisa izisombululo ezinxulumene ne-IOS kunye nezenzo kwiindawo ezizayo.

Ixabiso leziseko zophuhliso oluzenzekelayo

Ngokwembono yeziseko zophuhliso, ukusebenza ekuhlaleni akuboneleli naliphi na ixabiso. Ujonga kuphela ukuba iimvavanyo ziqhutywa kumatshini wendawo kwiziphequluli zasekhaya kunye nezifanisi. Kodwa kuyo nayiphi na imeko, oku kuyimfuneko yokuqala.

Umzobo wemeko yangoku yeziseko ezingundoqo

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Amakhonkco okuhlola

Izixhobo ezifanayo

  • naluphi na ulwimi lokuprograma oluthandayo ngokubambisana ne-Selenium / iimvavanyo ze-Appium;
  • naluphi na uvavanyo;
  • nawuphi na imbaleki yovavanyo.

2. Iinkqubo zolawulo lwenguqulelo (Git)

Inkcazo emfutshane yethekhinoloji

Ayizukuba sisityhilelo esikhulu nakubani na ukuba ndithi ulawulo lwenguqulelo lubaluleke kakhulu kuphuhliso, kwiqela namntu ngamnye. Ngokusekwe kwimithombo eyahlukeneyo, kukhuselekile ukuthi iGit ngoyena mmeli udumileyo. Inkqubo yokulawula inguqulelo ibonelela ngeengenelo ezininzi, njengokwabelana ngekhowudi, ukugcina iinguqulelo, ukubuyisela kumasebe angaphambili, ukubeka esweni imbali yeprojekthi, kunye nokugcinwa kweekopi. Asiyi kuxoxa ngengongoma nganye ngokweenkcukacha, njengoko ndiqinisekile ukuba uqhelene kakhulu nayo kwaye uyisebenzise kumsebenzi wakho wemihla ngemihla. Kodwa ukuba ngequbuliso akunjalo, ke ndincoma ukunqumamisa ukufunda eli nqaku kwaye ugcwalise esi sikhewu ngokukhawuleza.

Ixabiso leziseko zophuhliso oluzenzekelayo

Kwaye apha unokubuza umbuzo onengqiqo: β€œKutheni esichazela ngeGit? Wonke umntu uyayazi le nto kwaye uyisebenzisela ikhowudi yophuhliso kunye nekhowudi yovavanyo oluzenzekelayo. " Uya kuba ulungile ngokupheleleyo, kodwa kweli nqaku sithetha ngeziseko zophuhliso kwaye eli candelo lisebenza njengemboniso yecandelo lesi-7: "Iziseko zophuhliso njengeKhowudi (IaC)". Kithina, oku kuthetha ukuba zonke iziseko zophuhliso, kubandakanywa novavanyo, zichazwe ngendlela yekhowudi, ngoko ke sinokusebenzisa iinkqubo zokuguqula kuyo kwaye sifumane izibonelelo ezifanayo kunye nophuhliso kunye nekhowudi yokuzenzekelayo.

Siza kujonga i-IaC ngokweenkcukacha ngakumbi kwiNyathelo lesi-7, kodwa nangoku ungaqalisa ukusebenzisa iGit ekuhlaleni ngokwenza indawo yokugcina. Umfanekiso omkhulu uya kwandiswa xa songeza indawo yokugcina ekude kwiziseko ezingundoqo.

Umzobo wemeko yangoku yeziseko ezingundoqo

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Amakhonkco okuhlola

Izixhobo ezifanayo

3. Ukufakwa komgqomo (iDocker)

Inkcazo emfutshane yethekhinoloji

Ukubonisa indlela i-containeration eyitshintshe ngayo imithetho yomdlalo, masibuyele emva kumashumi ambalwa eminyaka. Emva phayaa, abantu babethenga kwaye basebenzisa oomatshini beseva ukuqhuba usetyenziso. Kodwa kwiimeko ezininzi, izixhobo zokuqalisa ezifunekayo zazingaziwa kwangaphambili. Ngenxa yoko, iinkampani zichithe imali ekuthengeni iiseva ezibizayo, ezinamandla, kodwa ezinye zezi zixhobo azizange zisetyenziswe ngokupheleleyo.

Inqanaba elilandelayo lokuziphendukela kwemvelo yayiyimishini ebonakalayo (i-VMs), eyasombulula ingxaki yokuchitha imali kwizinto ezingasetyenziswanga. Le teknoloji yenza ukuba kube lula ukuqhuba izicelo ngokuzimeleyo omnye komnye ngaphakathi kwiseva enye, ukubonelela indawo eyedwa ngokupheleleyo. Kodwa, ngelishwa, nayiphi na iteknoloji ineentsilelo zayo. Ukuqhuba i-VM kufuna inkqubo epheleleyo yokusebenza, edla i-CPU, i-RAM, isitoreji kwaye, ngokuxhomekeke kwi-OS, iindleko zelayisensi kufuneka zithathelwe ingqalelo. Ezi zinto zichaphazela isantya sokulayisha kwaye zenze ukuphatheka kube nzima.

Kwaye ngoku siza kwi-containerization. Kwakhona, le teknoloji isombulula ingxaki yangaphambili, njengoko izikhongozeli zingasebenzisi i-OS epheleleyo, ekhulula inani elikhulu lezixhobo kwaye inike isisombululo esikhawulezayo nesiguquguqukayo sokuphatheka.

Ewe kunjalo, itekhnoloji ye-containerization ayiyonto intsha kwaye yaqala ukuziswa ngasekupheleni kweminyaka engama-70. Ngaloo mihla, uphando oluninzi, uphuhliso kunye neenzame zenziwa. Kodwa yayiyiDocker eyatshintsha le teknoloji kwaye yenza ukuba ifikeleleke ngokulula kubantu abaninzi. Kule mihla, xa sithetha ngezikhongozeli, kwiimeko ezininzi sithetha iDocker. Xa sithetha ngezikhongozeli zeDocker, sithetha izikhongozeli zeLinux. Singasebenzisa iinkqubo zeWindows kunye ne-macOS ukuqhuba izikhongozeli, kodwa kubalulekile ukuqonda ukuba kule meko kukho umaleko owongezelelweyo. Umzekelo, iDocker kwiMac iqhuba ngokuthe cwaka izikhongozeli ngaphakathi kweLinux VM ekhaphukhaphu. Siza kubuyela kwesi sihloko xa sixoxa ngokuqhuba ii-emulators ze-Android ngaphakathi kwezikhongozeli, ke apha kukho i-nuance ebaluleke kakhulu ekufuneka ixoxwe ngakumbi.

Ixabiso leziseko zophuhliso oluzenzekelayo

Sifumanise ukuba isikhongozeli kunye neDocker zipholile. Makhe sijonge oku kumxholo wokuzenzekelayo, kuba zonke izixhobo okanye iteknoloji idinga ukusombulula ingxaki. Makhe sichaze iingxaki ezicacileyo zovavanyo oluzenzekelayo kumxholo wovavanyo lwe-UI:

  • inani elikhulu labaxhomekeke xa ufaka iSelenium kwaye ngakumbi iAppium;
  • iingxaki zokuhambelana phakathi kweenguqulelo zeziphequluli, ii-simulators kunye nabaqhubi;
  • ukunqongophala kwendawo ekwanti kwizikhangeli/izifanisi, ezibaluleke kakhulu ekusebenzeni ngokuhambelanayo;
  • kunzima ukulawula nokugcina ukuba ufuna ukuqhuba i-10, 50, 100 okanye i-1000 yezikhangeli ngexesha elinye.

Kodwa ekubeni i-Selenium sesona sixhobo sisebenza ngokuzenzekela esithandwa kakhulu kwaye i-Docker sesona sixhobo sithandwa kakhulu kwi-container, akufanele kumangalise ukuba kukho umntu ozamile ukuwadibanisa ukuze enze isixhobo esinamandla sokusombulula ezi ngxaki zikhankanywe ngasentla. Makhe siqwalasele izisombululo ezinjalo ngokweenkcukacha. 

Igridi yeSelenium kwidokhi

Esi sixhobo sesona sidumileyo kwihlabathi le-Selenium sokusebenzisa iziphequluli ezininzi koomatshini abaninzi kunye nokulawula ukusuka kwindawo ephakathi. Ukuqala, kufuneka ubhalise ubuncinane iindawo ezi-2: I-Hub kunye ne-Node (s). I-Hub yindawo ephakathi efumana zonke izicelo ezivela kwiimvavanyo kwaye isasazwe kwiiNodes ezifanelekileyo. KwiNode nganye sinokuyilungisa uqwalaselo oluthile, umzekelo, ngokucacisa umkhangeli ofunwayo kunye noguqulelo lwayo. Nangona kunjalo, sisafuna ukunyamekela abaqhubi besiphequluli esihambelanayo ngokwethu kwaye sibafake kwiiNodes ezifunwayo. Ngesi sizathu, igridi yeSelenium ayisetyenziswanga ngendlela ecocekileyo, ngaphandle kwaxa kufuneka sisebenze nezikhangeli ezingenakufakwa kwiLinux OS. Kuzo zonke ezinye iimeko, isisombululo esiguquguqukayo nesichanekileyo siya kuba kukusebenzisa imifanekiso yeDocker ukuqhuba i-Selenium grid Hub kunye neeNodes. Le ndlela ilula kakhulu ulawulo lwe-node, kuba sinokukhetha umfanekiso esiwufunayo kunye neenguqulelo ezihambelanayo zabakhangeli kunye nabaqhubi abasele befakiwe.

Ngaphandle kokuphononongwa okungalunganga malunga nokuzinza, ngakumbi xa uqhuba inani elikhulu leeNodes ngokuhambelanayo, igridi ye-Selenium isesona sixhobo sidumileyo sokuqhuba iimvavanyo zeSelenium ngokufanayo. Kubalulekile ukuba uqaphele ukuba ukuphuculwa okuhlukeneyo kunye nokuguqulwa kwesi sixhobo kubonakala rhoqo kwimithombo evulekile, elwa neebhotile ezahlukeneyo.

Selenoid ukwenzela Web

Esi sixhobo siyimpumelelo kwihlabathi le-Selenium njengoko lisebenza ngaphandle kwebhokisi kwaye lenze ubomi beenjineli ezininzi ezizenzekelayo lula kakhulu. Okokuqala, oku akuyiyo enye inguqulelo yegridi yeSelenium. Endaweni yoko, abaphuhlisi benze inguqulelo entsha ngokupheleleyo yeSelenium Hub eGolang, edityaniswe nemifanekiso yeDocker ekhaphukhaphu kwiziphequluli ezahlukeneyo, yanika amandla kuphuhliso lovavanyo oluzenzekelayo. Ngaphezu koko, kwimeko ye-Selenium Grid, kufuneka sinqume zonke iiphequluli ezifunekayo kunye neenguqulelo zabo kwangaphambili, okungeyona ingxaki xa usebenza nomkhangeli omnye kuphela. Kodwa xa kufikwa kwizikhangeli ezininzi ezixhaswayo, i-Selenoid sisisombululo sokuqala enkosi kwinqaku 'lokukhangela kwimfuno'. Yonke into efunekayo kuthi kukukhuphela imifanekiso efunekayo kunye neziphequluli kwangaphambili kwaye uhlaziye ifayile yoqwalaselo apho i-Selenoid isebenzisana nayo. Emva kokuba i-Selenoid ifumene isicelo kwiimvavanyo, iya kuzisa ngokuzenzekelayo isikhongozeli esifunwayo kunye nesikhangeli esifunwayo. Xa uvavanyo lugqityiwe, i-Selenoid iya kuthatha umhlala-phantsi isikhongozeli, ngaloo ndlela ikhulula izixhobo zezicelo zexesha elizayo. Le ndlela iphelisa ngokupheleleyo ingxaki eyaziwayo 'yokuthotywa kwe-node' esihlala sidibana nayo kwigridi ye-Selenium.

Kodwa, yeha, i-Selenoid ayikabi yimbumbulu yesilivere. Sinento ethi 'ibrowser efunwayo', kodwa inqaku elithi 'izixhobo ezifunekayo' alikafumaneki. Ukusebenzisa i-Selenoid, kufuneka siyifake kwi-hardware ebonakalayo okanye kwi-VM, oku kuthetha ukuba kufuneka sazi kwangaphambili ukuba zingaphi izixhobo ezifunekayo ukuba zabiwe. Ndicinga ukuba oku akuyongxaki kwiiprojekthi ezincinci eziqhuba i-10, i-20 okanye ii-browser ezingama-30 ngokuhambelanayo. Kodwa kuthekani ukuba sifuna i-100, 500, 1000 okanye ngaphezulu? Akukho ngqiqo ukugcina kunye nokuhlawula izixhobo ezininzi kangaka ngalo lonke ixesha. Kumacandelo 5 kunye ne-6 kweli nqaku, siza kuxoxa ngezisombululo ezikuvumela ukuba ulinganise, ngokunciphisa kakhulu iindleko zenkampani.

Selenoid for Android

Emva kwempumelelo ye-Selenoid njengesixhobo se-automation yewebhu, abantu bafuna into efanayo kwi-Android. Kwaye kwenzeka-i-Selenoid yakhululwa ngenkxaso ye-Android. Ukusuka kwinqanaba eliphezulu lomsebenzisi, umgaqo wokusebenza ufana ne-automation web. Umahluko kuphela kukuba endaweni yezikhongozeli zesiphequluli, i-Selenoid iqhuba izitya ze-emulator ze-Android. Ngokoluvo lwam, esi ngoku sesona sixhobo sinamandla sasimahla sokusebenzisa iimvavanyo ze-Android ngokuhambelanayo.

Andithandi ukuthetha malunga nemiba engalunganga yesi sixhobo, kuba ndisithanda kakhulu. Kodwa kunjalo, kukho izinto ezingeloncedo ezifanayo ezisebenza kwi-automation yewebhu kwaye zinxulunyaniswa nokukalwa. Ukongeza koku, kufuneka sithethe ngomda omnye ongaphezulu onokumangalisa ukuba siseta isixhobo okokuqala. Ukusebenzisa imifanekiso ye-Android, sifuna umatshini womzimba okanye i-VM enenkxaso ye-virtualization eneed. Kwisikhokelo sendlela, ndibonisa indlela yokwenza oku kwiLinux VM. Nangona kunjalo, ukuba ungumsebenzisi we-macOS kwaye ufuna ukufaka i-Selenoid ekuhlaleni, ke oku akunakwenzeka ukuqhuba iimvavanyo ze-Android. Kodwa unokuhlala uqhuba i-Linux VM yalapha ekhaya 'nge-nested virtualization' iqwalaselwe kwaye ibeke i-Selenoid ngaphakathi.

Umzobo wemeko yangoku yeziseko ezingundoqo

Kumxholo weli nqaku, siya kongeza izixhobo ze-2 ukubonisa iziseko. Ezi zigridi ze-Selenium zovavanyo lwewebhu kunye ne-Selenoid yovavanyo lwe-Android. Kwisifundo se-GitHub, ndiza kukubonisa indlela yokusebenzisa i-Selenoid ukuqhuba iimvavanyo zewebhu. 

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Amakhonkco okuhlola

Izixhobo ezifanayo

  • Kukho ezinye izixhobo zokufaka izixhobo, kodwa iDocker yeyona idumileyo. Ukuba ufuna ukuzama enye into, hlala ukhumbula ukuba izixhobo esizigubungeleyo zokuqhuba iimvavanyo zeSelenium ngokunxuseneyo aziyi kusebenza ngaphandle kwebhokisi.  
  • Njengoko sele kukhankanyiwe, zininzi izilungiso ze-Selenium grid, umzekelo, Zalenium.

4.CI/CD

Inkcazo emfutshane yethekhinoloji

Isenzo sohlanganiso oluqhubekayo luthandwa kakhulu kuphuhliso kwaye luhambelana neenkqubo zolawulo loguqulelo. Ngaphandle koku, ndivakalelwa kukuba kukho ukubhideka kwisigama. Kulo mhlathi ndingathanda ukuchaza i-3 yokuguqulwa kobu buchwepheshe ngokwembono yam. Kwi-intanethi uya kufumana amanqaku amaninzi aneenguqulelo ezahlukeneyo, kwaye kuyinto eqhelekileyo ukuba uluvo lwakho luyahluka. Eyona nto ibalulekileyo kukuba nikwiphepha elinye noogxa bakho.

Ngoko ke, kukho imimiselo ye-3: CI - UkuHlanganisa ngokuqhubekayo, i-CD - ukuhanjiswa ngokuqhubekayo kunye ne-CD kwakhona - ukusasazwa ngokuqhubekayo. (Ngezantsi ndiza kusebenzisa la magama ngesiNgesi). Uhlengahlengiso ngalunye longeza amanyathelo awongezelelekileyo kumbhobho wakho wophuhliso. Kodwa ilizwi qhubeka (ngokuqhubekayo) yeyona nto ibalulekileyo. Kulo mxholo, sithetha into eyenzekayo ukusuka ekuqaleni ukuya ekupheleni, ngaphandle kokuphazamiseka okanye ungenelelo olwenziwa ngesandla. Makhe sijonge kwi-CI & CD kunye neCD kulo mongo.

  • Umanyano oluqhubekayo eli linyathelo lokuqala lendaleko. Emva kokungenisa ikhowudi entsha kwiseva, silindele ukufumana impendulo ngokukhawuleza ukuba utshintsho lwethu lulungile. Ngokuqhelekileyo, i-CI iquka ukusebenzisa izixhobo zokuhlalutya ikhowudi ye-static kunye neyunithi / iimvavanyo zangaphakathi ze-API. Oku kusivumela ukuba sifumane ulwazi malunga nekhowudi yethu kwimizuzwana embalwa / imizuzu.
  • Ukuhambisa ngokuqhubekayo linyathelo eliphezulu kakhulu apho siqhuba indibaniselwano/imvavanyo ze-UI. Nangona kunjalo, kweli nqanaba asifumani ziphumo ngokukhawuleza njengeCI. Okokuqala, ezi ntlobo zovavanyo zithatha ixesha elide ukugqiba. Okwesibini, ngaphambi kokuqalisa, kufuneka sithumele utshintsho lwethu kwindawo yovavanyo/yeqonga. Ngaphezu koko, ukuba sithetha ngophuhliso lweselula, inyathelo elongezelelweyo libonakala lidala ukwakhiwa kwesicelo sethu.
  • Ukuhanjiswa okuqhubekayo ithatha ukuba sikhulula ngokuzenzekelayo utshintsho lwethu kwimveliso ukuba zonke iimvavanyo zokwamkelwa ziphumelele kwizigaba zangaphambili. Ukongeza koku, emva kwesigaba sokukhululwa, unokuqwalasela izigaba ezahlukeneyo, ezifana nokuqhuba iimvavanyo zomsi kwimveliso kunye nokuqokelela iimetriki zomdla. Ukusasazwa ngokuqhubekayo kunokwenzeka kuphela ngokugubungela kakuhle ngovavanyo oluzenzekelayo. Ukuba kukho nakuphi na ungenelelo olwenziwa ngesandla olufunekayo, kubandakanywa nokuvavanywa, oku akusekho Eqhubekayo (ngokuqhubekayo). Emva koko sinokuthi umbhobho wethu uhambelana kuphela nenkqubo yokuHanjiswa ngokuqhubekayo.

Ixabiso leziseko zophuhliso oluzenzekelayo

Kweli candelo, kufuneka ndicacise ukuba xa sithetha ngovavanyo lwe-UI yokuphela ukuya ekupheleni, oko kuthetha ukuba kufuneka sithumele utshintsho lwethu kunye neenkonzo ezinxulumene novavanyo kwiindawo zovavanyo. UHlanganiso oluqhubekayo - inkqubo ayisebenzi kulo msebenzi kwaye kufuneka sithathele ingqalelo ekuphumezeni ubuncinci beendlela zokuZisa ngokuqhubekayo. Ukusasazwa okuqhubekayo kuyavakala kumxholo weemvavanyo ze-UI ukuba siza kuziqhuba kwimveliso.

Kwaye ngaphambi kokuba sijonge umzekeliso wotshintsho lwezakhiwo, ndifuna ukuthetha amagama ambalwa malunga neGitLab CI. Ngokungafaniyo nezinye izixhobo zeCI/CD, iGitLab ibonelela ngendawo yokugcina ekude kunye nezinye izinto ezininzi ezongezelelweyo. Ke, iGitLab ingaphezulu kweCI. Iquka ulawulo lwekhowudi yomthombo, ulawulo lwe-Agile, iipayipi zeCI / CD, izixhobo zokungena kunye nokuqokelela i-metrics ngaphandle kwebhokisi. Uyilo lweGitLab lubandakanya iGitlab CI/CD kunye neGitLab Runner. Nantsi inkcazelo emfutshane evela kwiwebhusayithi esemthethweni:

I-Gitlab CI / CD iyisicelo sewebhu kunye ne-API egcina imeko yayo kwisiseko sedatha, ilawula iiprojekthi / yakha kwaye inikezela nge-interface yomsebenzisi. I-GitLab Runner sisicelo esakha iinkqubo. Inokusasazwa ngokwahlukeneyo kwaye isebenze neGitLab CI/CD ngeAPI. Kuvavanyo oluqhubayo ufuna zombini umzekelo weGitlab kunye noMbaleki.

Umzobo wemeko yangoku yeziseko ezingundoqo

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Amakhonkco okuhlola

Izixhobo ezifanayo

5. Amaqonga elifu

Inkcazo emfutshane yethekhinoloji

Kweli candelo siza kuthetha ngomkhwa odumileyo obizwa ngokuba 'ngamafu oluntu'. Ngaphandle koncedo olukhulu olubonelelwa bubuchwephesha bokubonwa kunye nobuchwephesha obuchazwe ngasentla, sisafuna izixhobo zekhompyuter. Iinkampani zithenga iiseva ezibizayo okanye zirentise amaziko edatha, kodwa kule meko kuyimfuneko ukwenza izibalo (ngamanye amaxesha kungenangqiqo) malunga nokuba zingaphi izixhobo esiya kuzifuna, nokuba siya kuzisebenzisa i-24/7 kunye nokuba zeziphi iinjongo. Ngokomzekelo, imveliso ifuna iseva eqhuba i-XNUMX/XNUMX, kodwa ngaba sifuna izixhobo ezifanayo zokuvavanya ngaphandle kweeyure zokusebenza? Kukwaxhomekeke kuhlobo lovavanyo olwenziwayo. Umzekelo uya kuba luvavanyo lomthwalo/loxinzelelo esiceba ukuluqhuba ngeeyure ezingezizo ezokusebenza ukuze sifumane iziphumo kusuku olulandelayo. Kodwa ngokuqinisekileyo ubukho beseva ye-XNUMX/XNUMX ayidingeki kuvavanyo oluzenzekelayo ukuya ekupheleni kwaye ngakumbi kungekhona kwiindawo zokuvavanya ngesandla. Kwiimeko ezinjalo, kuya kuba kuhle ukufumana izibonelelo ezininzi kangangoko zifuneka xa zifunwa, zisetyenziswe, kwaye uyeke ukuhlawula xa zingasafuneki. Ngaphaya koko, kuya kuba kuhle ukuzifumana ngoko nangoko ngokwenza unqakrazo lwemouse okumbalwa okanye ukuqhuba izikripthi ezimbalwa. Yiloo nto amafu oluntu asetyenziselwa yona. Makhe sijonge inkcazo:

β€œIlifu likawonke-wonke lichazwa njengeenkonzo zekhompyuter ezibonelelwa ngababoneleli beqela lesithathu kwi-Intanethi kawonke-wonke, ezenza zifumaneke kuye nabani na ofuna ukuzisebenzisa okanye ukuzithenga. Zisenokukhululeka okanye zithengiswe xa zifunwa, zivumela abathengi ukuba bahlawule kuphela ngokusetyenziswa kwemijikelo ye-CPU, ukugcinwa, okanye i-bandwidth abayisebenzisayo. "

Kukho uluvo lokuba amafu oluntu ayabiza. Kodwa ingcamango yabo ephambili kukunciphisa iindleko zenkampani. Njengoko bekutshiwo ngaphambili, amafu oluntu akuvumela ukuba ufumane izibonelelo kwimfuno kwaye uhlawule kuphela ixesha ozisebenzisayo. Kwakhona, ngamanye amaxesha siyalibala ukuba abasebenzi bafumana imivuzo, kwaye iingcali zikwangumthombo obiza kakhulu. Kufuneka kuthathelwe ingqalelo ukuba amafu oluntu enza ukuxhaswa kweziseko zophuhliso kube lula, nto leyo evumela iinjineli ukuba zigxile kwimisebenzi ebaluleke ngakumbi. 

Ixabiso leziseko zophuhliso oluzenzekelayo

Zeziphi izixhobo ezikhethekileyo esizifunayo kuvavanyo lwe-UI yokuphela ukuya ekupheleni? Ngokusisiseko aba ngoomatshini abanyanisekileyo okanye amaqela (siza kuthetha ngeKubernetes kwicandelo elilandelayo) ngokuqhuba iibhrawuza kunye nezifanisi. Iziphequluli ezininzi kunye ne-emulators sifuna ukubaleka ngaxeshanye, i-CPU eninzi kunye nememori efunekayo kwaye imali eninzi kufuneka siyihlawule. Ke, amafu oluntu kumxholo wovavanyo oluzenzekelayo asivumela ukuba siqhube inani elikhulu (100, 200, 1000 ...) leebhrawuza / ii-emulators kwimfuno, sifumane iziphumo zovavanyo ngokukhawuleza kwaye siyeke ukuhlawulela ubuncwane obunzulu obunjalo. amandla. 

Ababoneleli bamafu abaziwayo kakhulu ziiNkonzo zeWebhu ye-Amazon (AWS), iMicrosoft Azure, i-Google Cloud Platform (GCP). Indlela yokukhokela ibonelela ngemizekelo yendlela yokusebenzisa i-GCP, kodwa ngokubanzi akukhathaliseki ukuba usebenzisa ntoni na kwimisebenzi yokuzenzekela. Zonke zibonelela ngokusebenza okufanayo. Ngokuqhelekileyo, ukukhetha umboneleli, ulawulo lujolise kwiziseko ezingundoqo zenkampani kunye neemfuno zoshishino, ezingaphaya kobubanzi beli nqaku. Kwiinjineli ze-automation, kuya kuba yinto enomdla ngakumbi ukuthelekisa ukusetyenziswa kwababoneleli befu kunye nokusetyenziswa kweeplatifomu zefu ngokukodwa kwiinjongo zokuvavanya, ezifana ne-Sauce Labs, i-BrowserStack, i-BitBar, njalo njalo. Ngoko masiyenze nathi! Ngokombono wam, iSauce Labs yeyona fama idumileyo yokuvavanya ifu, yiyo loo nto ndiyisebenzisele ukuthelekisa. 

I-GCP vs iiLabhu zeSauce ngeenjongo zokuzenzela:

Makhe sicinge ukuba kufuneka siqhube iimvavanyo ezisi-8 zewebhu kunye neemvavanyo ezisi-8 ze-Android ngaxeshanye. Kule nto siza kusebenzisa i-GCP kwaye siqhube oomatshini aba-2 abanenyani kunye ne-Selenoid. Kweyokuqala siya kuphakamisa izitya ezisi-8 ezineebhrawuza. Kweyesibini kukho izikhongozeli ezisi-8 ezineemulators. Makhe sijonge amaxabiso:  

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni
Ukwenza isikhongozeli esinye ngeChrome, siyayidinga n1-umgangatho-1 imoto. Kwimeko ye-Android iya kuba n1-umgangatho-4 kwi-emulator enye. Ngapha koko, indlela ebhetyebhetye ngakumbi nefikelelekayo kukuseta amaxabiso athile omsebenzisi kwi-CPU/Memori, kodwa okwangoku akubalulekanga xa kuthelekiswa neeLabhu zeSauce.

Kwaye nantsi imirhumo yokusebenzisa iiLabhu zeSauce:

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni
Ndiyakholelwa ukuba sele uwubonile umahluko, kodwa ndiseza kubonelela ngetafile enezibalo zomsebenzi wethu:

Izibonelelo ezifunekayo
Ngenyanga
Iiyute zokusebenza(8 am - 8pm)
Iiyute zokusebenza+ Eyoyikekayo

I-GCP yeWebhu
n1-umgangatho-1 x 8 = n1-umgangatho-8
$194.18
Iintsuku ezingama-23 * 12h * 0.38 = $ 104.88 
Iintsuku ezingama-23 * 12h * 0.08 = $ 22.08

Sauce Labs for Web
Uvavanyo oluhambelanayo lwe-Cloud8
$1.559
-
-

GCP for Android
n1-umgangatho-4 x 8: n1-umgangatho-16
$776.72
Iintsuku ezingama-23 * 12h * 1.52 = $ 419.52 
Iintsuku ezingama-23 * 12h * 0.32 = $ 88.32

Sauce Labs for Android
Iimvavanyo ezihambelanayo zesiXhobo seLifu 8
$1.999
-
-

Njengoko ubona, umahluko kwiindleko mkhulu, ngakumbi ukuba uqhuba iimvavanyo kuphela ngexesha lokusebenza leeyure ezilishumi elinambini. Kodwa unokunciphisa iindleko nangakumbi ukuba usebenzisa oomatshini abakhoyo. Ingaba yin?

I-VM ebonelelwayo ngumzekelo onokuthi udale kwaye usebenze ngexabiso le-muchower kuneemeko eziqhelekileyo. Nangona kunjalo, i-Compute Engine inokuphelisa (preempt) ezi meko ukuba ifuna ufikelelo kwezo zibonelelo zeminye imisebenzi. Iimeko ezibonelelwayo kubuninzi beNjini yeKhompyutha, ke ukufumaneka kwazo kuyahluka ngokusetyenziswa.

Ukuba ii-apps zakho ziyakwazi ukunyamezela iimpazamo kwaye zinokumelana nemizekelo enokwenzeka, iimeko ezinokuthi zenzeke zinokunciphisa iindleko zakho ze-Compute Engine kakhulu. Umzekelo, imisebenzi yokulungisa ibhetshi inokuqhuba kwiimeko ezinokwenzeka. Ukuba ezinye zezo ziganeko ziyayeka ngexesha lokucubungula, umsebenzi uyacotha kodwa awupheli ngokupheleleyo. Iimeko ezinokwenzeka zigqibezela imisebenzi yakho yokucwangcisa ibhetshi ngaphandle kokubeka umthwalo owongezelelweyo kwiimeko zakho ezikhoyo kwaye ngaphandle kokufuna ukuba uhlawule ixabiso elipheleleyo kwiimeko ezongezelelweyo eziqhelekileyo.

Kwaye ayikapheli! Enyanisweni, ndiqinisekile ukuba akukho mntu uqhuba iimvavanyo iiyure ezili-12 ngaphandle kwekhefu. Kwaye ukuba kunjalo, ungaqala ngokuzenzekelayo kwaye uyeke oomatshini ababonakalayo xa bengafunwa. Ixesha elisetyenziswayo linokuncitshiswa libe ziiyure ezi-6 ngosuku. Emva koko intlawulo kumxholo womsebenzi wethu iya kuncipha ukuya kwi-$ 11 ngenyanga kwiiphequluli ezi-8. Ngaba akumangalisi oku? Kodwa ngoomatshini abangenakulinganiswa kufuneka silumke kwaye silungiselele ukuphazamiseka kunye nokungazinzi, nangona ezi meko zinokubonelelwa kwaye ziphathwe kwisoftware. Kufanelekile!

Kodwa anditsho ukuba 'ungaze usebenzise iifama zovavanyo lwamafu'. Baneengenelo ezininzi. Okokuqala, oku akukona nje umatshini obonakalayo, kodwa isisombululo esipheleleyo sovavanyo oluzenzekelayo kunye neseti yokusebenza ngaphandle kwebhokisi: ukufikelela kude, iilogi, iiskrini, ukurekhodwa kwevidiyo, iziphequluli ezahlukeneyo kunye nezixhobo eziphathekayo eziphathekayo. Kwiimeko ezininzi, oku kunokuba yinto ebalulekileyo ye-chic. Iiplatifti zokuvavanya ziluncedo ngakumbi kwi-automation ye-IOS, xa amafu oluntu anokubonelela ngeenkqubo zeLinux/Windows kuphela. Kodwa siza kuthetha nge-iOS kumanqaku alandelayo. Ndiyincoma ukuba ndihlale ndijonge imeko kwaye ndiqale kwimisebenzi: kwezinye iimeko zibiza kwaye zisebenza ngokufanelekileyo ukusebenzisa amafu oluntu, kwaye kwezinye iiplatifomu zokuvavanya ngokuqinisekileyo zixabisa imali echithwe.

Umzobo wemeko yangoku yeziseko ezingundoqo

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Amakhonkco okuhlola

Izixhobo ezifanayo:

6. Iokhestra

Inkcazo emfutshane yethekhinoloji

Ndineendaba ezimnandi - phantse sisekupheleni kwenqaku! Okwangoku, iziseko zethu ezizisebenzelayo zibandakanya iimvavanyo zewebhu kunye ne-Android, esiziqhuba nge-GitLab CI ngokufanayo, sisebenzisa izixhobo ezinikwe amandla yi-Docker: igridi ye-Selenium kunye ne-Selenoid. Ngaphaya koko, sisebenzisa oomatshini benyani abenziwe nge-GCP ukubamba izikhongozeli ezineebhrawuza kunye nezifanisi. Ukunciphisa iindleko, siqala aba matshini benyani kuphela kwimfuno kwaye bayeke xa uvavanyo lungenziwa. Ngaba ikho enye into enokuphucula amaziko ethu? Impendulo nguewe! Dibana noKubernetes (K8s)!

Okokuqala, makhe sijonge ukuba amagama okhestra, iqoqo, kunye neKubernetes anxulumana njani. Kwinqanaba eliphezulu, i-orchestration yinkqubo ehambisa kwaye ilawule izicelo. Uvavanyo oluzenzekelayo oluzenzekelayo, usetyenziso olunjalo lufakwe kwigridi ye-Selenium kunye ne-Selenoid. IDocker kunye neeK8 ziyancedisana. Eyokuqala isetyenziselwa ukusasazwa kwesicelo, eyesibini isetyenziselwa i-orchestration. Kwelinye icala, ii-K8s ziliqela. Umsebenzi weqela kukusebenzisa iiVM njengeNodes, ekuvumela ukuba ufake imisebenzi eyahlukeneyo, iinkqubo kunye neenkonzo ngaphakathi komncedisi omnye (iqela). Ukuba nayiphi na iNodes iyasilela, ezinye iiNodes ziya kuthatha, eziqinisekisa ukusebenza okungaphazanyiswa kwesicelo sethu. Ukongeza koku, i-K8s inomsebenzi obalulekileyo onxulumene nokulinganisa, enkosi apho sifumana ngokuzenzekelayo isixa esilungileyo semithombo esekelwe kumthwalo kunye nemida emiselweyo.

Ngokwenyani, ukuhambisa iKubernetes ukusuka ekuqaleni ayingomsebenzi omncinci konke konke. Ndiza kushiya ikhonkco kwindlela edumileyo yokukhokela "Kubernetes The Hard Way" kwaye ukuba unomdla, ungaziqhelanisa. Kodwa, ngethamsanqa, kukho ezinye iindlela kunye nezixhobo. Eyona ndlela ilula kukusebenzisa i-Google Kubernetes Engine (GKE) kwi-GCP, eya kukuvumela ukuba ufumane i-cluster esele yenziwe ngokuchofoza okumbalwa. Ndincoma ukusebenzisa le ndlela ukuqalisa ukufunda, njengoko iya kukuvumela ukuba ugxile ekufundeni indlela yokusebenzisa ii-K8s kwimisebenzi yakho endaweni yokufunda ukuba amalungu angaphakathi kufuneka adityaniswe njani kunye. 

Ixabiso leziseko zophuhliso oluzenzekelayo

Makhe sijonge kwiimpawu ezimbalwa ezibalulekileyo ezibonelelwa yi-K8s:

  • ukusasazwa kwesicelo: usebenzisa iqoqo leendawo ezininzi endaweni yeeVM;
  • ukulinganisa okuguquguqukayo: kunciphisa iindleko zezibonelelo ezisetyenziswa kuphela kwimfuno;
  • ukuziphilisa: ukubuyiswa ngokuzenzekelayo kweepods (ngenxa yoko izikhongozeli nazo zibuyiselwe);
  • ukukhutshwa kohlaziyo kunye nokubuyisela umva kotshintsho ngaphandle kwexesha lokuphumla: izixhobo zokuhlaziya, iibrowser kunye ne-emulators aziphazamisi umsebenzi wabasebenzisi bangoku.

Kodwa ii-K8s azikabiyiyo imbumbulu yesilivere. Ukuqonda zonke iingenelo kunye nezithintelo kumxholo wezixhobo esiziqwalaselayo (igridi ye-Selenium, i-Selenoid), siza kuxubusha ngokufutshane isakhiwo se-K8s. Iqela liqulethe iindidi ezimbini zeeNodi: IiNqaku eziPhambili kunye neeNodi zaBasebenzi. Ii-Master Nodes zinoxanduva lokulawula, ukusasaza kunye nezigqibo zokucwangcisa. Iindawo zabasebenzi kulapho izicelo ziqaliswa khona. IiNodes zikwanazo nemeko yendawo yokusebenza yesikhongozeli. Kwimeko yethu, le yiDocker, enoxanduva lwemisebenzi enxulumene nesikhongozeli. Kodwa zikho nezinye izisombululo, umzekelo ikhonteyina. Kubalulekile ukuqonda ukuba ukukala okanye ukuziphilisa akusebenzi ngqo kwizikhongozeli. Oku kuphunyezwa ngokudibanisa/kucutha inani lemidumba, ethi yona iqulathe izikhongozeli (ngokuqhelekileyo isikhongozeli esinye kwipod nganye, kodwa kuxhomekeke kumsebenzi kunokubakho ngaphezulu). I-hierarchy yezinga eliphezulu liqukethe iindawo zabasebenzi, ngaphakathi apho kukho iipods, ngaphakathi apho izitya ziphakanyiswa.

Uphawu lokulinganisa lungundoqo kwaye lunokusetyenziswa kuzo zombini iindawo ngaphakathi kwe-cluster node-pool kunye neepods ngaphakathi kwendawo. Kukho iintlobo ezi-2 zokulinganisa ezisebenza kuzo zombini iindawo kunye neepods. Uhlobo lokuqala luthe tye - ukukala kwenzeka ngokunyusa inani lee-nodes/pods. Olu hlobo lukhethwa ngakumbi. Uhlobo lwesibini, ngokufanelekileyo, ngokuthe nkqo. Ukulinganisa kuqhutyelwa ngokunyusa ubukhulu bee-nodes / pods, kwaye kungekhona inani labo.

Ngoku makhe sijonge izixhobo zethu kumxholo wale migaqo ingasentla.

Igridi yeSelenium

Njengoko bekutshiwo ngaphambili, igridi yeSelenium sisixhobo esithandwa kakhulu, kwaye ayimangalisi into yokuba ifakwe kwisingxobo. Ke ngoko, ayimangalisi into yokuba igridi yeSelenium inokubekwa kwiiK8s. Umzekelo wendlela yokwenza oku unokufumaneka kwindawo esemthethweni yokugcina ii-K8s. Njengesiqhelo, ndincamathela amakhonkco ekupheleni kwecandelo. Ukongeza, isikhokelo sendlela yokubonisa indlela yokwenza oku kwiTerraform. Kukho nemiyalelo malunga nendlela yokulinganisa inani lee-pods eziqulethe izikhongozeli zebrawuza. Kodwa umsebenzi wokulinganisa ngokuzenzekelayo kumxholo we-K8s awukabi ngumsebenzi ocacileyo ngokupheleleyo. Ukuqala kwam ukufunda, andizange ndifumane naluphi na ulwalathiso okanye amacebiso aluncedo. Emva kwezifundo ezininzi kunye novavanyo ngenkxaso yeqela le-DevOps, sikhethe indlela yokunyusa izikhongozeli kunye neziphequluli eziyimfuneko ngaphakathi kwepod enye, ebekwe ngaphakathi kwendawo enye yabasebenzi. Le ndlela ivumela ukuba sisebenzise isicwangciso sokulinganisa okuthe tyaba kweenodi ngokwandisa inani labo. Ndiyathemba ukuba oku kuya kutshintsha kwixesha elizayo kwaye siza kubona ngakumbi nangakumbi iinkcazo zeendlela ezingcono kunye nezisombululo ezilungele ukulungiswa, ngakumbi emva kokukhululwa kwe-Selenium grid 4 kunye notshintsho lwangaphakathi lwangaphakathi.

Selenoid:

Ukusasazwa kwe-Selenoid kwii-K8s ngoku kokona kuphoxeka okukhulu. Azihambelani. Kwithiyori, sinokuphakamisa isitya se-Selenoid ngaphakathi kwepod, kodwa xa i-Selenoid iqala ukukhupha izitya ngeziphequluli, ziya kuhlala zingaphakathi kwipod efanayo. Oku kwenza ukuba ukulinganisa kungenzeki kwaye, ngenxa yoko, umsebenzi we-Selenoid ngaphakathi kweqela awuyi kwahluka kumsebenzi ngaphakathi kumatshini obonakalayo. Isiphelo sebali.

inyanga:

Ukwazi le bhotile xa usebenza ne-Selenoid, abaphuhlisi bakhupha isixhobo esinamandla esibizwa ngokuba yiNyanga. Esi sixhobo ekuqaleni senzelwe ukusebenza kunye ne-Kubernetes kwaye, ngenxa yoko, i-autoscaling feature inako kwaye kufuneka isetyenziswe. Ngaphezu koko, ndingatsho ukuba okwangoku kuphela isixhobo kwihlabathi leSelenium, enenkxaso yeqela leK8s lemveli ngaphandle kwebhokisi (ayisafumaneki, bona isixhobo esilandelayo ). Iimpawu eziphambili zeNyanga ezibonelela ngale nkxaso zezi: 

Ayinammiselo ngokupheleleyo. Igcina i-Selenoid kwimemori yolwazi malunga neeseshini zebrawuza esebenzayo ngoku. Ukuba ngesizathu esithile inkqubo yayo iyantlitheka - ke zonke iiseshini eziqhubayo zilahlekile. INyanga ngokukhabanayo ayinasimo sangaphakathi kwaye inokuphindaphindwa kumaziko edatha. Iiseshoni zebhrawuza zihlala ziphila nokuba enye okanye iikopi ezininzi ziyehla.

Ke, iNyanga sisisombululo esikhulu, kodwa kukho ingxaki enye: ayisimahla. Ixabiso lixhomekeke kwinani leeseshoni. Ungaqhuba kuphela iiseshini ezi-0-4 simahla, ezingeloncedo kakhulu. Kodwa, ukuqala kwiseshoni yesihlanu, kuya kufuneka uhlawule i-5 yeedola nganye. Imeko inokwahluka kwinkampani ukuya kwinkampani, kodwa kwimeko yethu, ukusebenzisa iNyanga akukho nto. Njengoko ndichazwe ngasentla, sinokuqhuba iiVM kunye ne-Selenium Grid kwimfuno okanye ukwandisa inani leNodes kwiqela. Malunga nombhobho omnye, siphehlelela izikhangeli ezingama-500 kwaye simise zonke izixhobo emva kokuba uvavanyo lugqityiwe. Ukuba sisebenzise iNyanga, bekuya kufuneka sihlawule eyongezelelweyo i-500 x 5 = $2500 ngenyanga, nokuba siqhuba kangaphi iimvavanyo. Kwakhona, anditsho ukuba musa ukusebenzisa iNyanga. Kwimisebenzi yakho, oku kunokuba sisisombululo esiyimfuneko, umzekelo, ukuba uneeprojekthi / amaqela amaninzi kumbutho wakho kwaye udinga iqela elikhulu eliqhelekileyo kuye wonke umntu. Njengamaxesha onke, ndishiya ikhonkco ekugqibeleni kwaye ndincoma ukwenza zonke izibalo eziyimfuneko kumxholo womsebenzi wakho.

Callisto(Ingqalelo! Le nto ayikho kwinqaku lokuqala kwaye iqulethwe kuphela kwinguqulelo yesiRashiya)

Njengoko benditshilo, i-Selenium sisixhobo esithandwa kakhulu, kwaye intsimi ye-IT ikhula ngokukhawuleza. Ngelixa ndisebenza ekuguquleleni, isixhobo esitsha esithembisayo esibizwa ngokuba yiCallisto savela kwiwebhu (hello Cypress kunye nabanye ababulali beSelenium). Isebenza ngokwemveli ngee-K8s kwaye ikuvumela ukuba usebenzise iziqulatho ze-Selenoid kwiipods, zisasazwe kuzo zonke iiNodes. Yonke into isebenza kanye ngaphandle kwebhokisi, kubandakanya i-autoscaling. Iyamangalisa, kodwa idinga ukuvavanywa. Sele ndikwazile ukusebenzisa esi sixhobo kwaye ndiqhube imifuniselo emininzi. Kodwa kusekude kakhulu ukuba wenze izigqibo, emva kokufumana iziphumo kumgama omde, mhlawumbi ndiya kwenza uphononongo kumanqaku azayo. Okwangoku ndishiya kuphela amakhonkco ophando oluzimeleyo.  

Umzobo wemeko yangoku yeziseko ezingundoqo

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Amakhonkco okuhlola

Izixhobo ezifanayo

7. Iziseko zophuhliso njengeKhowudi (IaC)

Inkcazo emfutshane yethekhinoloji

Kwaye ngoku siza kwicandelo lokugqibela. Ngokuqhelekileyo, le teknoloji kunye nemisebenzi ehambelanayo ayiloxanduva lweenjineli ezizenzekelayo. Kwaye kukho izizathu zoku. Okokuqala, kwimibutho emininzi, imiba yeziseko ezingundoqo iphantsi kolawulo lwesebe le-DevOps kwaye amaqela ophuhliso awakhathaleli ngokwenene malunga nokuba yintoni eyenza umbhobho usebenze kunye nendlela yonke into edibeneyo nayo efuna ukuxhaswa ngayo. Okwesibini, masinyaniseke, ukwenziwa kwe-Infrastructure as Code (IaC) ayikamkelwa kwiinkampani ezininzi. Kodwa ngokuqinisekileyo ibe yinto ethandwayo kwaye kubalulekile ukuzama ukubandakanyeka kwiinkqubo, iindlela kunye nezixhobo ezinxulumene nayo. Okanye uhlale usexesheni.

Masiqale ngenkuthazo yokusebenzisa le ndlela. Sele sixoxile ukuba ukuqhuba iimvavanyo kwi-GitlabCI, siya kufuna ubuncinci izixhobo zokuqhuba i-Gitlab Runner. Kwaye ukuqhuba izikhongozeli ezineebhrawuza/izifanisi, kufuneka sigcine i-VM okanye iqela. Ukongeza kwizixhobo zokuvavanya, sidinga inani elibalulekileyo lobuchule bokuxhasa uphuhliso, isiteji, indawo yemveliso, ekwabandakanya i-database, iishedyuli ezizenzekelayo, ukucwangciswa kwenethiwekhi, abalinganisi bomthwalo, amalungelo omsebenzisi, njalo njalo. Umba ophambili ngumzamo ofunekayo wokuxhasa konke. Kukho iindlela ezininzi esinokwenza ngazo utshintsho kwaye sikhuphe uhlaziyo. Ngokomzekelo, kumxholo we-GCP, sinokusebenzisa i-console ye-UI kwisikhangeli kwaye senze zonke izenzo ngokucofa amaqhosha. Enye indlela inokuba kukusebenzisa iifowuni ze-API ukunxibelelana namaqumrhu elifu, okanye usebenzise usetyenziso lwelayini yomyalelo we-gcloud ukwenza ubuqhophololo obufunekayo. Kodwa ngenani elikhulu kakhulu lamaqumrhu ahlukeneyo kunye nezinto ezisisiseko, kuba nzima okanye akunakwenzeka ukwenza yonke imisebenzi ngesandla. Ngaphezu koko, zonke ezi zenzo zezandla azilawuleki. Asikwazi ukuzithumela ukuba zihlolwe ngaphambi kokubulawa, sebenzisa inkqubo yolawulo lwenguqulelo, kwaye sikhawuleze sibuyisele umva utshintsho olukhokelele kwisehlo. Ukucombulula iingxaki ezinjalo, iinjineli zenze kwaye zenze i-bash / i-shell scripts ngokuzenzekelayo, ezingekho ngcono kuneendlela zangaphambili, kuba akulula kakhulu ukufunda ngokukhawuleza, ukuqonda, ukugcina nokuguqula kwindlela yenkqubo.

Kweli nqaku kunye nendlela yokukhokela, ndisebenzisa izixhobo ezi-2 ezinxulumene nokusebenza kwe-IaC. Ezi ziiTerraform kunye neAnsible. Abanye abantu bakholelwa ukuba akukho ngqiqweni ukuzisebenzisa ngaxeshanye, kuba ukusebenza kwazo kuyafana kwaye ziyatshintshatshintsha. Kodwa inyaniso kukuba ekuqaleni banikwa imisebenzi eyahlukileyo ngokupheleleyo. Kwaye into yokuba ezi zixhobo kufuneka zincedisane zaqinisekiswa kwintetho edibeneyo ngabaphuhlisi abamele i-HashiCorp kunye ne-RedHat. Umahluko wengqiqo kukuba i-Terraform sisixhobo sokubonelela ngokulawula abancedisi ngokwabo. Ngelixa i-Ansible sisixhobo solawulo loqwalaselo umsebenzi walo ikukufakela, ukuqwalasela nokulawula isoftware kwezi seva.

Olunye uphawu oluphambili lokwahlula ezi zixhobo sisitayile sekhowudi. Ngokungafaniyo ne-bash kunye ne-Ansible, i-Terraform isebenzisa isitayile esibhengezayo esekwe kwinkcazo yesimo sokuphela esifunwayo ekufuneka siphunyezwe ngenxa yokubulawa. Umzekelo, ukuba siza kudala iiVM ezili-10 kwaye sisebenzise utshintsho ngeTerraform, ngoko siya kufumana iiVM ezili-10. Ukuba siqhuba iskripthi kwakhona, akukho nto iya kwenzeka kuba sele sinayo i-VM ye-10, kwaye i-Terraform iyazi malunga nale nto kuba igcina imeko yangoku yesiseko kwifayile yelizwe. Kodwa i-Ansible isebenzisa indlela yenkqubo kwaye, ukuba uyicela ukuba yenze ii-VM ezili-10, ngoko kuphehlelelo lokuqala siya kufumana ii-VM ezili-10, ezifana neTerraform. Kodwa emva kokuqalisa kwakhona siya kuba sele sine-VMs ezingama-20. Lo ngumahluko obalulekileyo. Kwisitayela senkqubo, asigcini imeko yangoku kwaye sichaza ngokulula ukulandelelana kwamanyathelo ekufuneka enziwe. Ewe kunjalo, sinokujongana neemeko ezahlukeneyo, songeza iitshekhi ezininzi malunga nobukho bezibonelelo kunye nemeko yangoku, kodwa akukho sizathu sokuchitha ixesha lethu kunye nokubeka umgudu wokulawula le ngqiqo. Ukongeza, oku kwandisa umngcipheko wokwenza iimpazamo. 

Ukushwankathela konke oku kungasentla, sinokugqiba ekubeni i-Terraform kunye ne-declarative notation sisixhobo esifanelekileyo sokubonelela ngeeseva. Kodwa kungcono ukunikezela umsebenzi wolawulo loqwalaselo kwi-Ansible. Ngaloo ndlela, makhe sijonge iimeko zokusetyenziswa kumxholo wokuzenzekelayo.

Ixabiso leziseko zophuhliso oluzenzekelayo

Ekuphela kwento ebalulekileyo ekufuneka uyiqonde apha kukuba isiseko sovavanyo oluzenzekelayo kufuneka sithathelwe ingqalelo njengenxalenye yesiseko senkampani siphela. Oku kuthetha ukuba zonke izenzo ze-IaC kufuneka zisetyenziswe kwihlabathi jikelele kwimithombo yombutho uphela. Ngubani onoxanduva loku kuxhomekeke kwiinkqubo zakho. Iqela le-DevOps linamava ngakumbi kule miba, babona umfanekiso opheleleyo wento eyenzekayo. Nangona kunjalo, iinjineli ze-QA zibandakanyeka ngakumbi kwinkqubo yokwakha i-automation kunye nesakhiwo sombhobho, okuvumela ukuba babone kakuhle zonke iinguqu ezifunekayo kunye namathuba okuphucula. Inketho engcono kakhulu kukusebenza kunye, ukutshintshiselana ngolwazi kunye neengcamango ukufezekisa umphumo olindelekileyo. 

Nantsi imizekelo embalwa yokusebenzisa iTerraform kunye neAnsible kumxholo wovavanyo oluzenzekelayo kunye nezixhobo esithethe ngazo ngaphambili:

1. Chaza iimpawu eziyimfuneko kunye neeparamitha ze-VM kunye namaqela usebenzisa iTerraform.

2. Ukusebenzisa i-Ansible, faka izixhobo eziyimfuneko zokuvavanya: i-docker, i-Selenoid, i-Selenium Grid kwaye ukhuphele iinguqulelo ezifunekayo zeziphequluli / i-emulators.

3. Usebenzisa iTerraform, chaza iimpawu zeVM apho iGitLab Runner iya kuphehlelelwa.

4. Faka i-GitLab Runner kunye nezixhobo ezikhaphayo eziyimfuneko usebenzisa i-Ansible, seta useto kunye noqwalaselo.

Umzobo wemeko yangoku yeziseko ezingundoqo

Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Iilinki onokuziphonononga:

Izixhobo ezifanayo

Masiyishwankathele!

inyathelo
Technology
izixhobo
Ixabiso leziseko zophuhliso oluzenzekelayo

1
Ukubaleka kwendawo
Node.js, Selenium, Appium

  • Ezona zixhobo zidumileyo zewebhu kunye neselula
  • Ixhasa iilwimi ezininzi kunye namaqonga (kubandakanya iNode.js)

2
Iinkqubo zolawulo lwenguqulelo 
Git

  • Izibonelelo ezifanayo kunye nekhowudi yophuhliso

3
Ukufakwa komgqomo
I-Docker, igridi yeSelenium, i-Selenoid (iWebhu, i-Android)

  • Ukuqhuba iimvavanyo ngokuhambelanayo
  • Iindawo ezikwanti
  • Uphuculo olulula, oluguquguqukayo lwenguqulelo
  • Ukumisa ngamandla izixhobo ezingasetyenziswanga
  • Kulula ukuseta

4
CI/CD
Gitlab CI

  • Ivavanya inxalenye yombhobho
  • Ingxelo eKhawulezayo
  • Ukubonakala kuyo yonke inkampani/iqela

5
Amaqonga amafu
Platform ye Cloud Google

  • Izixhobo eziyimfuneko (sihlawula kuphela xa kufuneka)
  • Kulula ukulawula kunye nokuhlaziya
  • Ukubonakala kunye nokulawulwa kwazo zonke izixhobo

6
Uluhlu
Kubernetes
Kumxholo wezikhongozeli ezineebhrawuza/izifanisi ngaphakathi kweepod:

  • Ukulinganisa / ukukala okuzenzekelayo
  • Ukuziphilisa
  • Uhlaziyo kunye nee-rollbacks ngaphandle kokuphazamiseka

7
Iziseko zophuhliso njengekhowudi (IaC)
I-Terraform, Ebonakalayo

  • Iinzuzo ezifanayo kunye neziseko zophuhliso
  • Zonke izibonelelo zoguqulelo lwekhowudi
  • Kulula ukwenza utshintsho kunye nokugcina
  • Izenzekela ngokupheleleyo

Imizobo yemephu yengqondo: ukuvela kweziseko ezingundoqo

step1: Local
Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Inyathelo2: VCS
Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Inyathelo lesi-3: Ukufakwa kwesingxobo 
Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

step4: CI/CD 
Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

step5: Cloud Platforms
Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

step6:Iokhestra
Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Inyathelo lesi-7: IaC
Izixhobo ze-DevOps azikho nje i-DevOps. Inkqubo yokwakha isiseko sovavanyo oluzenzekelayo ukusuka ekuqaleni

Yintoni elandelayo?

Ngoko, oku kukuphela kwenqaku. Kodwa ekugqibeleni, ndingathanda ukuseka izivumelwano ezithile nawe.

Ukusuka kwicala lakho
Njengoko bekutshiwo ekuqaleni, ndingathanda ukuba eli nqaku libe luncedo kwaye likuncede usebenzise ulwazi olufumene kumsebenzi wokwenyani. Ndongeza kwakhona ikhonkco kwisikhokelo esisebenzayo.

Kodwa nangona emva koko, ungayeki, usebenze, ufunde amakhonkco afanelekileyo kunye neencwadi, fumana indlela esebenza ngayo kwinkampani yakho, fumana iindawo ezinokuthi ziphuculwe kwaye uthathe inxaxheba kuyo. Nqwenelela impumelelo!

Ukusuka kum

Ukusuka kwisihloko unokubona ukuba le yayiyinxalenye yokuqala kuphela. Ngaphandle kwento yokuba ibe nkulu kakhulu, izihloko ezibalulekileyo azikabandakanywa apha. Kwinxalenye yesibini, ndiceba ukujonga iziseko ezizenzekelayo kumxholo we-IOS. Ngenxa yezithintelo zika-Apple ekusebenziseni i-iOS simulators kuphela kwiinkqubo ze-macOS, uluhlu lwethu lwezisombululo luyancipha. Umzekelo, asikwazi ukusebenzisa i-Docker ukuqhuba isifanisi okanye amafu oluntu ukuqhuba oomatshini bokwenene. Kodwa oku akuthethi ukuba azikho ezinye iindlela. Ndiza kuzama ukukugcina usexesheni ngezisombululo eziphambili kunye nezixhobo zangoku!

Kwakhona, khange ndichaze izihloko ezinkulu ezinxulumene nokubeka iliso. KwiSigaba sesi-3, ndiza kujonga ezona zixhobo zidumileyo zokubeka iliso kwiziseko ezingundoqo kunye nokuba yeyiphi idatha kunye neemetrics ekufuneka ziqwalaselwe.

Kwaye ekugqibeleni. Kwixesha elizayo, ndiceba ukukhulula ikhosi yevidiyo ekwakheni iziseko zovavanyo kunye nezixhobo ezidumileyo. Okwangoku, kukho iikhosi ezimbalwa kunye neentetho kwi-DevOps kwi-Intanethi, kodwa zonke izixhobo ziboniswe kumxholo wophuhliso, hayi uvavanyo oluzenzekelayo. Kulo mbandela, ndifuna ngokwenene impendulo malunga nokuba ikhosi enjalo iya kuba nomdla kwaye ixabiseke kuluntu lwabavavanyi kunye neenjineli ezizenzekelayo. Ndiyakubulela kwangaphambili!

umthombo: www.habr.com

Yongeza izimvo