Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Qaybta 1: Web/Android

tacliiq: maqaalkani waa tarjumaad loo turjumay Ruushka ee maqaalkii asalka ahaa "Aaladaha DevOps kaliya maahan DevOps. "Dhismaha tijaabinta kaabayaasha otomaatiga ah ee xoqan." Si kastaba ha ahaatee, dhammaan sawirada, isku xirka, xigashooyinka iyo ereyada waxaa lagu keydiyaa luqadda asalka ah si looga fogaado qalloocinta macnaha marka loo turjumayo Ruushka. Waxaan kuu rajeynayaa waxbarasho farxad leh!

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Hadda, takhasuska DevOps waa mid ka mid ah baahida ugu badan ee warshadaha IT-ga. Haddii aad furto goobo caan ah oo shaqo raadis ah oo aad ku shaandhayso mushahar, waxaad arki doontaa in shaqooyinka la xidhiidha DevOps ay ku jiraan liiska ugu sarreeya. Si kastaba ha ahaatee, waxaa muhiim ah in la fahmo in tani ay inta badan tixraacayso booska 'Senior', taas oo tusinaysa in musharraxa uu leeyahay xirfad heer sare ah, aqoonta farsamada iyo qalabka. Tani waxay sidoo kale la socotaa mas'uuliyad sare oo la xiriirta hawlgalka aan kala go'a lahayn ee wax soo saarka. Si kastaba ha ahaatee, waxaan bilownay inaan iloobo waxa DevOps yahay. Markii hore, ma ahayn qof gaar ah ama waax. Haddii aan raadino qeexitaannada ereygan, waxaan heli doonaa magacyo badan oo qurux badan oo sax ah, sida habka, hab-dhaqanka, falsafada dhaqanka, kooxda fikradaha, iyo wixii la mid ah.

Takhasustaydu waa injineerka otomaatiga ah ee tijaabada ah (QA automation engineer), laakiin waxaan aaminsanahay in aanay ahayn in lagu xidho oo kaliya qorista imtixaanada auto-imtixaanka ama horumarinta qaab dhismeedka imtixaanka. 2020, aqoonta kaabayaasha otomaatiga ah sidoo kale waa lama huraan. Tani waxay kuu ogolaanaysaa inaad abaabusho habsocodka otomaatiga ah laftaadu, laga bilaabo imtixaanaadka oo aad bixiso natiijooyin dhammaan daneeyayaasha si waafaqsan yoolalkaaga. Natiijo ahaan, xirfadaha DevOps waa qasab si shaqada loo qabto. Oo waxaas oo dhan waa wanaagsan yihiin, laakiin, nasiib daro, waxaa jira dhibaato (Qaswadayaasha: maqaalkani wuxuu isku dayaa inuu fududeeyo dhibaatadan). Ujeedadu waa in DevOps ay adag tahay. Tanina waa wax iska cad, sababtoo ah shirkaduhu ma bixin doonaan wax badan oo sahlan in la sameeyo ... Dunida DevOps, waxaa jira tiro badan oo qalab, shuruudo, iyo dhaqammo u baahan in la barto. Tani waxay si gaar ah u adag tahay bilowga xirfadda waxayna ku xiran tahay khibradda farsamo ee la ururiyey.

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber
Source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Halkan waxay u badan tahay inaynu ku dhamayn doono qaybta hordhaca ah oo aynu diirada saarno ujeedada maqaalkan. 

Muxuu ku saabsan yahay maqaalkani?

Maqaalkan, waxaan doonayaa inaan ku wadaago waayo-aragnimadayda dhismaha kaabayaasha iswada ee tijaabada ah. Waxaa jira ilo badan oo macluumaad ah oo ku saabsan aaladaha kala duwan ee internetka iyo sida loo isticmaalo, laakiin waxaan jeclaan lahaa inaan u eego iyaga oo keliya macnaha guud ee otomatiga. Waxaan aaminsanahay in injineero badan oo otomaatig ah ay yaqaaniin xaalada marka qofna marka laga reebo adiga uu sameeyo imtixaanada la horumariyay ama uu daneeyo ilaalinta iyaga. Natiijo ahaan, imtixaanadu waxay noqdaan kuwa duugoobay oo waa inaad waqti ku bixisaa cusbooneysiinta. Mar labaad, bilowga xirfadda, tani waxay noqon kartaa hawl aad u adag: si xikmad leh loo go'aamiyo qalabka caawin doona baabi'inta dhibaatada la bixiyay, sida loo doorto, loo habeeyo oo loo ilaaliyo. Tijaabiyayaasha qaarkood waxay u jeestaan ​​DevOps (bini'aadamka) si ay u caawiyaan, aynu run sheegno, habkani wuu shaqeeyaa. Xaalado badan tani waxay noqon kartaa ikhtiyaarka kaliya maadaama aynaan haysan muuqaal ku tiirsanaanta oo dhan. Laakiin sida aan ognahay, DevOps waa rag aad u mashquulsan, sababtoo ah waa inay ka fekeraan dhammaan kaabayaasha shirkadda, geynta, kormeerka, adeegyada yaryar iyo hawlaha kale ee la midka ah iyadoo ku xiran ururka / kooxda. Sida caadiga ah kiiska, automation-ku maaha mudnaan. Xaaladdan oo kale, waa in aan isku daynaa in aan samayno wax kasta oo suurtagal ah oo dhankeena ah min bilow ilaa dhamaad. Tani waxay yaraynaysaa ku-tiirsanaanta, dedejin doontaa socodka shaqada, hagaajinaysaa xirfadaheena waxayna noo ogolaan doontaa inaan aragno sawirka weyn ee waxa dhacaya.

Maqaalku wuxuu soo bandhigayaa qalabka ugu caansan uguna caansan wuxuuna muujinayaa sida loo isticmaalo si loo dhiso kaabayaasha otomaatiga ah tallaabo tallaabo. Koox kastaa waxa u taagan qalab lagu tijaabiyay waayo-aragnimada shakhsi ahaaneed. Laakiin taasi macnaheedu maaha inaad isticmaasho wax la mid ah. Qalabka laftoodu muhiim maaha, way muuqdaan oo waa duugoobayaan. Hawshayada injineernimada waa in aan fahamno mabaadi'da aasaasiga ah: sababta aan ugu baahanahay kooxdan qalabyada iyo dhibaatooyinka shaqada ee aan ku xallin karno gargaarkooda. Taasi waa sababta dhamaadka qayb kasta aan uga tago xiriirinta aaladaha la midka ah ee laga yaabo in lagu isticmaalo ururkaaga.

Maxaan ku jirin maqaalkan

Waxaan mar kale ku celinayaa in maqaalku uusan ku saabsanayn qalab gaar ah, sidaas darteed ma jiri doonto wax galinta code ka dukumeenti iyo sharaxaadda amarada gaarka ah. Laakiin dhamaadka qayb kasta waxaan ka tagaa xiriiriyeyaasha daraasad faahfaahsan.

Tan waxaa loo sameeyaa sababtoo ah: 

  • Maaddadani aad bay u fududahay in laga helo ilo kala duwan (dokumentiyada, buugaagta, koorsooyinka fiidiyowga);
  • Haddii aan bilowno qoto dheer, waa inaan qornaa 10, 20, 30 qaybood oo maqaalkan ah (halka qorshuhu yahay 2-3);
  • Kaliya ma doonayo inaan wakhtigaaga lumiyo sababtoo ah waxaa laga yaabaa inaad rabto inaad isticmaasho qalab kale si aad u gaarto yoolal isku mid ah.

Tababarka

Runtii waxaan jeclaan lahaa in qoraalkan uu noqdo mid waxtar u leh akhriste kasta, oo aan ahayn kaliya in la akhriyo lana ilaawo. Daraasad kasta, ku-dhaqanku waa qayb aad muhiim u ah. Taas ayaan u diyaariyey Kaydka GitHub oo leh tilmaamo tallaabo-tallaabo ah oo ku saabsan sida wax walba loo sameeyo meel eber ah. Waxa kale oo jira shaqo-guri oo ku sugaysa inaad hubiso inaadan si miyir la'aan ah u koobiyaynin khadadka amarada aad fulinayso.

Qorshee

Step
Technology
Tools

1
Socodka maxaliga ah (diyaari imtixaanada demo web / android oo ku socodsii gudaha) 
Node.js, Selenium, Appium

2
Nidaamyada xakamaynta nooca 
tag

3
Konteenarada
Docker, Selenium grid, Selenoid (Web, Android)

4
CI/CD
Gitlab CI

5
Goobaha daruuraha
Darawallada Google Google

6
Orchestration
Kubureteska

7
Kaabayaasha kood ahaan (IaC)
Terraform, macquul ah

Qaab dhismeedka qayb kasta

Si sheekadu u noqoto mid cad, qayb kasta waxaa lagu sifeeyaa si waafaqsan jaantuska soo socda:

  • sharaxaad kooban oo ku saabsan farsamada,
  • qiimaha kaabayaasha otomaatiga ah,
  • tusaale ahaan heerka ay hadda marayaan kaabayaasha dhaqaalaha,
  • xiriirinta waxbarashada,
  • qalab la mid ah.

1. Samee imtixaanada gudaha

Sharaxaada kooban ee farsamada

Tani waa kaliya tillaabo diyaargaraw ah oo lagu socodsiinayo imtixaanada demo gudaha iyo xaqiijinta inay ku aflaxeen. Qaybta la taaban karo, Node.js waa la isticmaalaa, laakiin luqadda barnaamijka iyo madalku sidoo kale muhiim maaha oo waxaad isticmaali kartaa kuwa lagu isticmaalo shirkaddaada. 

Si kastaba ha noqotee, sida aaladaha otomaatiga ah, waxaan ku talinayaa in la isticmaalo Selenium WebDriver ee aaladaha shabakadda iyo Appium ee aaladda Android, siday u kala horreeyaan, maadaama tillaabooyinka soo socda aan adeegsan doono sawirro Docker ah oo loogu talagalay inay si gaar ah ula shaqeeyaan qalabkan. Waxaa intaa dheer, iyada oo la tixraacayo shuruudaha shaqada, qalabkani waa kuwa ugu baahida badan ee suuqa.

Sida laga yaabo inaad dareentay, waxaan kaliya tixgelineynaa imtixaanada webka iyo Android. Nasiib darro, iOS waa sheeko gebi ahaanba ka duwan (mahadsanid Apple). Waxaan qorsheynayaa inaan soo bandhigo xalalka iyo dhaqamada la xiriira IOS qaybaha soo socda.

Qiimaha kaabayaasha otomaatiga ah

Marka laga eego dhinaca kaabayaasha, socodsiinta gudaha ma bixiso wax qiimo ah. Waxa kaliya oo aad hubisaa in imtixaanadu ku shaqeeyaan mishiinka maxaliga ah ee daalacashada iyo jilayaasha deegaanka. Laakiin xaalad kasta, tani waa barta bilawga ah ee lagama maarmaanka ah.

Sawirka halka ay marayso kaabayaasha dhaqaalaha

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Xiriirinta sahaminta

Qalab la mid ah

  • luuqad kasta oo barnaamijeed oo aad jeceshahay iyada oo la socota imtixaanada Selenium/Appium;
  • imtixaan kasta;
  • imtixaan kasta.

2. Nidaamyada xakamaynta nooca (Git)

Sharaxaada kooban ee farsamada

Qofna uma noqon doono muujin weyn haddii aan idhaahdo xakamaynta nuqulku waa qayb aad muhiim u ah horumarka, koox ahaan iyo shakhsi ahaanba. Iyada oo ku saleysan ilo kala duwan, waa ammaan in la yiraahdo Git waa wakiilka ugu caansan. Nidaamka xakamaynta nuqulku wuxuu bixiyaa faa'iidooyin badan, sida wadaaga koodka, kaydinta noocyada, dib u soo celinta laamihii hore, la socodka taariikhda mashruuca, iyo kaydinta. Qodob kasta si faahfaahsan uga hadli mayno, maadaama aan hubo inaad aad u taqaan oo aad u isticmaasho hawl maalmeedkaaga. Laakiin haddii si lama filaan ah aysan u dhicin, markaas waxaan ku talinayaa in la joojiyo akhrinta maqaalkan oo buuxinta farqigan sida ugu dhakhsaha badan.

Qiimaha kaabayaasha otomaatiga ah

Oo halkan waxaad ku weydiin kartaa su'aal macquul ah: "Muxuu nooga sheegayaa Git? Qof kastaa wuu garanayaa kan wuxuuna u adeegsadaa koodka horumarinta iyo koodka is-tijaabada labadaba. Waxaad noqon doontaa gabi ahaanba sax, laakiin maqaalkan waxaan ka hadlaynaa kaabayaasha oo qaybtani waxay u dhaqantaa sidii horudhac qaybta 7: "Kaabayaasha sida Xeer (IaC)". Annaga, tani waxay ka dhigan tahay in dhammaan kaabayaasha, oo ay ku jiraan imtixaanada, lagu sifeeyay qaabka koodka, sidaas darteed waxaan sidoo kale ku dabaqi karnaa hababka daabacaadda oo aan helno faa'iidooyin la mid ah sida horumarinta iyo koodhka otomatiga.

Waxaan si faahfaahsan u eegi doonaa IaC Talaabada 7, laakiin xitaa hadda waxaad bilaabi kartaa isticmaalka Git gudaha adiga oo abuuraya kayd maxalli ah. Sawirka weyn ayaa la ballaarin doonaa marka aan ku darno kayd fog oo kaabayaasha ah.

Sawirka halka ay marayso kaabayaasha dhaqaalaha

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Xiriirinta sahaminta

Qalab la mid ah

3. Konteenarada (Docker)

Sharaxaada kooban ee farsamada

Si loo muujiyo sida weel-ku-dhigiddu u beddeshay xeerarka ciyaarta, aynu dib ugu noqonno wakhtiga dhawr iyo toban sano. Waagaas, dadku waxay iibsadeen oo isticmaaleen mishiinnada server-ka si ay u socodsiiyaan codsiyada. Laakiin inta badan kiisaska, agabka bilawga loo baahan yahay horay looma aqoon. Natiijo ahaan, shirkaduhu waxay ku bixiyeen lacag iibsashada qaali, adeegayaal awood leh, laakiin qaar ka mid ah awooddan si buuxda looma isticmaalin.

Marxaladda xigta ee horumarku waxay ahayd mashiinnada farsamada gacanta (VMs), kuwaas oo xalliyey dhibaatada lacagta lagu luminayo kheyraadka aan la isticmaalin. Farsamadani waxay suurtogal ka dhigtay in codsiyada si madax-bannaan ay midba midka kale ugu socodsiiyo isla server-ka dhexdiisa, iyada oo loo qoondeeyey meel gebi ahaanba go'doonsan. Laakiin, nasiib darro, tignoolajiyad kastaa waxay leedahay cilladaheeda. Ku shaqaynta VM waxay u baahan tahay nidaam hawleed buuxa, kaas oo cuna CPU, RAM, kaydinta iyo, iyadoo ku xidhan OS-ka, kharashyada shatiga ayaa loo baahan yahay in xisaabta lagu daro. Arrimahani waxay saameeyaan xawliga rarida waxayna adkeeyaan qaadida.

Oo hadda waxaan u nimid weel dhigista. Mar labaad, tignoolajiyadani waxay xallisaa dhibkii hore, maadaama aysan weelku isticmaalin OS buuxa, kaas oo xoreynaya xaddi badan oo kheyraad ah isla markaana siinaya xal degdeg ah oo dabacsan oo la qaadi karo.

Dabcan, tignoolajiyada weel-samaynta maaha wax cusub waxaana markii ugu horreysay la soo bandhigay 70-meeyadii. Waagaas cilmi-baadhisyo, horumarro iyo isku-dayg badan ayaa la samayn jiray. Laakiin waxay ahayd Docker kan la qabsaday tignoolajiyadan oo ka dhigay mid si fudud u heli kara dadweynaha. Maalmahan, marka aan ka hadalno weelasha, inta badan kiisaska waxaan ula jeednaa Docker. Marka aan ka hadalno weelasha Docker, waxaan ula jeednaa weelasha Linux. Waxaan u isticmaali karnaa nidaamyada Windows iyo macOS si aan u socodsiino weelasha, laakiin waxaa muhiim ah in la fahmo in kiiskan uu soo muuqdo lakab dheeraad ah. Tusaale ahaan, Docker on Mac wuxuu si aamusnaan ah ugu wadaa weelasha gudaha Linux VM khafiif ah. Waxaan ku soo laaban doonaa mawduucan marka aan ka wada hadalno socodsiinta emulators Android gudaha weelasha, markaa halkan waxaa jira nuance aad muhiim u ah oo u baahan in si faahfaahsan looga hadlo.

Qiimaha kaabayaasha otomaatiga ah

Waxaan ogaanay in weel dhigista iyo Docker ay fiican yihiin. Aynu eegno tan marka la eego macnaha otomaatiga, sababtoo ah qalab kasta ama tiknoolajiyadu waxay u baahan yihiin inay xalliyaan dhibaatada. Aan qeexno dhibaatooyinka muuqda ee otomaatigga tijaabada ee macnaha guud ee imtixaanada UI:

  • Tiro aad u badan oo ku tiirsanaanta marka la rakibayo Selenium iyo gaar ahaan Appium;
  • dhibaatooyinka iswaafajinta ee u dhexeeya noocyada daalacashada, jilayaasha iyo darawalada;
  • la'aanta meel go'doon ah oo loogu talagalay daalacashada/jilaalayaasha, taas oo si gaar ah muhiim ugu ah orodka barbar socda;
  • adag tahay in la maareeyo oo la ilaaliyo haddii aad u baahan tahay in ay maamulaan 10, 50, 100 ama xataa 1000 browser isku mar.

Laakiin maadaama Selenium uu yahay aaladda otomatiga ugu caansan iyo Docker waa aaladda weelka ugu caansan, waa inaysan la yaab lahayn in qof isku dayay inuu isku daro si uu u abuuro qalab awood leh oo lagu xalliyo dhibaatooyinka kor ku xusan. Aynu si faahfaahsan uga fiirsanno xalalka noocaas ah. 

Selenium grid ku yaal docker

Qalabkani waa kan ugu caansan dunida Selenium ee ku shaqeeya daalacashada badan ee mishiino badan oo laga maamulo xarun dhexe. Si aad u bilowdo, waxaad u baahan tahay inaad iska diiwaan geliso ugu yaraan 2 qaybood: Hub iyo Node(yada). Hub waa nood dhexe oo hela dhammaan codsiyada imtixaanada una qaybiya noodhka ku habboon. Node kasta waxaan u habayn karnaa qaabayn gaar ah, tusaale ahaan, annagoo tilmaamayna browserka la doonayo iyo nooca uu yahay. Si kastaba ha noqotee, waxaan wali u baahanahay inaan daryeelno darawalada browserka ee ku habboon nafteena oo aan ku rakibno Nodes-ka la rabo. Sababtan awgeed, Selenium grid looma isticmaalo qaabkeeda saafiga ah, marka laga reebo marka aan u baahanahay inaan la shaqeyno daalacayaasha aan lagu rakibi karin Linux OS. Dhammaan kiisaska kale, xal aad u dabacsan oo sax ah ayaa noqon doona in la isticmaalo sawirada Docker si loo socodsiiyo Selenium grid Hub iyo Nodes. Habkani wuxuu si weyn u fududeynayaa maaraynta node-ka, maadaama aan dooran karno sawirka aan u baahannahay oo leh noocyo ku habboon daalacashada iyo darawallada horay loo rakibay.

Inkasta oo dib u eegis taban oo ku saabsan xasilloonida, gaar ahaan marka la wado tiro badan oo Nodes ah oo isku mid ah, Selenium grid ayaa weli ah qalabka ugu caansan ee lagu socodsiiyo imtixaannada Selenium ee isku midka ah. Waxaa muhiim ah in la ogaado in hagaajinta kala duwan iyo wax ka beddelka qalabkani ay si joogto ah uga muuqdaan il-furan, kuwaas oo la dagaallamaya dhalooyin kala duwan.

Selenoid ee Shabakadda

Qalabkani waa horumar ka socda adduunka Selenium maadaama uu si toos ah uga shaqeeyo sanduuqa oo wuxuu ka dhigay nolosha injineero badan oo otomaatiga ah mid aad u fudud. Marka hore, tani ma aha wax ka beddel kale oo lagu sameeyo Selenium grid. Taa baddalkeeda, horumariyayaashu waxay abuureen nooc cusub oo Selenium Hub ah oo ku yaal Golang, kaas oo, oo lagu daray sawirada Docker-fudud ee daalacashada kala duwan, waxay siisay dhiirigelin horumarinta otomaatignimada tijaabada. Intaa waxaa dheer, marka laga hadlayo Selenium Grid, waa inaan horay u sii ogaanaa dhammaan daalacashada loo baahan yahay iyo noocyadooda, taas oo aan dhibaato ahayn marka la shaqeynayo hal browser kaliya. Laakiin marka ay timaado daalacashada badan ee la taageeray, Selenoid waa xalka koowaad ee ay ugu mahadcelineyso muuqaalkeeda 'browser on baahida'. Dhammaan waxa nalooga baahan yahay waa inaan horay u soo dejisanay sawirada lagama maarmaanka u ah daalacashada oo aan cusbooneysiinno faylka qaabeynta kaas oo Selenoid uu la falgalo. Ka dib markii Selenoid uu helo codsi imtixaannada, waxay si toos ah u bilaabi doontaa weelka la rabo oo leh browserka la rabo. Marka imtixaanku dhamaado, Selenoid wuxuu ka fariisan doonaa weelka, si uu u xoreeyo agabka codsiyada mustaqbalka. Habkani wuxuu si buuxda u baabi'iyaa dhibaatada caanka ah ee 'hoos u dhaca noodhka' ee aan inta badan ku kulanno shabakada Selenium.

Laakiin, hoogtay, Selenoid weli ma aha xabbad lacag ah. Waxaan helnay sifada 'browser on baahida', laakiin sifada 'khayraadka baahida' wali lama heli karo. Si loo isticmaalo Selenoid, waa in aan ku dhejinnaa qalabka jireed ama VM, taas oo macnaheedu yahay waa in aan horay u sii ogaanno inta agab ee loo baahan yahay in la qoondeeyo. Waxaan filayaa in aanay tani dhibaato ku ahayn mashaariicda yaryar ee wada 10, 20 ama xataa 30 browser is barbar socda. Laakiin maxaa dhacaya haddii aan u baahanahay 100, 500, 1000 ama ka badan? Wax macno ah ma samaynayso in la ilaaliyo oo la bixiyo kheyraadka badan mar kasta. Qaybaha 5 iyo 6 ee maqaalkan, waxaan ka wada hadli doonaa xalalka kuu oggolaanaya inaad cabbirto, taas oo si weyn u yaraynaysa kharashka shirkadda.

Selenoid ee Android

Ka dib guushii Selenoid ee aaladda otomatiga webka, dadku waxay rabeen wax la mid ah Android. Oo way dhacday - Selenoid waxaa lagu sii daayay taageerada Android. Laga soo bilaabo aragtida heerka sare ee isticmaalaha, mabda'a hawlgalku wuxuu la mid yahay automation webka. Farqiga kaliya ayaa ah in halkii weelasha browserka, Selenoid uu maamulo weelasha emulator-ka Android. Fikradayda, tani hadda waa qalabka ugu awoodda badan ee bilaashka ah ee lagu socodsiiyo imtixaannada Android si barbar socda.

Runtii ma jecli inaan ka hadlo dhinacyada xun ee qalabkan, maadaama aan runtii jeclahay. Laakiin weli, waxaa jira faa'iido darrooyin isku mid ah oo khuseeya automation-ka webka oo la xidhiidha miisaan. Intaa waxaa dheer, waxaan u baahanahay inaan ka hadalno hal xaddidaad oo kale oo laga yaabo inay la yaabto haddii aan dejineyno qalabka markii ugu horeysay. Si loo socodsiiyo sawirada Android, waxaan u baahanahay mishiin jireed ama VM oo leh taageero muuqaal abuurnimo leh. Sida loo hago, waxaan ku tusayaa sida tan loogu suurtageliyo Linux VM. Si kastaba ha noqotee, haddii aad tahay isticmaale macOS oo aad rabto inaad u dirto Selenoid gudaha, markaa tani suurtagal ma noqon doonto in la sameeyo tijaabooyinka Android. Laakiin had iyo jeer waxaad ku wadi kartaa Linux VM gudaha oo leh 'virtualization nested' oo la habeeyey oo gudaha Selenoid geyn.

Sawirka halka ay marayso kaabayaasha dhaqaalaha

Macnaha guud ee maqaalkan, waxaan ku dari doonaa 2 qalab si loo muujiyo kaabayaasha. Kuwani waa Selenium grid ee imtixaanada shabakada iyo Selenoid ee imtixaanada Android. Tababarka GitHub, waxaan sidoo kale ku tusi doonaa sida loo isticmaalo Selenoid si loo sameeyo imtixaanada shabakadda. 

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Xiriirinta sahaminta

Qalab la mid ah

  • Waxaa jira qalabyo kale oo weel lagu xajiyo, laakiin Docker waa kan ugu caansan. Haddii aad rabto inaad isku daydo wax kale, maskaxda ku hay in qalabka aanu daboolnay ee lagu socodsiinayo tijaabooyinka Selenium ee barbar socda aysan ka shaqayn doonin sanduuqa.  
  • Sida horeba loo sheegay, waxaa jira wax ka beddel badan oo Selenium grid, tusaale ahaan, Zalenium.

4.CI/CD

Sharaxaada kooban ee farsamada

Dhaqanka is dhexgalka joogtada ah waa mid caan ku ah horumarka wuxuuna la siman yahay nidaamyada xakamaynta nooca. Iyadoo ay taasi jirto, waxaan dareemayaa in uu jiro jahawareer xagga erey bixinta. Baaragaraafkan waxaan jeclaan lahaa inaan ku qeexo 3 wax ka beddelka farsamadan xagga aragtidayda. Intarneetka waxaad ka heli doontaa maqaallo badan oo fasiraado kala duwan leh, waana wax iska caadi ah haddii ra'yigaagu ka duwan yahay. Waxa ugu muhiimsan waa inaad isla bogga kula jirto asxaabtaada.

Marka, waxaa jira 3 erey: CI - Is-dhexgalka Joogtada ah, CD - Bixinta Joogtada ah iyo mar labaad CD - Gelitaan Joogta ah. (Hoos waxaan ku isticmaali doonaa erayadan Ingiriisi). Wax ka beddel kastaa wuxuu ku darayaa dhowr tillaabo oo dheeraad ah dhuumahaaga horumarinta. Laakin erayga joogto ah (sii ​​socota) waa shayga ugu muhiimsan. Xaaladdan oo kale, waxaan ula jeednaa wax dhacaya bilowga ilaa dhammaadka, iyada oo aan la joojin ama faragelin gacanta ah. Aynu eegno CI & CD iyo CD macnaha guud.

  • Isdhexgalka Joogtada ah tani waa tillaabadii hore ee horumarka Ka dib markii aan u gudbinay kood cusub server-ka, waxaan fileynaa inaan helno jawaab celin degdeg ah oo ah in isbedeladayadu ay fiican yihiin. Caadi ahaan, CI waxa ku jira socodsiinta aaladaha falanqaynta code static iyo tijaabooyinka unugga/gudaha API.Tani waxay noo ogolaanaysaa inaanu ku helno macluumaadka ku saabsan koodkayaga dhawr ilbiriqsi/daqiiqo gudahood.
  • Gaarsiinta Joogtada ah waa tallaabo aad u horumarsan oo aan ku wadno imtixaanada isdhexgalka/UI. Si kastaba ha ahaatee, marxaladan ma helno natiijooyin sida ugu dhakhsaha badan sida CI. Marka hore, noocyadan imtixaannada ayaa qaata waqti dheer in la dhammaystiro. Marka labaad, ka hor inta aan la bilaabin, waa in aan geyno isbeddeladayada jawiga tijaabada/diyaarinta. Waxaa intaa dheer, haddii aan ka hadlayno horumarinta mobile, markaa tallaabo dheeraad ah ayaa u muuqata inay abuurto dhismo codsi ah.
  • Hawlgalinta Joogtada ah waxay u malaynaysaa inaan si toos ah u sii deyno isbeddelladayada wax soo saarka haddii dhammaan imtixaannada aqbalaadda lagu soo maray marxaladihii hore. Intaa waxaa dheer, ka dib marxaladda sii deynta, waxaad habeyn kartaa heerar kala duwan, sida tijaabinta qiiqa ee wax soo saarka iyo ururinta cabbirrada xiisaha. Hawlgelinta joogtada ah waxay suurtogal tahay oo keliya haddii caymis wanaagsan la helo imtixaanno otomaatig ah. Haddii wax faragelin gacanta ah loo baahan yahay, oo ay ku jiraan tijaabinta, markaa tani hadda ma sii jirto Sii socota (sii ​​socota). Markaa waxaynu odhan karnaa dhuunteenu waxay u hogaansantaa oo kaliya dhaqanka Bixinta Joogtada ah.

Qiimaha kaabayaasha otomaatiga ah

Qaybtan, waa inaan caddeeyaa marka aan ka hadlayno dhamaadka-ilaa-dhamaadka imtixaanada UI, waxay la macno tahay inaan geyno isbeddeladayada iyo adeegyadayada la xidhiidha si loo tijaabiyo deegaanka. Isdhexgalka Joogtada ah - habka looma dabaqi karo hawshan waana in aan ka taxadarnaa hirgelinta ugu yaraan dhaqamada Bixinta Joogtada ah. Hawlgelinta Joogtada ah waxay sidoo kale macno samaynaysaa macnaha guud ee imtixaannada UI haddii aan ku wadno wax soo saarka.

Ka hor inta aynaan eegin sawirka isbeddelka qaab dhismeedka, waxaan rabaa inaan dhowr eray ka idhaahdo GitLab CI. Si ka duwan aaladaha kale ee CI/CD, GitLab waxa ay bixisaa kayd fog iyo astaamo kale oo badan oo dheeraad ah. Markaa, GitLab wuu ka badan yahay CI. Waxaa ka mid ah maareynta koodhka isha, maamulka Agile, dhuumaha CI/CD, agabka wax lagu qoro iyo cabbiraadaha laga soo ururiyo sanduuqa. Dhismaha GitLab wuxuu ka kooban yahay Gitlab CI/CD iyo GitLab Runner. Halkan waxaa ah sharraxaad kooban oo laga helay bogga rasmiga ah:

Gitlab CI/CD waa codsi shabakadeed oo leh API kaas oo ku kaydiya gobolkiisa kaydka xogta, maamusha mashaariicda/dhismaha oo bixiya interface interface. GitLab Runner waa codsi ka shaqeeya dhismihiisa. Si gaar ah ayaa loo geyn karaa oo waxay la shaqeysaa GitLab CI/CD iyada oo loo marayo API. Imtixaannada socda waxaad u baahan tahay tusaale Gitlab iyo Runner labadaba.

Sawirka halka ay marayso kaabayaasha dhaqaalaha

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Xiriirinta sahaminta

Qalab la mid ah

5. Meelaha daruuraha ah

Sharaxaada kooban ee farsamada

Qaybtan waxaan kaga hadli doonaa isbeddel caan ah oo loo yaqaan 'daruuraha dadweynaha'. In kasta oo ay jiraan faa'iidooyinka baaxadda leh ee ay bixiyaan tignoolajiyada ku-meel-gaadhka ah iyo weel-samaynta ee kor lagu sharraxay, waxaan weli u baahanahay agab xisaabeed. Shirkaduhu waxay iibsadaan adeegayaal qaali ah ama xarumaha xogta kirada, laakiin kiiskan waa lagama maarmaan in la sameeyo xisaabinta (mararka qaarkood aan macquul ahayn) inta agab ee aan u baahan doono, haddii aan u isticmaali doono 24/7 iyo ujeeddooyinkee. Tusaale ahaan, wax-soo-saarku wuxuu u baahan yahay adeegaha ordaya XNUMX/XNUMX, laakiin ma waxaan u baahanahay ilo isku mid ah oo lagu tijaabiyo saacadaha shaqada ka baxsan? Waxay sidoo kale ku xiran tahay nooca baaritaanka la sameynayo. Tusaale ahaan waxay noqon kartaa imtixaanada culeyska/cadaadis ee aan qorsheyneyno inaan sameyno saacadaha aan shaqada ahayn si aan natiijooyin u helno maalinta xigta. Laakiin xaqiiqdii helitaanka XNUMX/XNUMX server loogama baahna imtixaanada otomaatiga ah dhamaadka-ilaa-dhamaadka iyo gaar ahaan looma baahna deegaanka tijaabada gacanta. Xaaladahan oo kale, way fiicnaan lahayd in la helo inta kheyraad ee loo baahan yahay, la isticmaalo, oo la joojiyo bixinta marka aan loo baahnayn. Waxaa intaa dheer, aad bay u fiicnaan lahayd in isla markiiba lagu helo iyaga oo la samaynayo dhawr jiir oo gujis ah ama la socodsiiya dhawr qoraal. Tani waa waxa daruuraha dadweynaha loo isticmaalo. Aynu eegno qeexida:

"Daruurka guud waxaa lagu qeexaa adeegyada xisaabinta ee ay bixiyaan bixiyeyaasha dhinac saddexaad ee internetka, taas oo ka dhigaysa mid u furan qof kasta oo raba inuu isticmaalo ama iibsado. Waxay noqon karaan kuwo bilaash ah ama lagu iibiyo dalabaad, taasoo u oggolaanaysa macaamiisha inay ku bixiyaan kaliya isticmaalka wareegyada CPU, kaydinta, ama baaxadda ay isticmaalaan."

Waxaa jira fikrad ah in daruuraha dadweynaha ay qaali yihiin. Laakiin fikradooda muhiimka ah waa in la dhimo kharashka shirkadda. Sidii hore loo soo sheegay, daruuraha dadwaynaha ayaa kuu oggolaanaya inaad hesho kheyraadka baahida oo aad bixiso kaliya wakhtiga aad isticmaasho. Sidoo kale, mararka qaarkood waxaan illownaa in shaqaaluhu helaan mushahar, iyo khabiiro sidoo kale waa kheyraad qaali ah. Waa in la tixgeliyo in daruuraha dadweynaha ay ka dhigayaan taageerada kaabayaasha si aad u fudud, taas oo u oggolaanaysa injineerada inay diiradda saaraan hawlaha muhiimka ah. 

Qiimaha kaabayaasha otomaatiga ah

Waa maxay agabyada gaarka ah ee aan ugu baahanahay dhamaadka-ilaa-dhamaadka imtixaanada UI? Asal ahaan kuwani waa mashiinno ama kooxo (waxa aanu kaga hadli doonaa Kubernetes qaybta soo socota) ee loogu talagalay daalacashada iyo kombiyeeyayaasha. Inta badan browser-yada iyo emulators-ka aan rabno inaan isku mar wada shaqeyno, CPU iyo xusuusta badan ee loo baahan yahay iyo lacag badan oo aan ku bixinno. Sidaa darteed, daruuraha dadweynaha ee macnaha guud ee otomaatigga tijaabada ayaa noo oggolaanaya inaan wadno tiro badan (100, 200, 1000...) browsers/ emulators baahida, hel natiijooyinka tijaabada sida ugu dhakhsaha badan oo aan joojino bixinta kharashaadka sida degdega ah kheyraadka. awood. 

Bixiyeyaasha daruuraha ugu caansan waa Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Habka-hagaha ayaa bixiya tusaalayaal sida loo isticmaalo GCP, laakiin guud ahaan dhib ma laha waxaad u isticmaasho hawlaha otomaatiga ah. Dhammaantood waxay bixiyaan ku dhawaad ​​isku shaqo. Caadi ahaan, si loo doorto bixiye, maamulku wuxuu diiradda saaraa kaabayaasha guud ee shirkadda iyo shuruudaha ganacsi, taas oo ka baxsan xadka qodobkan. Injineerada otomaatiga ah, waxay noqon doontaa mid aad u xiiso badan in la isbarbar dhigo isticmaalka bixiyeyaasha daruuraha iyo adeegsiga aaladaha daruuraha gaar ahaan ujeedooyinka tijaabinta, sida Shaybaarada Sauce, BrowserStack, BitBar, iyo wixii la mid ah. Markaa aynu sidoo kale samayno! Fikradayda, Shaybaarada Sauce waa beerta ugu caansan ee tijaabinta daruuraha, taas oo ah sababta aan u isticmaalo isbarbardhigga. 

GCP vs Shaybaarada Sauce ee ujeedooyinka otomaatiga ah:

Aynu qiyaasno inaan u baahanahay inaan wadno 8 tijaabo oo shabakad ah iyo 8 imtixaan Android isku mar ah. Tan waxaan u isticmaali doonaa GCP oo aan ku wadnaa 2 mashiinnada farsamada leh Selenoid. Midka ugu horreeya waxaan kor u qaadi doonaa 8 weel oo leh browsers. Midda labaad waxaa jira 8 weel oo leh emulators. Aynu eegno qiimayaasha:  

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber
Si aan hal weel ugu wadno Chrome, waxaan u baahanahay n1-heerka-1 baabuur. Xaaladda Android waxay noqon doontaa n1-heerka-4 hal emulator. Dhab ahaantii, hab aad u dabacsan oo ka jaban ayaa ah in la dejiyo qiyamka isticmaalaha gaarka ah ee CPU/Memory, laakiin hadda tani muhiim uma aha marka la barbardhigo Shaybaarada Sauce.

Oo waa kuwan tacriifooyinka isticmaalka Shaybaarka Suugo:

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber
Waxaan aaminsanahay inaad hore u dareentay faraqa u dhexeeya, laakiin weli waxaan bixin doonaa miis ay ku qoran yihiin xisaabinta hawshayada:

Khayraadka loo baahan yahay
Bishii
saacadaha shaqada(8 subaxnimo - 8 galabnimo)
saacadaha shaqada+ Hordhac

GCP ee Shabakadda
n1-standard-1 x 8 = n1-standard-8
$194.18
23 maalmood * 12h * 0.38 = $104.88 
23 maalmood * 12h * 0.08 = $22.08

Suugo Shaybaarka Shabakadda
Tijaabooyin isbarbar socda Cloud8 Virtual
$1.559
-
-

GCP ee Android
n1-standard-4 x 8: n1-heerka-16
$776.72
23 maalmood * 12h * 1.52 = $419.52 
23 maalmood * 12h * 0.32 = $88.32

Suugo Shaybaarka Android
Aaladda dhabta ah ee Cloud 8 imtixaanada isbarbar socda
$1.999
-
-

Sida aad arki karto, kala duwanaanshaha kharashku aad buu u weyn yahay, gaar ahaan haddii aad imtixaannada ku samayso kaliya laba iyo toban saacadood oo shaqo ah. Laakin waxaad dhimi kartaa qarashka xitaa intaa ka sii badan haddii aad isticmaasho mashiinada la sii deyn karo. Waa maxay?

VM-ga la sii saadaalin karo waa tusaale aad ku abuuri karto kuna ordi karto qiimo aad uga badan marka loo eego xaaladaha caadiga ah. Si kastaba ha ahaatee, Matoorka Xisaabinta ayaa laga yaabaa inuu joojiyo (hordhac) dhacdooyinkan haddii ay u baahan tahay marin u helka agabkaas hawlo kale. Tusaalooyinka la sii saadaalin karo ayaa xad dhaaf ah awoodda Matoorka Xisaabinta, markaa helitaankoodu way ku kala duwan yihiin isticmaalka.

Haddii abkaagu khalad u dulqaadan karo oo ay u adkeysan karaan horudhacyada suurtagalka ah ee suurtagalka ah, markaa tusaalooyinka la sii dayn karo waxay si weyn u dhimi karaan kharashaadkaaga Matoorka Xisaabinta. Tusaale ahaan, shaqooyinka habaynta dufcaddu waxay ku socon karaan xaalado aan la sii saadaalin karin. Haddii qaar ka mid ah xaaladahaas ay joojiyaan inta lagu jiro habaynta, shaqadu way gaabinaysaa laakiin gebi ahaanba ma joogsato. Tusaalooyinka la sii saadaalin karo waxay dhamaystiraan hawlahaaga habaynta dufcada adiga oo aan culays shaqo ku saarin tusaalahaaga jira iyo iyada oo aan lagaa baahnayn inaad bixiso qiimo buuxa xaaladaha caadiga ah ee dheeraadka ah.

Oo weli ma dhammaan! Run ahaantii, waxaan hubaa in aanu qofna imtixaanada qaadin 12 saacadood bilaa nasasho. Hadday sidaas tahay, markaa waxaad si toos ah u bilaabi kartaa oo aad joojin kartaa mashiinnada farsamada marka aan loo baahnayn. Waqtiga isticmaalka dhabta ah waxaa laga yaabaa in laga dhigo 6 saacadood maalintii. Markaa lacag bixinta marka la eego hawshayada waxay hoos u dhigi doontaa $11 bishiiba 8 browser. Kanu miyaanay cajiib ahayn? Laakin mashiinada la sii dayn karo waa in aan ka taxadarnaa oo aan u diyaargarownaa hakad iyo xasillooni darro, in kasta oo xaaladahan lagu bixin karo laguna maarayn karo software. Way mudan tahay!

Laakiin sinaba sow ma odhanayo 'waligaa ha isticmaalin beeraha tijaabinta daruuraha'. Waxay leeyihiin tiro faa'iidooyin ah. Ugu horreyntii, kani ma aha oo kaliya mashiinka farsamada, laakiin waa xal buuxa oo tijaabo ah oo tijaabo ah oo leh hawlo shaqo oo ka baxsan sanduuqa: helitaanka fogaanta, diiwaanka, sawirada, duubista fiidiyowga, daalacashada kala duwan iyo qalabka gacanta. Xaalado badan, tani waxay noqon kartaa beddelka xiisaha badan ee muhiimka ah. Goobaha tijaabinta ayaa si gaar ah faa'iido u leh otomaatiga IOS, marka daruuraha dadweynaha ay bixin karaan oo keliya nidaamyada Linux/Windows. Laakiin waxaan kaga hadli doonaa iOS maqaalada soo socda. Waxaan ku talinayaa in had iyo jeer la eego xaaladda oo laga bilaabo hawlaha: xaaladaha qaarkood way ka jaban tahay oo aad waxtar u leedahay in la isticmaalo daruuraha dadweynaha, iyo kuwa kale goobaha tijaabada ah ayaa hubaal ah inay u qalmaan lacagta la isticmaalo.

Sawirka halka ay marayso kaabayaasha dhaqaalaha

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Xiriirinta sahaminta

Aaladaha la midka ah:

6. Abaabulka

Sharaxaada kooban ee farsamada

Waxaan hayaa war wanaagsan - waxaan ku dhownahay dhamaadka maqaalka! Waqtigan xaadirka ah, kaabayaasha otomaatiga ah waxay ka kooban yihiin imtixaannada webka iyo Android, kuwaas oo aan ku dhex mareyno GitLab CI si barbar socda, annagoo adeegsanayna aaladaha karti u leh Docker: Selenium grid iyo Selenoid. Intaa waxaa dheer, waxaan isticmaalnaa mashiinnada farsamada ee lagu sameeyay GCP si aan u martigelinno weelasha leh daalacashada iyo wax-soo-saarka. Si loo dhimo kharashaadka, waxaan ku bilownaa mashiinadan dalwaddii dalabka oo kaliya waxaana joojinaa marka tijaabada aan la samayn. Ma jiraan wax kale oo hagaajin kara kaabayaashayaga? Jawaabtu waa haa! La kulan Kubernetes (K8s)!

Marka hore, aan eegno sida erayada orchestration, cluster, iyo Kubernetes ay isugu xidhan yihiin midba midka kale. Heer sare, orchestration waa nidaamka dejinaya oo maamula codsiyada. Tijaabada otomaatiga ah, codsiyada weel lagu shubay waa Selenium grid iyo Selenoid. Docker iyo K8s way is dhammaystiraan. Midka kowaad waxa loo isticmaalaa geynta arjiyada, ka labaadna waxa loo isticmaalaa abaabulida. Dhanka kale, K8s waa koox. Hawsha kooxdu waa inay VM-yada u isticmaasho Nodes-ka, kaas oo kuu ogolaanaya inaad ku rakibto hawlo kala duwan, barnaamijyo iyo adeegyo gudaha hal server (cluster). Haddii mid ka mid ah Nodes uu ku guuldareysto, Nodes kale ayaa soo qaadi doona, kaas oo hubinaya hawlgalka aan kala go'a lahayn ee codsigayaga. Intaa waxaa dheer, K8s waxay leedahay hawlo muhiim ah oo la xidhiidha miisaan-qaadista, taas oo ay ugu mahadcelinayso taas oo aan si toos ah u helno qaddarka ugu fiican ee kheyraadka ee ku salaysan culeyska iyo xaddidaadda.

Run ahaantii, gacan ka geynta Kubernetes xoq ma aha hawl yar. Waxaan uga tagi doonaa isku xirka caanka ah sida loo hago "Kubernetes The Hard Way" iyo haddii aad xiisaynayso, waad ku tababaran kartaa. Laakiin, nasiib wanaag, waxaa jira habab iyo qalab kale. Habka ugu fudud waa in lagu isticmaalo Google Kubernetes Engine (GKE) gudaha GCP, kaas oo kuu ogolaanaya inaad ku hesho koox diyaarsan dhowr dhagsi. Waxaan kugula talinayaa inaad isticmaasho habkan si aad u bilowdo barashada, maadaama ay kuu ogolaaneyso inaad diirada saarto barashada sida loogu isticmaalo K8-yada hawlahaaga halkii aad ka baran lahayd sida qaybaha gudaha ay tahay in la isku daro midba midka kale. 

Qiimaha kaabayaasha otomaatiga ah

Aan eegno dhowr astaamood oo muhiim ah oo K8s ay bixiyaan:

  • geynta codsiga: iyadoo la isticmaalayo koox-nodes-ka badan halkii VM-yada;
  • miisaan firfircoon: waxay yaraynaysaa kharashka ilaha loo isticmaalo kaliya baahida;
  • is-bogsiinta: si toos ah u soo kabashada boodhka (taasoo ay sababtay weelasha sidoo kale dib loo soo celiyay);
  • dib-u-soo-noqoshada isbeddellada iyada oo aan la helin waqti-dhimis: cusboonaysiinta aaladaha, daalacashada iyo ku-samaynta ma joojiyaan shaqada isticmaaleyaasha hadda

Laakiin K8-yadu wali maaha xabbad qalin ah. Si aad u fahamto dhammaan faa'iidooyinka iyo xaddidnaanta macnaha guud ee qalabka aan tixgelineyno (Selenium grid, Selenoid), waxaan si kooban uga hadli doonaa qaabka K8s. Kooxdu waxay ka kooban tahay laba nooc oo Node-yada: Master Nodes iyo Nodes Workers. Master Nodes ayaa mas'uul ka ah maaraynta, geynta iyo jadwalka go'aannada. Noodhyada shaqaaluhu waa halka codsiyada lagu qabto. Nodes waxa kale oo ka kooban weel bay'ad wakhtigeedii Xaaladeena, kani waa Docker, kaas oo mas'uul ka ah hawlgallada la xidhiidha weelka. Laakiin waxa kale oo jira xalal kale, tusaale ahaan weeld. Waa muhiim in la fahmo in qolofaynta ama is-bogsiinta aysan si toos ah u khusayn weelasha. Tan waxaa lagu fuliyaa iyadoo lagu darayo/yaraynayo tirada musqulaha, kuwaas oo iyaguna ka kooban weel (sida caadiga ah hal weel halkii baal, laakiin waxay kuxirantahay hawsha waxaa laga yaabaa inay ka badan tahay). Heerarka sare wuxuu ka kooban yahay noodhka shaqaalaha, kuwaas oo gudaha ay ku yaalliin baaluq, kuwaas oo gudaha weelasha kor loogu qaadayo.

Qaabka is-qarinta ayaa fure ah waxaana lagu dabaqi karaa labada nood ee barkada-node-ka-kululka ah iyo boodhadhka qanjirada dhexdooda ah. Waxaa jira 2 nooc oo qolof ah oo quseeya labada nood iyo pods. Nooca ugu horreeya waa jiif - is-qarintu waxay ku dhacdaa iyada oo la kordhinayo tirada noodhka / boodhka. Noocani waa mid aad loo doorbido. Nooca labaad waa, si waafaqsan, toosan. Isku-dheellitirka waxaa lagu fuliyaa iyadoo la kordhinayo cabbirka qanjidhada / boodhka, ee ma aha tiradooda.

Haddaba aynu eegno agabkayaga macnaha guud ee erayada kor ku xusan.

Selenium grid

Sidii hore loo sheegay, Selenium grid waa qalab aad loo jecel yahay, la yaabna maaha in weel lagu shubay. Sidaa darteed, maahan wax la yaab leh in Selenium grid la geyn karo K8s. Tusaale ahaan sida tan loo sameeyo waxaa laga heli karaa kaydka rasmiga ah ee K8s. Sida caadiga ah, waxaan ku dhejiyaa xiriiriyeyaasha dhammaadka qaybta. Intaa waxaa dheer, hagaha sida loo sameeyo ayaa muujinaya sida tan loogu sameeyo Terraform. Waxa kale oo jira tilmaamo ku saabsan sida loo cabbiro tirada pods ee ay ku jiraan weelasha browserka. Laakin shaqada ismiidaaminta tooska ah ee macnaha guud ee K8s wali ma aha hawl gabi ahaanba cad. Markii aan bilaabay waxbarashada, maan helin wax tilmaam ah ama talooyin wax ku ool ah. Daraasado dhowr ah ka dib iyo tijaabooyin lagu taageeray kooxda DevOps, waxaan dooranay habka kor loogu qaadayo weelasha leh daalacashada lagama maarmaanka ah ee gudaha hal boodh, kaas oo ku dhex yaal hal unug shaqaale. Habkani waxa uu noo ogolaanayaa in aan ku dabaqno istaraatijiyad is-qoritaan siman ee qanjidhada annagoo kordhinayna tiradooda. Waxaan rajeynayaa in tani ay isbeddeli doonto mustaqbalka, waxaanan arki doonnaa sharraxaadyo badan oo ku saabsan hababka wanaagsan iyo xalalka diyaarsan, gaar ahaan ka dib markii la sii daayo Selenium grid 4 oo leh qaab-dhismeedka gudaha ee isbeddelay.

Selenoid:

Dirista Selenoid ee K8s hadda waa niyad jabka ugu weyn. Ma wada socon karaan. Aragti ahaan, waxaan kor u qaadi karnaa weelka Selenoid gudaha podska, laakiin marka Selenoid uu bilaabo inuu bilaabo kontaynarada leh daalacashada, waxay weli ku jiri doonaan gudaha isla boodhka. Tani waxay ka dhigaysaa miisaan aan macquul ahayn, natiijadana, shaqada Selenoid ee kutlada kama duwanaan doonto shaqada gudaha mashiinka farsamada. Dhamaadka sheekada.

Moon:

Ogaanshaha ciladaan markaad la shaqeyneyso Selenoid, horumariyayaashu waxay sii daayeen qalab aad u awood badan oo la yiraahdo Moon. Qalabkan waxaa markii hore loogu talagalay in uu la shaqeeyo Kubernetes, natiijaduna, qaabka autoscaling waa la isticmaali karaa waana in la isticmaalo. Intaa waxaa dheer, waxaan dhihi lahaa in hadda ay tahay kaliya Qalab ku jira adduunka Selenium, kaas oo leh taageerada kooxda K8s ee ka baxsan sanduuqa (hadda lama heli karo, eeg aaladda xigta ). Tilmaamaha muhiimka ah ee Moon ee bixiya taageeradan waa: 

Gebi ahaanba dawlad la'aan. Selenoid wuxuu ku kaydiyaa macluumaadka xusuusta ee ku saabsan fadhiyada browserka hadda socda. Haddii sabab qaar ka mid ah geeddi-socodku burburo - markaa dhammaan fadhiyada socda waa la lumiyaa. Moon si liddi ku ah malaha xaalad gudaha ah waxaana lagu soo celin karaa xarumaha xogta. Kalfadhiyada Browser-ka waa ay nool yihiin xitaa haddii mid ama in ka badan oo nuqul ah uu hoos u dhaco.

Marka, Moon waa xal weyn, laakiin waxaa jira hal dhibaato: ma aha bilaash. Qiimuhu wuxuu ku xiran yahay tirada fadhiyada. Waxaad kaliya ku wadi kartaa 0-4 fadhi bilaash, taas oo aan faa'iido gaar ah lahayn. Laakin, laga bilaabo kalfadhiga shanaad, waa inaad bixisa $5 midkiiba. Xaaladdu way ka duwanaan kartaa shirkad ilaa shirkad, laakiin kiiskeena, isticmaalka Moon waa macno darro. Sida aan kor ku sharaxay, waxaan ku wadi karnaa VM-yada Selenium Grid baahida ama kordhinta tirada Nodes ee kutlada. Qiyaastii hal dhuumood, waxaan bilownay 500 browsers oo aan joojino dhammaan agabyada ka dib marka imtixaannada la dhammeeyo. Haddii aan isticmaalno Moon, waa inaan bixinaa 500 x 5 oo dheeraad ah = $2500 bishii, iyadoon loo eegin inta jeer ee aan wadno imtixaanada. Mar labaad, ma dhahayo ha isticmaalin Moon. Hawlahaaga, tani waxay noqon kartaa xal aan laga maarmi karin, tusaale ahaan, haddii aad mashruucyo/kooxyo badan ku leedahay ururkaaga oo aad u baahan tahay koox wayn oo ay wadaagaan qof walba. Sida had iyo jeer, waxaan ka tagay xiriiriyaha dhamaadka waxaanan kugula talinayaa inaad sameyso dhammaan xisaabinta lagama maarmaanka ah ee macnaha guud ee hawshaada.

Callisto: (Fiiro gaar ah! Tani kuma jirto maqaalkii asalka ahaa waxayna ku jirtaa oo kaliya tarjumaada Ruushka)

Sida aan sheegay, Selenium waa qalab aad loo jecel yahay, iyo goobta IT-ga ayaa si dhakhso ah u koraya. Intii aan ka shaqaynayey tarjumaada, qalab cusub oo rajo leh oo la yiraahdo Callisto ayaa ka soo muuqday shabakada (hello Cypress iyo dilaayaasha kale ee Selenium). Waxay si asal ah ula shaqeysaa K8s waxayna kuu ogolaaneysaa inaad ku socodsiiso weelasha Selenoid ee galalka, oo loo qaybiyay Nodes-yada. Wax walba waxay si toos ah uga shaqeeyaan sanduuqa, oo ay ku jiraan autoscaling. Fantastic, laakiin u baahan in la tijaabiyo. Waxaan mar hore u suurtagashay in aan geeyo qalabkan oo aan sameeyay dhowr tijaabo. Laakiin waa goor hore in la soo gabagabeeyo, ka dib markii la helo natiijooyin fogaan dheer, laga yaabee inaan dib u eegis ku sameeyo maqaallada mustaqbalka. Hadda waxaan ka tagayaa kaliya xiriiriyeyaal cilmi-baaris madax-bannaan.  

Sawirka halka ay marayso kaabayaasha dhaqaalaha

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Xiriirinta sahaminta

Qalab la mid ah

7. Kaabayaasha sida Xeer (IaC)

Sharaxaada kooban ee farsamada

Oo hadda waxaan u nimid qaybta ugu dambeysa. Caadi ahaan, tignoolajiyadan iyo hawlaha la xidhiidha maaha masuuliyada injineerada otomaatiga ah. Waxaana jira sababo tan. Marka hore, ururo badan, arrimaha kaabayaasha ayaa hoos yimaada waaxda DevOps iyo kooxaha horumarintu ma daneeyaan waxa ka dhigaya dhuumaha shaqada iyo sida wax kasta oo ku xiran u baahan yahay in la taageero. Marka labaad, aan run sheegno, ku-dhaqanka Kaabayaasha sida Xeer (IaC) weli laguma dhaqmin shirkado badan. Laakiin dhab ahaantii waxay noqotay isbeddel caan ah waxaana muhiim ah in la isku dayo in lagu lug yeesho hababka, hababka iyo qalabka la xidhiidha. Ama ugu yaraan la soco wixii cusub.

Aan ku bilowno dhiirigelinta isticmaalka habkan. Waxaan mar hore ka wada hadalnay in si aan imtixaannada ugu wadno GitlabCI, waxaan u baahan doonnaa ugu yaraan agabka lagu socodsiiyo Gitlab Runner. Iyo si aan u wadno weelasha daalacashada/ emulators-ka, waxaan u baahanahay in aan xafidno VM ama koox. Marka lagu daro agabyada tijaabinta, waxaan u baahanahay qadar weyn oo awood ah si aan u taageerno horumarka, diyaarinta, jawiga wax soo saarka, taas oo sidoo kale ay ku jiraan xog uruurin, jadwal toos ah, qaabeynta shabakada, isku dheelitirayaasha culeyska, xuquuqda isticmaaleyaasha, iyo wixii la mid ah. Arrinka ugu muhiimsani waa dadaalka loo baahan yahay in lagu taageero dhammaan. Waxaa jira dhowr siyaabood oo aan isbeddel ku samayn karno oo aan u soo saari karno cusbooneysiin. Tusaale ahaan, marka la eego macnaha guud ee GCP, waxaan ku isticmaali karnaa UI console gudaha browserka oo aan sameyn karno dhammaan ficillada adigoo gujinaya badhamada. Beddelku waxa uu noqon karaa in la isticmaalo wicitaanada API si loola falgalo hay'adaha daruuraha, ama isticmaal utility line-ga amarka gcloud si loo sameeyo khalkhalgelinta la doonayo. Laakin iyada oo leh tiro aad u badan oo kala duwan oo kala duwan iyo xubno kaabayaal ah, way adagtahay ama xitaa macquul maaha in dhammaan hawlgallada gacanta lagu qabto. Waxaa intaa dheer, dhammaan ficilladan gacanta ayaa ah kuwo aan la xakameyn karin. Ma soo gudbin karno dib-u-eegis ka hor inta aan la fulin, isticmaalno nidaamka xakamaynta nooca, oo si degdeg ah dib ugu rogo isbeddelada keenay dhacdada. Si loo xalliyo dhibaatooyinkan oo kale, injineeradu waxay abuureen oo ay abuuraan qoraallo toos ah oo bash / qolof ah, kuwaas oo aan aad uga fiicneyn hababkii hore, maadaama aysan aad u sahlanayn in si dhakhso ah loo akhriyo, loo fahmo, loo ilaaliyo oo loo beddelo qaab habraac ah.

Maqaalkan iyo sida loo hago, waxaan isticmaalaa 2 qalab oo la xidhiidha dhaqanka IaC. Kuwani waa Terraform iyo macquul. Dadka qaarkiis waxay aamminsan yihiin in aanay macno samaynayn in isla mar la isticmaalo, maadaama ay shaqadoodu la mid tahay oo ay isweydaarsanayaan. Laakiin xaqiiqadu waxay tahay in marka hore la siiyo hawlo kala duwan. Xaqiiqda ah in qalabkani uu midba midka kale kabo ayaa lagu xaqiijiyay bandhig ay si wadajir ah u sameeyeen horumariyayaal matalaya HashiCorp iyo RedHat. Farqiga fikradeed ayaa ah in Terraform uu yahay qalab bixineed oo lagu maareeyo adeegayaasha laftooda. Halka Aansible uu yahay qalabka maaraynta qaabaynta hawshiisuna tahay rakibidda, habaynta iyo maaraynta software-ka serfaradan.

Muuqaal kale oo muhiim ah oo lagu garto qalabkani waa qaabka codaynta. Si ka duwan bash iyo macquul, Terraform waxay isticmaashaa qaab caddayn ah oo ku salaysan sharraxaadda dhammaadka la doonayo in lagu gaaro natiijada fulinta. Tusaale ahaan, haddii aan sameyneyno 10 VMs oo aan ku dabaqno isbeddellada iyada oo loo marayo Terraform, markaa waxaan heli doonnaa 10 VMs. Haddii aan mar kale maamulno qoraalka, waxba ma dhici doono maadaama aan horeyba u haysanay 10 VMs, Terraform-kuna wuu ogyahay tan sababtoo ah waxay ku kaydisaa xaaladda hadda jirta ee kaabayaasha faylka gobolka. Laakiin Ansible waxay isticmaashaa hab habraac ah, haddii aad weydiisato inay abuurto 10 VMs, ka dib bilawga ugu horreeya waxaan heli doonaa 10 VMs, oo la mid ah Terraform. Laakiin ka dib dib-u-bilawga waxaan hore u haysan doonaa 20 VMs. Tani waa farqiga muhiimka ah. Qaabka habraaca, ma kaydinno xaaladda hadda jirta oo si fudud uma sharaxno tillaabooyinka isku xigxiga ee ay tahay in la sameeyo. Dabcan, waxaan xamili karnaa xaalado kala duwan, waxaan ku dari karnaa dhowr hubin oo ku saabsan jiritaanka kheyraadka iyo xaaladda hadda jirta, laakiin ma jirto wax faa'iido leh in aan waqti ku lumino oo aan ku dadaalno xakameynta macquulka ah. Intaa waxaa dheer, tani waxay kordhisaa khatarta ah inaad qalad samayso. 

Marka la soo koobo dhammaan kuwa kor ku xusan, waxaan ku soo gabagabeyn karnaa in Terraform iyo cadeynta cadeyntu ay yihiin aalad ku habboon bixinta server-yada. Laakiin way fiicantahay in loo wakiisho shaqada maaraynta qaabaynta ee Ansible. Iyadoo taasi ay ka baxsan tahay, aan eegno kiisaska isticmaalka ee macnaha guud ee otomatiga.

Qiimaha kaabayaasha otomaatiga ah

Waxa kaliya ee muhiimka ah in la fahmo halkan waa in kaabayaasha iswada ee tijaabada ah loo tixgeliyo inay ka mid yihiin dhammaan kaabayaasha shirkadda. Tani waxay ka dhigan tahay in dhammaan dhaqamada IaC ay tahay in si caalami ah loogu dabaqo agabka ururka oo dhan. Yaa mas'uul ka ah tani waxay ku xiran tahay hababkaaga. Kooxda DevOps ayaa khibrad dheeraad ah u leh arrimahan, waxay arkaan sawirka oo dhan waxa dhacaya. Si kastaba ha noqotee, injineerada QA waxay aad ugu lug leeyihiin habka dhismaha otomaatiga iyo qaab dhismeedka dhuumaha, taas oo u oggolaanaysa inay si fiican u arkaan dhammaan isbeddellada loo baahan yahay iyo fursadaha horumarinta. Doorashada ugu fiican waa in la wada shaqeeyo, la is dhaafsado aqoonta iyo fikradaha si loo gaaro natiijada la filayo. 

Waa kuwan tusaalooyin dhowr ah oo ku saabsan adeegsiga Terraform iyo macquulka ah marka la eego macnaha guud ee otomaatiga ah iyo aaladaha aan horay uga soo hadalnay:

1. Sharaxaad ka bixi sifooyinka lagama maarmaanka ah iyo xuduudaha VM-yada iyo kooxaha isticmaalaya Terraform.

2. Isticmaalka macquulka ah, ku rakib qalabka lagama maarmaanka u ah tijaabinta: docker, Selenoid, Selenium Grid oo soo deji noocyada loo baahan yahay ee browsers/ emulators.

3. Isticmaalka Terraform, sharax sifooyinka VM kaas oo GitLab Runner lagu bilaabi doono.

4. Ku rakib GitLab Runner iyo qalabyada la socda ee lagama maarmaanka u ah adiga oo isticmaalaya Suuragal, dejin dejin iyo habeyn.

Sawirka halka ay marayso kaabayaasha dhaqaalaha

Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Xiriirinta si loo sahamiyo:

Qalab la mid ah

Aan soo koobno!

Step
Technology
Tools
Qiimaha kaabayaasha otomaatiga ah

1
Orodka maxaliga ah
Node.js, Selenium, Appium

  • Qalabka ugu caansan ee shabakada iyo mobilada
  • Waxay taageertaa luqado badan iyo aalado (ay ku jiraan Node.js)

2
Nidaamyada xakamaynta nooca 
tag

  • Faa'iidooyinka la midka ah ee leh koodhka horumarinta

3
Konteenarada
Docker, Selenium grid, Selenoid (Web, Android)

  • Imtixaannada socda ee is barbar socda
  • Deegaan go'doonsan
  • Casriyeynta nooca fudud, dabacsan
  • Si firfircoon u joojinta kheyraadka aan la isticmaalin
  • Si fudud loo dejiyo

4
CI/CD
Gitlab CI

  • Tijaabi qayb ka mid ah dhuumaha
  • Xaalad deg -deg ah
  • Muuqaalka guud ee shirkadda/kooxda

5
Goobaha daruuraha
Darawallada Google Google

  • Khayraadka baahida (waxaan bixinaa kaliya marka loo baahdo)
  • Si fudud loo maamulo loona cusbooneysiiyo
  • Muuqashada iyo xakamaynta dhammaan ilaha

6
Orchestration
Kubureteska
Marka la eego weelasha ay ku jiraan browsers/ emulators ee ku dhex jira pods:

  • Is-milliminta/si toos ah
  • Is-bogsiin
  • Cusboonaysiinta iyo dib-u-celinta iyada oo aan la joojin

7
Kaabayaasha kood ahaan (IaC)
Terraform, macquul ah

  • Faa'iidooyinka la midka ah ee kaabayaasha horumarinta
  • Dhammaan faa'iidooyinka versioning code
  • Way fududahay in isbedel lagu sameeyo oo la ilaaliyo
  • Si otomaatig ah u buuxa

Sawirrada khariidadda maskaxda: kobcinta kaabayaasha

Talaabada 1: Maxaliga
Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Tallaabada 2: VCS
Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

tillaabada 3: weel 
Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Tallaabada 4: CI/CD 
Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

tallaabo5: Cloud Platforms
Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Talaabada 6:Orchestration
Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Tallaabada 7: IaC
Qalabka DevOps maahan oo keliya DevOps. Habka dhisitaanka kaabayaasha iswada ee tijaabada laga soo bilaabo eber

Maxaa ku xiga?

Markaa, tani waa dhamaadka maqaalka. Laakin gabagabadii, waxaan jeclaan lahaa in aan idinla galo heshiisyo.

Dhinacaaga
Sida aan bilowgii hore u sheegay, waxaan jeclaan lahaa in maqaalku noqdo mid faa'iido leh oo kaa caawiya inaad ku dabaqdo aqoonta aad ka heshay shaqada dhabta ah. Waxaan ku darayaa mar kale isku xirka hage wax ku ool ah.

Laakiin xitaa intaa ka dib, ha joojin, ku celceli, baro xiriirinta iyo buugaagta ku habboon, ogow sida ay uga shaqeyso shirkaddaada, hel meelo la hagaajin karo oo ka qayb qaado. Nasiib wacan!

Dhinacayga

Laga soo bilaabo cinwaanka waxaad arki kartaa in tani ay ahayd kaliya qaybta koowaad. Inkasta oo ay xaqiiqadu noqotay mid aad u weyn, mawduucyada muhiimka ah weli halkan laguma daboolin. Qaybta labaad, waxaan qorsheynayaa inaan eego kaabayaasha otomaatiga ah ee macnaha guud ee IOS. Sababo la xiriira xannibaadaha Apple ee ku socodsiinta jilayaasha iOS kaliya ee nidaamyada macOS, xalalkayada kala duwan ayaa la soo koobay. Tusaale ahaan, ma awoodno inaan u isticmaalno Docker si aan u wadno jileeyaha ama daruuraha dadweynaha si aan ugu wadno mashiinnada farsamada. Laakiin tani macnaheedu maaha in aanay jirin wax kale oo baddal ah. Waxaan isku dayi doonaa inaan kula socodsiiyo xalal horumarsan iyo qalab casri ah!

Sidoo kale, ma aanan sheegin mowduucyo aad u waaweyn oo la xiriira la socodka. Qeybta 3, waxaan ku eegi doonaa agabka la socodka kaabayaasha ugu caansan iyo xogta iyo cabbirada la tixgelinayo.

Ugu dambayntii. Mustaqbalka, waxaan qorsheynayaa inaan sii daayo koorsada fiidiyowga ee ku saabsan dhismaha kaabayaasha imtixaanka iyo qalabka caanka ah. Waqtigan xaadirka ah, waxaa jira koorsooyin iyo muxaadaro kooban oo ku saabsan DevOps internetka, laakiin dhammaan agabka waxaa lagu soo bandhigay macnaha guud ee horumarka, ma aha tijaabinta otomatiga. Arrinkan, runtii waxaan u baahanahay jawaab celin ku saabsan bal in koorsada noocan ahi ay noqon doonto mid xiiso leh oo qiimo u leh bulshada tijaabiyaasha iyo injineerada otomaatiga ah. Waad ku mahadsan tahay hore!

Source: www.habr.com

Add a comment