Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Akụkụ 1: Weebụ/Android

Примечание: edemede a bụ ntụgharị asụsụ n'asụsụ Russian nke edemede izizi “Ngwaọrụ DevOps abụghị naanị maka DevOps. "Iwu ụlọ ule akpaaka akụrụngwa si ọkọ." Otú ọ dị, a na-echekwa ihe atụ niile, njikọ, ngụ na okwu n'asụsụ mbụ iji zere ịgbagọ ihe ọ pụtara mgbe a sụgharịrị ya na Russian. Achọrọ m ka ị nwee obi ụtọ ịgụ akwụkwọ!

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Ugbu a, ọpụrụiche DevOps bụ otu n'ime ihe a na-achọkarị na ụlọ ọrụ IT. Ọ bụrụ na imepe saịtị ọchụchọ ọrụ ama ama wee nyochaa site na ụgwọ ọnwa, ị ga-ahụ na ọrụ metụtara DevOps nọ n'elu ndepụta ahụ. Otú ọ dị, ọ dị mkpa ịghọta na nke a na-ezo aka na ọkwa 'Senior', nke na-egosi na onye na-achọ ọrụ nwere ọkwa dị elu nke nkà, ihe ọmụma nke nkà na ụzụ na ngwá ọrụ. Nke a na-abịakwa na oke ọrụ dị elu metụtara ọrụ mmepụta ihe na-akwụsịghị akwụsị. Agbanyeghị, anyị malitere ichefu ihe DevOps bụ. Na mbụ, ọ bụghị onye ma ọ bụ ngalaba ọ bụla akọwapụtara. Ọ bụrụ na anyị achọ nkọwa nke okwu a, anyị ga-ahụ ọtụtụ aha mara mma na nke ziri ezi, dị ka usoro, omume, nkà ihe ọmụma omenala, otu echiche, na ihe ndị ọzọ.

Ọpụrụiche m bụ onye injinia akpaaka (QA automation engineer), mana ekwenyere m na e kwesịghị ijikọ ya naanị na ịde ule akpaaka ma ọ bụ na-emepe ụlọ nyocha. Na 2020, ịmara akụrụngwa akpaaka dịkwa mkpa. Nke a na-enye gị ohere ịhazi usoro akpaaka n'onwe gị, site na ịgba ọsọ ule ruo na-enye ndị niile metụtara nsonaazụ dịka ebumnuche gị siri dị. N'ihi ya, nkà DevOps bụ ihe dị mkpa iji nweta ọrụ ahụ. Na ihe niile a dị mma, ma, ọ dị mwute ikwu, enwere nsogbu (onye nbibi: edemede a na-anwa ime ka nsogbu a dị mfe). Isi ihe bụ na DevOps siri ike. Na nke a doro anya, n'ihi na ụlọ ọrụ agaghị akwụ ụgwọ dị ukwuu maka ihe dị mfe ime ... N'ime ụwa DevOps, e nwere ọnụ ọgụgụ buru ibu nke ngwá ọrụ, okwu, na omume ndị dị mkpa ka a mara ya. Nke a siri ike karịsịa na mmalite nke ọrụ ma dabere na ahụmịhe teknụzụ anakọtara.

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ
isi: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

N'ebe a, anyị nwere ike mechaa na akụkụ mmeghe ma lekwasị anya na ebumnuche nke isiokwu a. 

Kedu ihe akụkọ a gbasara?

N'ime edemede a, m ga-ekekọrịta ahụmịhe m nke iwulite akụrụngwa akpaaka nnwale. Enwere ọtụtụ isi mmalite nke ozi na ịntanetị gbasara ngwaọrụ dị iche iche yana otu esi eji ha eme ihe, mana m ga-achọ ile ha anya naanị n'ọnọdụ akpaaka. Ekwenyere m na ọtụtụ ndị injinia akpaaka maara ọnọdụ ahụ mgbe ọ nweghị onye na-eme ule ndị mepere emepe ma ọ bụ na-eche maka idobe ha. N'ihi ya, ule na-aghọ ihe ochie na ị ga-ewepụta oge na-emelite ha. Ọzọ, na mmalite nke ọrụ, nke a nwere ike ịbụ nnọọ ọrụ siri ike: jiri amamihe na-ekpebi ngwá ọrụ kwesịrị inyere aka kpochapụ nsogbu nyere, otu esi ahọrọ, hazie na idobe ha. Ụfọdụ ndị nyocha na-atụgharị na DevOps (ụmụ mmadụ) maka enyemaka na, ka anyị kwuo eziokwu, usoro a na-arụ ọrụ. N'ọtụtụ ọnọdụ nke a nwere ike ịbụ naanị nhọrọ ebe anyị enweghị visibiliti na ndabere niile. Mana dị ka anyị maara, DevOps bụ ụmụ okorobịa na-arụsi ọrụ ike, n'ihi na ha ga-eche echiche banyere akụrụngwa ụlọ ọrụ ahụ dum, ntinye, nlekota oru, microservices na ọrụ ndị ọzọ yiri ya dabere na nzukọ / otu. Dị ka ọ na-adịkarị, akpaaka abụghị ihe kacha mkpa. N'ọnọdụ dị otú ahụ, anyị aghaghị ịgbalị ime ihe nile kwere omume n'akụkụ anyị site ná mmalite ruo ọgwụgwụ. Nke a ga-ebelata ịdabere na ya, mee ka usoro ọrụ dị ngwa, kwalite nkà anyị ma mee ka anyị hụ nnukwu foto nke ihe na-eme.

Edemede a na-egosi ngwa ọrụ kachasị ewu ewu na nke ama ama wee gosi otu esi eji ha wuo akụrụngwa akpaaka site na nzọụkwụ. A na-anọchi anya otu ọ bụla site na ngwaọrụ ndị anwalela site na ahụmịhe nkeonwe. Mana nke ahụ apụtaghị na ị ga-eji otu ihe ahụ. Ngwá ọrụ ndị ahụ n'onwe ha adịghị mkpa, ha na-apụta ma bụrụ ndị na-abaghị uru. Ọrụ injinia anyị bụ ịghọta ụkpụrụ ndị bụ isi: ihe kpatara anyị ji chọọ otu ngwaọrụ a na nsogbu ọrụ anyị nwere ike idozi na enyemaka ha. Ọ bụ ya mere na njedebe nke ngalaba ọ bụla m na-ahapụ njikọ maka ngwaọrụ ndị yiri ya nke enwere ike iji na nzukọ gị.

Ihe na-adịghị na isiokwu a

M na-ekwughachi ọzọ na isiokwu ahụ abụghị maka ngwaọrụ akọwapụtara, yabụ na ọ gaghị enwe ntinye koodu site na akwụkwọ na nkọwa nke iwu ụfọdụ. Ma na njedebe nke ngalaba ọ bụla m na-ahapụ njikọ maka ọmụmụ ihe zuru ezu.

Emere nke a n'ihi: 

  • ihe a dị nnọọ mfe ịchọta n'ụdị dị iche iche (akwụkwọ, akwụkwọ, vidiyo vidiyo);
  • ọ bụrụ na anyị amalite ịga n'ihu, anyị ga-ede akụkụ 10, 20, 30 nke isiokwu a (mgbe atụmatụ dị 2-3);
  • Achọghị m ịla n'iyi oge gị ebe ọ bụ na ị nwere ike ịchọrọ iji ngwaọrụ ndị ọzọ iji nweta otu ihe mgbaru ọsọ.

Mee ihe

Ọ ga-amasị m n'ezie ka ihe a bara uru nye onye na-agụ akwụkwọ ọ bụla, ọ bụghị naanị ịgụ na chefuo. N'ime ọmụmụ ihe ọ bụla, omume bụ akụkụ dị oke mkpa. Maka nke a ka m kwadoro Ebe nchekwa GitHub nwere ntuziaka nzọụkwụ otu esi eme ihe niile site na ọkọ. Enwekwara ihe omume ụlọ n'ụlọ na-echere gị ka ị hụ na ị naghị eche echiche na-eṅomi ahịrị nke iwu ndị ị na-eme.

Atụmatụ

Nzọụkwụ
Technology
Ngwaọrụ

1
Na-agba ọsọ mpaghara (kwadebe ule ngosi weebụ / android wee mee ya na mpaghara) 
Node.js, Selenium, Appium

2
Sistemụ njikwa ụdị 
Git

3
Ngwakọta
Docker, Selenium grid, Selenoid (Weebụ, Android)

4
CI/CD
Gitlab CI

5
Igwe ojii
Google Cloud Platform

6
Orchestration
Kubernetes

7
Akụrụngwa dị ka koodu (IaC)
Terraform, kwere omume

Nhazi nke ngalaba ọ bụla

Iji mee ka akụkọ ahụ doo anya, a na-akọwa akụkụ nke ọ bụla dị ka usoro a si dị:

  • nkowa nkenke nke teknụzụ,
  • uru maka akụrụngwa akpaaka,
  • ihe atụ nke ọnọdụ akụrụngwa ugbu a,
  • njikọ maka ọmụmụ ihe,
  • ngwaọrụ ndị yiri ya.

1. Gbaa ule na mpaghara

Nkọwa nkenke nke teknụzụ

Nke a bụ naanị usoro nkwado iji mee ule ngosi na mpaghara wee chọpụta na ha gafere. Na akụkụ bara uru, a na-eji Node.js, mana asụsụ mmemme na ikpo okwu adịghịkwa mkpa ma ị nwere ike iji ndị a na-eji na ụlọ ọrụ gị. 

Agbanyeghị, dị ka ngwaọrụ akpaaka, ana m akwado iji Selenium WebDriver maka nyiwe weebụ yana Appium maka ikpo okwu gam akporo, n'otu n'otu, ebe ọ bụ na usoro ndị ọzọ anyị ga-eji ihe onyonyo Docker ahaziri iji rụọ ọrụ kpọmkwem na ngwaọrụ ndị a. Ọzọkwa, na-ezo aka na ọrụ chọrọ, ngwá ọrụ ndị a bụ ihe kachasị mkpa n'ahịa.

Dịka ị chọpụtala, anyị na-atụle naanị nyocha webụ na gam akporo. N'ụzọ dị mwute, iOS bụ akụkọ dị iche kpamkpam (ekele Apple). M na-eme atụmatụ igosi IOS ngwọta na omume metụtara na akụkụ ndị na-abịa.

Uru maka akụrụngwa akpaaka

Site na akụrụngwa akụrụngwa, ịgba ọsọ na mpaghara anaghị enye uru ọ bụla. Naanị ị na-elele na ule na-agba na igwe mpaghara na ihe nchọgharị mpaghara na simulators. Mana n'ọnọdụ ọ bụla, nke a bụ mmalite dị mkpa.

Ihe atụ nke ọnọdụ akụrụngwa dị ugbu a

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Njikọ inyocha

Ngwa ndị yiri ya

  • asụsụ mmemme ọ bụla masịrị gị yana njikọ Selenium/Appium;
  • ule ọ bụla;
  • onye na-agba ọsọ ule ọ bụla.

2. Sistemụ njikwa ụdị (Git)

Nkọwa nkenke nke teknụzụ

Ọ gaghị abụ nnukwu mkpughe nye onye ọ bụla ma ọ bụrụ na m kwuo na njikwa ụdị bụ akụkụ dị oke mkpa nke mmepe, ma na otu ma n'otu n'otu. Dabere na isi mmalite dị iche iche, ọ dị mma ịsị na Git bụ onye nnọchi anya kacha ewu ewu. Usoro njikwa ụdị na-enye ọtụtụ uru, dị ka nkesa koodu, na-echekwa nsụgharị, iweghachi na ngalaba ndị gara aga, nyochaa akụkọ ihe mere eme, na nkwado ndabere. Anyị agaghị atụle isi ihe ọ bụla n'ụzọ zuru ezu, n'ihi na m ji n'aka na ị maara ya nke ọma ma jiri ya na-arụ ọrụ kwa ụbọchị. Ma ọ bụrụ na ọ bụghị na mberede, m na-akwado ịkwụsịtụ ịgụ isiokwu a ma mejupụta oghere a ozugbo enwere ike.

Uru maka akụrụngwa akpaaka

Na ebe a ị nwere ike ịjụ ajụjụ ezi uche dị na ya: "Gịnị kpatara ọ na-agwa anyị gbasara Git? Onye ọ bụla maara nke a ma na-eji ya maka koodu mmepe yana maka koodu nyocha akpaaka. " Ị ga-abụ nke ziri ezi, ma n'isiokwu a, anyị na-ekwu maka akụrụngwa na ngalaba a na-eme dị ka ihe nlele maka ngalaba 7: "Infrastructure as Code (IaC)". Maka anyị, nke a pụtara na a na-akọwapụta akụrụngwa niile, gụnyere nnwale, n'ụdị koodu, yabụ anyị nwekwara ike itinye sistemu nsụgharị na ya wee nweta uru ndị yiri ya maka mmepe na koodu akpaaka.

Anyị ga-elele IaC n'ụzọ zuru ezu na Nzọụkwụ 7, mana ọbụlagodi ugbu a ị nwere ike ịmalite iji Git na mpaghara site na ịmepụta ebe nchekwa mpaghara. A ga-agbasa nnukwu foto ahụ mgbe anyị gbakwunyere ebe nchekwa dịpụrụ adịpụ na akụrụngwa.

Ihe atụ nke ọnọdụ akụrụngwa dị ugbu a

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Njikọ inyocha

Ngwa ndị yiri ya

3. Ihe eji ebu ihe (Docker)

Nkọwa nkenke nke teknụzụ

Iji gosi otú containerization agbanweela iwu nke egwuregwu, ka anyị laghachi azụ na oge a ole na ole iri afọ. N'oge ahụ, ndị mmadụ zụtara ma jiri igwe ihe nkesa mee ngwa. Mana n'ọtụtụ ọnọdụ, amabeghị ihe mmalite mmalite achọrọ n'ọdịnihu. N'ihi ya, ụlọ ọrụ na-etinye ego n'ịzụta ihe nkesa dị oke ọnụ, dị ike, ma ụfọdụ n'ime ikike a ejighị ya kpamkpam.

Oge ọzọ nke evolushọn bụ igwe mebere igwe (VM), bụ nke doziri nsogbu nke imefusị ego na akụrụngwa ejighi ya. Nkà na ụzụ a mere ka o kwe omume ịme ngwa n'adabereghị onwe ya n'ime otu ihe nkesa ahụ, na-ekenye ohere dịpụrụ adịpụ kpamkpam. Ma, ọ dị mwute ikwu, nkà na ụzụ ọ bụla nwere ihe ndọghachi azụ ya. Ịgba ọsọ VM chọrọ sistemụ arụmọrụ zuru oke, nke na-eri CPU, RAM, nchekwa yana, dabere na OS, ọ dị mkpa ka eburu n'uche ụgwọ ọrụ ikike. Ihe ndị a na-emetụta ọsọ ibunye ma na-eme ka ibugharị sie ike.

Ma ugbu a, anyị na-abịa containerization. Ọzọkwa, nkà na ụzụ a na-edozi nsogbu gara aga, ebe ọ bụ na arịa anaghị eji OS zuru ezu, nke na-ewepụta nnukwu ego ma na-enye ngwọta ngwa ngwa na nke na-agbanwe agbanwe maka mbugharị.

N'ezie, nkà na ụzụ containerization abụghị ihe ọhụrụ na nke mbụ ewepụtara na njedebe 70s. N'oge ahụ, e mere ọtụtụ nyocha, mmepe na mgbalị. Mana ọ bụ Docker megharịrị teknụzụ a wee mee ka ọha mmadụ nweta ya ngwa ngwa. N'oge a, mgbe anyị na-ekwu maka arịa, n'ọtụtụ ọnọdụ anyị na-ekwu Docker. Mgbe anyị na-ekwu maka arịa Docker, anyị pụtara arịa Linux. Anyị nwere ike iji sistemụ Windows na macOS na-agba ọsọ arịa, mana ọ dị mkpa ịghọta na na nke a, oyi akwa ọzọ na-apụta. Dịka ọmụmaatụ, Docker na Mac na-agba ọsọ n'ime igbe n'ime Linux VM dị fechaa. Anyị ga-alaghachi na isiokwu a mgbe anyị na-atụle na-agba ọsọ gam akporo emulators n'ime containers, otú ebe a na e nwere a dị ezigbo mkpa nuance nke kwesịrị ka a tụlere n'ụzọ zuru ezu.

Uru maka akụrụngwa akpaaka

Anyị chọpụtara na njikwa na Docker dị mma. Ka anyị leba anya na nke a n'ọnọdụ nke akpaaka, n'ihi na ngwa ọrụ ma ọ bụ teknụzụ ọ bụla kwesịrị idozi nsogbu. Ka anyị kọwapụta nsogbu doro anya nke akpaaka nnwale n'ọnọdụ nke ule UI:

  • ọnụ ọgụgụ dị ukwuu nke ịdabere mgbe ị na-etinye Selenium na karịsịa Appium;
  • nsogbu ndakọrịta n'etiti nsụgharị nke ihe nchọgharị, simulators na ndị ọkwọ ụgbọala;
  • enweghị ohere dịpụrụ adịpụ maka ihe nchọgharị / simulators, nke dị oke mkpa maka ịgba ọsọ yiri ya;
  • siri ike ijikwa na idobe ma ọ bụrụ na ịchọrọ ịgba ọsọ 10, 50, 100 ma ọ bụ ọbụna 1000 nchọgharị n'otu oge.

Ma ebe ọ bụ na Selenium bụ ngwá ọrụ akpaaka kachasị ewu ewu na Docker bụ ngwá ọrụ nchịkọta kachasị ewu ewu, ọ bụghị ihe ijuanya na mmadụ gbalịrị ijikọta ha iji mepụta ngwá ọrụ dị ike iji dozie nsogbu ndị a kpọtụrụ aha n'elu. Ka anyị tụlee ngwọta ndị dị otú ahụ n'ụzọ zuru ezu karị. 

Selenium grid na docker

Ngwá ọrụ a bụ ihe kachasị ewu ewu na ụwa Selenium maka ịme ọtụtụ ihe nchọgharị na ọtụtụ igwe na ijikwa ha site na etiti etiti. Iji malite, ịkwesịrị ịdebanye aha opekata mpe akụkụ 2: Hub na Node(s). Hub bụ ọnụ etiti na-anata arịrịọ niile sitere na ule wee kesaa ya na Nodes kwesịrị ekwesị. Maka Node ọ bụla anyị nwere ike hazie nhazi ụfọdụ, dịka ọmụmaatụ, site na ịkọwa ihe nchọgharị achọrọ na ụdị ya. Agbanyeghị, anyị ka kwesịrị ilekọta ndị ọkwọ ụgbọ ala dakọtara ma tinye ha na Nodes chọrọ. N'ihi nke a, a naghị eji grid Selenium n'ụdị ya dị ọcha, belụsọ mgbe anyị kwesịrị ịrụ ọrụ na ihe nchọgharị na-enweghị ike itinye na Linux OS. Maka ikpe ndị ọzọ niile, ezigbo mgbanwe na ngwọta ziri ezi ga-abụ iji onyonyo Docker iji mee Selenium grid Hub na Nodes. Usoro a na-eme ka njikwa ọnụ dị mfe nke ukwuu, ebe anyị nwere ike họrọ onyonyo anyị chọrọ yana ụdị ihe nchọgharị na ndị ọkwọ ụgbọ ala arụnyere.

N'agbanyeghị nyocha ndị na-adịghị mma banyere nkwụsi ike, karịsịa mgbe ị na-agba ọsọ ọnụ ọgụgụ dị ukwuu nke Nodes n'otu aka ahụ, Selenium grid ka bụ ngwá ọrụ kachasị ewu ewu maka ịme ule Selenium n'otu aka ahụ. Ọ dị mkpa iburu n'obi na mgbanwe dị iche iche na mgbanwe nke ngwá ọrụ a na-apụta mgbe niile na-emeghe, nke na-alụ ọgụ dị iche iche.

Selenoid maka Weebụ

Ngwá ọrụ a bụ ọganihu na ụwa nke Selenium ka ọ na-arụ ọrụ ozugbo na igbe ma mee ka ndụ nke ọtụtụ ndị injinia akpaaka dị mfe karị. Nke mbụ, nke a abụghị mgbanwe ọzọ nke grid Selenium. Kama nke ahụ, ndị mmepe ahụ mepụtara ụdị Selenium Hub ọhụrụ kpamkpam na Golang, nke jikọtara ya na onyonyo Docker dị fechaa maka ihe nchọgharị dị iche iche, nyere aka na mmepe nke akpaaka nnwale. Ọzọkwa, n'ihe banyere Selenium Grid, anyị ga-ekpebi ihe nchọgharị niile achọrọ na ụdị ha tupu oge eruo, nke na-abụghị nsogbu mgbe naanị otu ihe nchọgharị na-arụ ọrụ. Mana a bịa na ọtụtụ ihe nchọgharị akwadoro, Selenoid bụ azịza mbụ maka njirimara 'ihe nchọgharị na-achọ' ya. Ihe niile a chọrọ n'aka anyị bụ ibudata ihe oyiyi dị mkpa na ihe nchọgharị tupu oge eruo ma melite faịlụ nhazi nke Selenoid na-emekọ ihe. Mgbe Selenoid natachara arịrịọ site na ule ndị ahụ, ọ ga-eji ihe nchọgharị achọrọ wepụta akpa achọrọ ozugbo. Mgbe ule gwụchara, Selenoid ga-ahapụ akpa ahụ, si otú a na-ewepụta akụrụngwa maka arịrịọ n'ọdịnihu. Ụzọ a na-ewepụ kpam kpam nsogbu a maara nke ọma nke 'mmebi ọnụ' nke anyị na-ezutekarị na grid Selenium.

Ma, Ewoo, Selenoid ka abụghị mgbọ ọlaọcha. Anyị nwetara njirimara 'browser on demand', mana njirimara 'akụrụngwa a na-achọ' ka adịghị. Iji jiri Selenoid, anyị ga-ebunye ya na ngwaike anụ ahụ ma ọ bụ na VM, nke pụtara na anyị ga-eburịrị ụzọ mara ego ole achọrọ ikenye. Echere m na nke a abụghị nsogbu maka obere ọrụ na-arụ ọrụ 10, 20 ma ọ bụ ọbụna ihe nchọgharị 30 n'otu oge. Ma gịnị ma ọ bụrụ na anyị chọrọ 100, 500, 1000 na ndị ọzọ? Ọ baghị uru ijikwa ma kwụọ ụgwọ maka ọtụtụ ihe onwunwe mgbe niile. Na ngalaba 5 na 6 nke isiokwu a, anyị ga-atụle ngwọta ndị na-enye gị ohere ịbawanye ọnụ ahịa, si otú ahụ belata ụgwọ ọrụ ụlọ ọrụ.

Selenoid maka gam akporo

Mgbe ihe ịga nke ọma nke Selenoid dị ka ngwá ọrụ akpaaka weebụ, ndị mmadụ chọrọ ihe yiri nke ahụ maka gam akporo. Ma o mere - a tọhapụrụ Selenoid na nkwado gam akporo. Site n'echiche onye ọrụ dị elu, ụkpụrụ nke ịrụ ọrụ yiri akpaaka weebụ. Naanị ihe dị iche bụ na kama arịa ihe nchọgharị, Selenoid na-agba arịa emulator gam akporo. N'uche nke m, nke a bụ ngwá ọrụ efu kachasị ike ugbu a maka ịnwale ule Android n'otu oge.

Ọ gaghị amasị m ikwu banyere akụkụ ọjọọ nke ngwá ọrụ a, ebe ọ bụ na ọ masịrị m nke ukwuu. Mana ka ọ dị, enwere otu ọghọm dị na akpaaka webụ ma jikọta ya na scaling. Na mgbakwunye na nke a, anyị kwesịrị ikwu maka otu njedebe ọzọ nwere ike iju anyị anya ma ọ bụrụ na anyị na-edozi ngwá ọrụ ahụ maka oge mbụ. Iji mee ihe onyonyo gam akporo, anyị chọrọ igwe anụ ahụ ma ọ bụ VM nwere nkwado mebere akwu. N'ime otu esi eduzi, m gosipụtara otu esi eme nke a na Linux VM. Agbanyeghị, ọ bụrụ na ị bụ onye ọrụ macOS ma chọọ ibuga Selenoid na mpaghara, nke a agaghị ekwe omume ịme ule gam akporo. Mana ị nwere ike na-agba Linux VM oge niile na mpaghara nwere 'nested virtualisation' ahaziri ma bufee Selenoid n'ime.

Ihe atụ nke ọnọdụ akụrụngwa dị ugbu a

N'okwu nke isiokwu a, anyị ga-agbakwunye ngwá ọrụ 2 iji gosi akụrụngwa. Ndị a bụ grid Selenium maka ule webụ yana Selenoid maka ule gam akporo. Na nkuzi GitHub, aga m egosikwa gị otu esi eji Selenoid mee ule webụ. 

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Njikọ inyocha

Ngwa ndị yiri ya

  • Enwere ngwaọrụ ndị ọzọ na-eji akpa, mana Docker bụ nke kacha ewu ewu. Ọ bụrụ na ịchọrọ ịnwale ihe ọzọ, buru n'uche na ngwaọrụ ndị anyị kpuchiri maka ịgba ọsọ ule Selenium n'otu n'otu agaghị arụ ọrụ na igbe ahụ.  
  • Dị ka e kwuru na mbụ, enwere ọtụtụ mgbanwe nke Selenium grid, dịka ọmụmaatụ, Zalenium.

4.CI/CD

Nkọwa nkenke nke teknụzụ

Omume nke njikọta na-aga n'ihu na-ewu ewu na mmepe yana ọ dabara na sistemụ njikwa ụdị. N'agbanyeghị nke a, echere m na enwere mgbagwoju anya na okwu okwu. Na paragraf a, m ga-achọ ịkọwa mgbanwe 3 nke teknụzụ a site n'echiche m. Na ịntanetị ị ga-ahụ ọtụtụ akụkọ nwere nkọwa dị iche iche, ọ dịkwa mma ma ọ bụrụ na echiche gị dị iche. Ihe kacha mkpa bụ na gị na ndị ọrụ ibe gị nọ n'otu ibe.

Ya mere, enwere okwu 3: CI - Njikọ na-aga n'ihu, CD - Nnyefe na-aga n'ihu na CD ọzọ - Ntugharị na-aga n'ihu. (N'okpuru ebe a, m ga-eji usoro ndị a na Bekee). Mgbanwe ọ bụla na-agbakwunye ọtụtụ usoro agbakwunyere na pipeline mmepe gị. Ma okwu na-aga n'ihu (na-aga n'ihu) bụ ihe kacha mkpa. N'okwu a, anyị na-ekwu ihe na-eme site na mmalite ruo n'isi, na-enweghị nkwụsị ma ọ bụ aka aka. Ka anyị leba anya na CI & CD na CD n'ọnọdụ a.

  • Njikọ aka na-aga n'ihu Nke a bụ nzọụkwụ mbụ nke evolushọn. Mgbe ịnyefe koodu ọhụrụ na sava ahụ, anyị na-atụ anya inweta nzaghachi ngwa ngwa na mgbanwe anyị dị mma. Na-emekarị, CI gụnyere ịgba ọsọ ngwaọrụ nyocha koodu static yana ule unit/ime API. Nke a na-enye anyị ohere ịnweta ozi gbasara koodu anyị n'ime obere sekọnd/nkeji.
  • Nzipu Na-aga n'ihu bụ nzọụkwụ dị elu karịa ebe anyị na-agba ọsọ ntinye / UI ule. Agbanyeghị, n'oge a, anyị anaghị enweta nsonaazụ ngwa ngwa dịka CI. Nke mbụ, ụdị ule ndị a na-ewe ogologo oge iji mechaa. Nke abuo, tupu ịmalite, anyị ga-etinye mgbanwe anyị na gburugburu ule/nhazi. Ọzọkwa, ọ bụrụ na anyị na-ekwu maka mmepe mobile, mgbe ahụ, nzọụkwụ ọzọ na-egosi na ọ na-emepụta ngwa ngwa anyị.
  • Na-aga n'ihu na-eche na anyị na-ahapụ ozugbo mgbanwe anyị na mmepụta ma ọ bụrụ na agafeela ule nnabata niile na ọkwa gara aga. Na mgbakwunye na nke a, mgbe ọkwa ntọhapụ gasịrị, ị nwere ike ịhazi usoro dị iche iche, dị ka ịgba ọsọ ule anwụrụ ọkụ na mmepụta na ịnakọta metrics nke mmasị. Nkwanye na-aga n'ihu ga-ekwe omume naanị site na ezigbo mkpuchi site na ule akpaghị aka. Ọ bụrụ na achọrọ enyemaka aka ọ bụla, gụnyere nnwale, nke a adịkwaghị -aga n'ihu (na-aga n'ihu). Mgbe ahụ anyị nwere ike ịsị na ọkpọkọ anyị na-agbaso naanị omume nke nnyefe na-aga n'ihu.

Uru maka akụrụngwa akpaaka

N'akụkụ a, ekwesịrị m ịkọwapụta na mgbe anyị na-ekwu maka ule UI njedebe na njedebe, ọ pụtara na anyị ga-ebuga mgbanwe anyị na ọrụ metụtara iji nwalee gburugburu. Njikọ na-aga n'ihu - usoro a anaghị adabara maka ọrụ a ma anyị ga-eleba anya n'imejuputa ma ọ dịkarịa ala omume nnyefe na-aga n'ihu. Nkwanye na-aga n'ihu na-enwekwa uche n'ihe gbasara ule UI ma ọ bụrụ na anyị ga-agba ọsọ ha na mmepụta.

Ma tupu anyị elee ihe atụ nke mgbanwe ụlọ, achọrọ m ikwu okwu ole na ole gbasara GitLab CI. N'adịghị ka ngwaọrụ CI/CD ndị ọzọ, GitLab na-enye ebe nchekwa dịpụrụ adịpụ yana ọtụtụ atụmatụ ndị ọzọ. Ya mere, GitLab karịrị CI. Ọ na-agụnye njikwa koodu isi mmalite, njikwa Agile, pipeline CI / CD, ngwaọrụ ntinye na nchịkọta metrik si na igbe ahụ. Ihe owuwu GitLab nwere Gitlab CI/CD na GitLab Runner. Nke a bụ nkọwa dị mkpirikpi sitere na webụsaịtị gọọmentị:

Gitlab CI/CD bụ ngwa webụ nwere API nke na-echekwa steeti ya na nchekwa data, na-ejikwa ọrụ/ewu ma na-enye interface onye ọrụ. GitLab Runner bụ ngwa nke na-ewuli elu. Enwere ike ibuga ya iche ma jiri GitLab CI/CD rụọ ọrụ site na API. Maka ule na-agba ọsọ, ịchọrọ ma ihe atụ Gitlab na Runner.

Ihe atụ nke ọnọdụ akụrụngwa dị ugbu a

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Njikọ inyocha

Ngwa ndị yiri ya

5. igwe ojii nyiwe

Nkọwa nkenke nke teknụzụ

N'akụkụ a, anyị ga-ekwu maka ihe na-ewu ewu nke a na-akpọ 'igwe ojii nke ọha'. N'agbanyeghị nnukwu uru nke teknụzụ virtualization na containerization akọwara n'elu na-enye, anyị ka chọrọ akụrụngwa mgbakọ. Ụlọ ọrụ na-azụta ihe nkesa dị oké ọnụ ahịa ma ọ bụ ụlọ ọrụ mgbazinye data, ma na nke a, ọ dị mkpa iji mee mgbakọ na mwepụ (mgbe ụfọdụ ihe na-ezighị ezi) nke ego ole anyị ga-achọ, ma anyị ga-eji ha 24/7 na ihe kpatara ya. Dịka ọmụmaatụ, mmepụta chọrọ ihe nkesa na-agba ọsọ XNUMX/XNUMX, mana anyị chọrọ ihe ndị yiri ya maka ịnwale n'èzí oge ọrụ? Ọ daberekwa n'ụdị ule a na-eme. Otu ihe atụ ga-abụ ule ibu/nrụgide nke anyị na-eme atụmatụ ịgba ọsọ n'oge awa anaghị arụ ọrụ iji nweta nsonaazụ n'echi ya. Mana n'ezie ọnweghị ihe nkesa XNUMX/XNUMX ka achọrọ maka nnwale akpaaka na ngwụcha ruo ọgwụgwụ na ọkachasị ọ bụghị maka gburugburu nnwale ntuziaka. Maka ọnọdụ ndị dị otú ahụ, ọ ga-adị mma ịnweta ọtụtụ ihe onwunwe dị ka achọrọ na ọchịchọ, jiri ha mee ihe, ma kwụsị ịkwụ ụgwọ mgbe ọ na-adịkwaghị ha mkpa. Ọzọkwa, ọ ga-adị mma ịnata ha ozugbo site na ịmegharị òké ole na ole ma ọ bụ na-agba ọsọ edemede ole na ole. Nke a bụ ihe a na-eji igwe ojii eme ihe. Ka anyị lee nkọwa ya anya:

"A kọwara igwe ojii dị ka ọrụ mgbako nke ndị na-enye ndị ọzọ na-enye n'Ịntanet, na-eme ka ọ dịrị onye ọ bụla chọrọ iji ma ọ bụ zụta ya. Ha nwere ike ịbụ n'efu ma ọ bụ ree ya na-achọ, na-enye ndị ahịa ohere ịkwụ ụgwọ naanị otu ojiji maka okirikiri CPU, nchekwa, ma ọ bụ bandwit ha na-eri.

Enwere echiche na igwe ojii dị oke ọnụ. Mana isi echiche ha bụ ibelata ụgwọ ụlọ ọrụ. Dị ka e kwuru na mbụ, ígwé ojii ọha na eze na-enye gị ohere ịnweta akụrụngwa na-achọ ma kwụọ ụgwọ naanị maka oge ị na-eji ha. Ọzọkwa, mgbe ụfọdụ anyị na-echefu na ndị ọrụ na-enweta ụgwọ ọnwa, na ndị ọkachamara bụkwa ihe dị oké ọnụ ahịa. A ghaghị iburu n'uche na ígwé ojii ọha na eze na-eme ka nkwado akụrụngwa dịkwuo mfe, nke na-enye ndị injinia ohere ilekwasị anya na ọrụ ndị ka mkpa. 

Uru maka akụrụngwa akpaaka

Kedu akụrụngwa akọwapụtara anyị chọrọ maka ule UI ngwụcha ruo ọgwụgwụ? Ndị a bụ igwe mebere ma ọ bụ ụyọkọ (anyị ga-ekwu maka Kubernetes na ngalaba na-esote) maka ihe nchọgharị na-agba ọsọ na emulators. Ka ihe nchọgharị na emulators anyị na-achọ ịgba ọsọ n'otu oge, ka CPU na ebe nchekwa chọrọ na ego ka anyị ga-akwụ maka ya. Ya mere, igwe ojii na ọnọdụ nke akpaaka nnwale na-enye anyị ohere ịgba ọsọ buru ibu (100, 200, 1000 ...) nke ihe nchọgharị / emulators na-achọ, nweta nsonaazụ ule ngwa ngwa o kwere mee ma kwụsị ịkwụ ụgwọ maka oke akụ na ụba dị otú ahụ. ike. 

Ndị na-eweta igwe ojii kachasị ewu ewu bụ Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Otu esi eduzi na-enye ọmụmaatụ otu esi eji GCP, mana n'ozuzu ọ baghị uru ihe ị na-eji maka ọrụ akpaaka. Ha niile na-enye ihe dị ka otu ọrụ. Dịka, ịhọrọ onye na-eweta ya, njikwa na-elekwasị anya na akụrụngwa ụlọ ọrụ na ihe azụmaahịa chọrọ, nke karịrị oke isiokwu a. Maka ndị injinia akpaaka, ọ ga-abụ ihe na-adọrọ mmasị iji tụnyere ojiji nke ndị na-enye igwe ojii na iji igwe ojii mee ihe maka ebumnuche nnwale, dị ka Sauce Labs, BrowserStack, BitBar, na ndị ọzọ. Ya mere, ka anyị meekwa ya! N'uche nke m, Sauce Labs bụ ugbo nnwale igwe ojii ama ama, nke mere m ji jiri ya tụnyere ya. 

GCP vs Sauce Labs maka ebumnuche akpaaka:

Ka anyị were ya na anyị kwesịrị ịgba ọsọ 8 webụ ule na 8 Android ule n'out oge. Maka nke a, anyị ga-eji GCP wee jiri Selenoid rụọ igwe mebere 2. Na nke mbụ anyị ga-ebuli 8 containers na ihe nchọgharị. Na nke abụọ e nwere 8 containers na emulators. Ka anyị leba anya na ọnụ ahịa:  

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ
Iji mee otu akpa na Chrome, anyị chọrọ n1-ọkọlọtọ-1 ụgbọ ala. N'ihe banyere Android ọ ga-abụ n1-ọkọlọtọ-4 maka otu emulator. N'ezie, ụzọ na-agbanwe agbanwe ma dị ọnụ ala bụ ịtọ ụkpụrụ njirimara maka CPU / ebe nchekwa, mana ugbu a ọ dịghị mkpa iji tụnyere Sauce Labs.

Ma ebe a bụ tarifu maka iji Sauce Labs:

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ
Ekwenyere m na ị chọpụtalarị ihe dị iche, mana m ka ga-enye tebụl na mgbako maka ọrụ anyị:

Akụrụngwa achọrọ
Monly
Oge ọrụ(8 ụtụtụ - 8 elekere)
Oge ọrụ+ Nke a na-ebu ụzọ aga

GCP maka Weebụ
n1-ọkọlọtọ-1 x 8 = n1-ọkọlọtọ-8
$194.18
Ụbọchị 23 * 12h * 0.38 = $ 104.88 
Ụbọchị 23 * 12h * 0.08 = $ 22.08

Ụlọ nyocha Sauce maka Weebụ
Nnwale myirịta Cloud8 Virtual
$1.559
-
-

GCP maka gam akporo
n1-ọkọlọtọ-4 x 8: n1-ọkọlọtọ-16
$776.72
Ụbọchị 23 * 12h * 1.52 = $ 419.52 
Ụbọchị 23 * 12h * 0.32 = $ 88.32

Sauce Labs maka gam akporo
Ezi Ngwaọrụ Cloud 8 yiri ule
$1.999
-
-

Dị ka ị pụrụ ịhụ, ọdịiche dị na ọnụ ahịa dị ukwuu, karịsịa ma ọ bụrụ na ị na-agba ọsọ ule naanị n'ime oge ọrụ awa iri na abụọ. Ma ị nwere ike belata ọnụ ahịa ọbụna karịa ma ọ bụrụ na ị na-eji igwe ndị a na-ebu ụzọ eme ya. Kedu ihe ọ bụ?

VM a na-ebu ụzọ bu ihe atụ nke ị nwere ike ịmepụta ma na-agba ọsọ na ọnụ ahịa dị ukwuu karịa oge nkịtị. Agbanyeghị, Injin Kọmputa nwere ike kwụsịchaa (ịmalite) oge ndị a ma ọ bụrụ na ọ chọrọ ịnweta akụrụngwa ndị ahụ maka ọrụ ndị ọzọ. Ihe atụ ndị a na-atụghị anya ya karịrị ike Compute Engine, yabụ nnweta ha dịgasị iche na ojiji.

Ọ bụrụ na ngwa gị na-anabata mmejọ yana nwee ike ikwado ihe atụ ga-ekwe omume, mgbe ahụ ihe ndị a ga-ebu ụzọ were were belata ọnụ ahịa Injin Compute gị nke ukwuu. Dịka ọmụmaatụ, ọrụ nhazi ogbe nwere ike ịga n'ihu n'ọnọdụ ndị a na-atụghị anya ya. Ọ bụrụ na ụfọdụ n'ime ihe ndị ahụ akwụsị n'oge nhazi, ọrụ ahụ na-ebelata ma ọ naghị akwụsị kpamkpam. Ihe atụ ndị a na-atụghị anya ya na-emecha ọrụ nhazi ogbe gị na-etinyeghị ibu ọrụ ọzọ na ihe omume gị dị na-achọghị ka ị kwụọ ụgwọ zuru ezu maka oge nkịtị ọzọ.

Ma ọ ka agwụbeghị! N'ezie, ejiri m n'aka na ọ nweghị onye na-agba ule maka awa 12 na-enweghị ezumike. Ma ọ bụrụ otú ahụ, ị ​​nwere ike na-akpaghị aka na-amalite na-akwụsị mebere igwe mgbe ha na-adịghị mkpa. Enwere ike ibelata oge ojiji ya ka ọ bụrụ awa 6 kwa ụbọchị. Mgbe ahụ ugwo n'ọnọdụ nke ọrụ anyị ga-ebelata ruo $11 kwa ọnwa maka ihe nchọgharị 8. Nke a ọ́ bụghị ọmarịcha? Mana site na igwe ndị a na-ebu ụzọ, anyị ga-akpachara anya ma dịrị njikere maka nkwụsịtụ na enweghị ntụkwasị obi, n'agbanyeghị na enwere ike ịnye ma dozie ọnọdụ ndị a na ngwanrọ. Ọ bara uru!

Mana ọ nweghị ụzọ m na-ekwu 'ejila ugbo nyocha igwe ojii'. Ha nwere ọtụtụ uru. Nke mbụ, nke a abụghị naanị igwe mebere, kama ọ bụ ihe ngwọta akpaaka nke ule zuru oke nke nwere usoro ọrụ sitere na igbe: ohere dịpụrụ adịpụ, ndekọ, nseta ihuenyo, ndekọ vidiyo, ihe nchọgharị dị iche iche na ngwaọrụ mkpanaka anụ ahụ. N'ọtụtụ ọnọdụ, nke a nwere ike ịbụ ihe ọzọ dị mkpa na chic ọzọ. Ngwunye ule bara uru karịsịa maka akpaaka IOS, mgbe igwe ojii nwere ike inye naanị sistemụ Linux/Windows. Ma anyị ga-ekwu banyere iOS n'isiokwu na-esonụ. M na-akwado mgbe niile na-ele anya na ọnọdụ na-amalite site na ọrụ: n'ọnọdụ ụfọdụ ọ dị ọnụ ala karịa na-arụ ọrụ nke ọma na-eji ọha n'ígwé ojii, na ndị ọzọ na ule nyiwe na-maa kwesịrị ego eji.

Ihe atụ nke ọnọdụ akụrụngwa dị ugbu a

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Njikọ inyocha

Ngwa ndị yiri ya:

6. Orchestration

Nkọwa nkenke nke teknụzụ

Enwere m ozi ọma - anyị fọrọ nke nta ka ọ bụrụ na njedebe nke isiokwu ahụ! N'oge a, akụrụngwa akpaaka anyị nwere ule webụ na gam akporo, nke anyị na-aga GitLab CI n'otu aka ahụ, na-eji ngwa Docker enyere aka: Selenium grid na Selenoid. Ọzọkwa, anyị na-eji igwe mebere emepụtara site na GCP iji kwado arịa nwere ihe nchọgharị na emulators. Iji belata ọnụ ahịa, anyị na-amalite igwe ndị a mebere naanị na achọrọ ma kwụsị ha mgbe anaghị eme nnwale. Ọ nwere ihe ọzọ nwere ike imeziwanye akụrụngwa anyị? Azịza ya bụ ee! Zute Kubernetes (K8s)!

Nke mbụ, ka anyị leba anya n’otú okwu egwu egwu, ụyọkọ, na Kubernetes si metụta ibe ha. N'ọkwa dị elu, orchestration bụ usoro na-ebuga ma na-ejikwa ngwa. Maka akpaaka nnwale, ngwa ndị nwere akpa bụ Selenium grid na Selenoid. Docker na K8 na-akwado ibe ha. A na-eji nke mbụ maka mbugharị ngwa, nke abụọ maka nhazi egwu. N'aka nke ya, K8 bụ ụyọkọ. Ọrụ nke ụyọkọ ahụ bụ iji VM dị ka Nodes, nke na-enye gị ohere ịwụnye ọrụ dị iche iche, mmemme na ọrụ n'ime otu ihe nkesa (ụyọkọ). Ọ bụrụ na nke ọ bụla n'ime Nodes daa, Nodes ndị ọzọ ga-ebuli, nke na-eme ka ọrụ anyị ghara ịkwụsị. Na mgbakwunye na nke a, K8s nwere ọrụ dị mkpa metụtara scaling, ekele nke anyị na-akpaghị aka na-enweta ego kachasị mma dabere na ibu ahụ ma debe oke.

N'ezie, iji aka bufee Kubernetes site na ọkọ abụghị obere ọrụ ma ọlị. M ga-ahapụ njikọ nke ama ama ka esi eduzi "Kubernetes The Hard Way" ma ọ bụrụ na ị nwere mmasị, ị nwere ike ịme ya. Mana, ọ dabara nke ọma, enwere ụzọ na ngwaọrụ ndị ọzọ. Ụzọ kachasị mfe bụ iji Google Kubernetes Engine (GKE) na GCP, nke ga-enye gị ohere ịnweta ụyọkọ akwadoro na ntanye ole na ole. Ana m akwado iji usoro a malite mmụta, n'ihi na ọ ga-enye gị ohere ilekwasị anya n'ịmụ ka esi eji K8 maka ọrụ gị kama ịmụta ka esi ejikọta ihe ndị dị n'ime. 

Uru maka akụrụngwa akpaaka

Ka anyị lelee atụmatụ ole na ole dị ịrịba ama nke ndị K8 na-enye:

  • ntinye ngwa ngwa: iji ụyọkọ ọnụ ọtụtụ karịa VM;
  • dynamic scaling: na-ebelata ọnụ ahịa akụrụngwa nke a na-eji naanị na-achọ;
  • ọgwụgwọ onwe: mgbake akpaka nke pọd (n'ihi nke a na-eweghachikwa arịa);
  • mweghachi nke mmelite na mweghachi nke mgbanwe na-enweghị oge ọdịda: ngwaọrụ emelite, ihe nchọgharị na emulators anaghị akwụsị ọrụ nke ndị ọrụ ugbu a.

Mana ndị K8 ka abụghị mgbọ ọlaọcha. Iji ghọta uru na njedebe niile na ọnọdụ nke ngwaọrụ anyị na-atụle (Selenium grid, Selenoid), anyị ga-atụle nkenke usoro nke K8s. Ụyọkọ nwere ụdị ọnụ abụọ: Master Nodes na Nodes ndị ọrụ. Nna-ukwu Nodes na-ahụ maka njikwa, ntinye na nhazi mkpebi. Ọnụ ndị ọrụ bụ ebe a na-agba ọsọ ngwa. Ọnụ ọnụ nwekwara ebe a na-agba ọsọ akpa. N'ọnọdụ anyị, nke a bụ Docker, nke na-ahụ maka ọrụ metụtara akpa. Mana enwerekwa ihe ngwọta ọzọ, dịka ọmụmaatụ n'akpa. Ọ dị mkpa ịghọta na scaling ma ọ bụ ọgwụgwọ onwe adịghị emetụta ozugbo na arịa. A na-emejuputa nke a site n'ịgbakwunye / ibelata ọnụ ọgụgụ nke pọd, nke n'aka nke ya nwere arịa (na-abụkarị otu akpa kwa pod, ma dabere na ọrụ ahụ enwere ike inwekwu). Ndị isi ọkwa dị elu nwere ọnụ ọnụ ndị ọrụ, n'ime ya enwere pọd, n'ime ya na-ebuli arịa.

Njirimara nchacha ahụ bụ isi na enwere ike itinye ya na ọnụ abụọ n'ime ọdọ mmiri ụyọkọ na pọd n'ime ọnụ. Enwere ụdị scaling 2 na-emetụta ma ọnụ na pods. Ụdị nke mbụ bụ kehoraizin - scaling na-eme site n'ịbawanye ọnụ ọgụgụ nke ọnụ ọnụ/pods. Ụdị a ka mma karịa. Ụdị nke abụọ bụ, ya mere, kwụ ọtọ. A na-eme scaling site n'ịba ụba nke ọnụ ọnụ / pods, ọ bụghị ọnụ ọgụgụ ha.

Ugbu a, ka anyị leba anya na ngwaọrụ anyị na ọnọdụ nke okwu ndị a dị n'elu.

Selenium grid

Dị ka e kwuru na mbụ, Selenium grid bụ ngwá ọrụ na-ewu ewu nke ukwuu, ọ bụghịkwa ihe ijuanya na e debere ya. Ya mere, ọ bụghị ihe ijuanya na enwere ike ibunye grid Selenium na K8s. Enwere ike ịhụ ọmụmaatụ otu esi eme nke a na ebe nchekwa K8s gọọmentị. Dị ka ọ dị na mbụ, m na-etinye njikọ na njedebe nke ngalaba. Tụkwasị na nke a, otu esi eduzi na-egosi otu esi eme nke a na Terraform. Enwekwara ntụzịaka maka otu esi eme ọnụ ọgụgụ pọd ndị nwere ihe nchọgharị. Mana ọrụ nchacha akpaka na ọnọdụ nke K8 ka abụghị ọrụ doro anya kpamkpam. Mgbe m malitere ịmụ akwụkwọ, ahụghị m nduzi ọ bụla bara uru ma ọ bụ ndụmọdụ. Mgbe ọtụtụ ọmụmụ na nnwale na nkwado nke ndị otu DevOps, anyị họọrọ ụzọ nke ịzụlite arịa na ihe nchọgharị dị mkpa n'ime otu pọd, nke dị n'ime otu onye ọrụ ọnụ. Usoro a na-enye anyị ohere itinye atụmatụ nke nhazi nke oghere nke oghere site n'ịba ụba ọnụ ọgụgụ ha. Enwere m olileanya na nke a ga-agbanwe n'ọdịnihu na anyị ga-ahụkwu nkọwa nke ụzọ ka mma na ngwọta dị njikere, karịsịa mgbe a tọhapụrụ Selenium grid 4 na mgbanwe ime ụlọ.

Selenoid:

Mbunye Selenoid na K8 bụ nnukwu ndakpọ olileanya ugbu a. Ha adabaghị. Na tiori, anyị nwere ike ibuli akpa Selenoid n'ime pọd, mana mgbe Selenoid malitere ịmalite arịa na ihe nchọgharị, ha ka ga-anọkwa n'ime otu pọd ahụ. Nke a na-eme ka ọ bụrụ ihe na-agaghị ekwe omume na, n'ihi ya, ọrụ Selenoid n'ime ụyọkọ agaghị adị iche na ọrụ n'ime igwe mebere. Ọgwụgwụ akụkọ.

Ọnwa:

N'ịmara ihe mgbochi a mgbe ya na Selenoid na-arụ ọrụ, ndị mmepe wepụtara ngwá ọrụ dị ike karị a na-akpọ Ọnwa. Emebere ngwa a ka ọ rụọ ọrụ na Kubernetes na, n'ihi ya, njirimara autoscaling nwere ike ma kwesị iji ya. Ọzọkwa, m ga-ekwu na n'oge ọ bụ otu ngwá ọrụ dị na ụwa Selenium, nke nwere nkwado ụyọkọ K8s n'ime igbe ahụ (adịkwaghị, lee ngwa ọzọ ). Akụkụ bụ isi nke ọnwa na-enye nkwado a bụ: 

Enweghị obodo kpamkpam. Selenoid na-echekwa ozi ebe nchekwa gbasara oge ihe nchọgharị na-agba ọsọ ugbu a. Ọ bụrụ na n'ihi ihe ụfọdụ ya usoro mkpọka - mgbe niile na-agba ọsọ sessions na-efunahụ. Ọnwa na-emegiderịta onwe ya enweghị ọnọdụ dị n'ime ma enwere ike ịmegharị ya n'ofe ebe data. Oge ihe nchọgharị na-adị ndụ ọbụlagodi na otu ma ọ bụ karịa oyiri agbada.

Ya mere, Ọnwa bụ nnukwu ngwọta, ma enwere otu nsogbu: ọ bụghị n'efu. Ọnụahịa na-adabere na ọnụ ọgụgụ nke sessions. Ị nwere ike ịgba ọsọ naanị 0-4 sessions n'efu, nke na-abaghị uru karịsịa. Mana, malite na nnọkọ nke ise, ị ga-akwụ $5 maka nke ọ bụla. Ọnọdụ ahụ nwere ike ịdị iche site na ụlọ ọrụ gaa na ụlọ ọrụ, mana n'ọnọdụ anyị, iji Moon enweghị isi. Dịka m kọwara n'elu, anyị nwere ike iji Selenium Grid na-agba ọsọ VM ma ọ bụ mụbaa ọnụ ọgụgụ nke Nodes na ụyọkọ. Maka ihe dị ka otu pipeline, anyị na-ewepụta ihe nchọgharị 500 wee kwụsị akụrụngwa niile ka emechara ule ahụ. Ọ bụrụ na anyị ejiri Ọnwa, anyị ga-akwụkwu 500 x 5 = $2500 kwa ọnwa, n'agbanyeghị ugboro ole anyị na-agba ule. Ọzọ, Anaghị m asị na ejila Ọnwa. Maka ọrụ gị, nke a nwere ike ịbụ ihe ngwọta dị mkpa, dịka ọmụmaatụ, ọ bụrụ na ị nwere ọtụtụ ọrụ / otu na nzukọ gị ma ịchọrọ nnukwu ụyọkọ nkịtị maka onye ọ bụla. Dị ka mgbe niile, m na-ahapụ njikọ na njedebe ma na-akwado ime mgbakọ niile dị mkpa na ọnọdụ nke ọrụ gị.

Kpọọ: (Ntị! Nke a adịghị na edemede mbụ ma ọ dị naanị na nsụgharị Russian)

Dị ka m kwuru, Selenium bụ ngwá ọrụ a ma ama, yana ubi IT na-etolite ngwa ngwa. Mgbe m na-arụ ọrụ nsụgharị ahụ, ngwá ọrụ ọhụrụ na-ekwe nkwa a na-akpọ Callisto pụtara na webụ (ndewo Cypress na ndị ọzọ na-egbu Selenium). Ọ na-arụ ọrụ nke ọma na K8s ma na-enye gị ohere ịme igbe Selenoid na pọd, kesara gafee Nodes. Ihe niile na-arụ ọrụ ozugbo na igbe, gụnyere autoscaling. Fantastic, mana ọ dị mkpa ịnwale. Enweela m ike itinye ngwá ọrụ a ma mee ọtụtụ nnwale. Ma ọ dị n'oge iji nweta nkwubi okwu, mgbe ị nwetasịrị nsonaazụ n'ebe dị anya, ikekwe m ga-eme nyocha na isiokwu ndị ga-abịa n'ọdịnihu. Maka ugbu a, m na-ahapụ naanị njikọ maka nyocha onwe.  

Ihe atụ nke ọnọdụ akụrụngwa dị ugbu a

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Njikọ inyocha

Ngwa ndị yiri ya

7. Akụrụngwa dị ka koodu (IaC)

Nkọwa nkenke nke teknụzụ

Ma ugbu a, anyị na-abịa na nke ikpeazụ ngalaba. Dịka, teknụzụ a na ọrụ ndị metụtara ya abụghị ọrụ nke ndị injinia akpaaka. E nwekwara ihe kpatara nke a. Nke mbụ, n'ọtụtụ ụlọ ọrụ, ihe gbasara akụrụngwa dị n'okpuru nchịkwa nke ngalaba DevOps na ndị otu mmepe adịghị eche banyere ihe na-eme ka pipeline na-arụ ọrụ na otú e si akwado ihe niile metụtara ya. Nke abuo, ka anyị kwuo eziokwu, omume akụrụngwa dị ka Usoro (IaC) ka anabatabeghị n'ọtụtụ ụlọ ọrụ. Mana ọ bụrụla nke a na-ewu ewu ma ọ dị mkpa ịgbalị itinye aka na usoro, ụzọ na ngwaọrụ metụtara ya. Ma ọ bụ ma ọ dịghị ihe ọzọ, nọgide na-eme ihe ọhụrụ.

Ka anyị malite na mkpali maka iji usoro a. Anyị atụleworị na iji mee ule na GitlabCI, anyị ga-achọ opekempe akụrụngwa iji mee Gitlab Runner. Na iji ihe nchọgharị/emulators na-ebu akpa, anyị kwesịrị idowe VM ma ọ bụ ụyọkọ. Na mgbakwunye na nyocha ihe onwunwe, anyị chọrọ ikike dị ukwuu iji kwado mmepe, nhazi, gburugburu mmepụta, nke na-agụnye ọdụ data, nhazi oge, nhazi netwọk, ndị na-ebu ibu, ikike onye ọrụ, na ihe ndị ọzọ. Isi okwu bụ mbọ a chọrọ iji kwado ya niile. Enwere ụzọ dị iche iche anyị nwere ike isi mee mgbanwe ma wepụta mmelite. Dịka ọmụmaatụ, n'ọnọdụ GCP, anyị nwere ike iji njikwa UI na ihe nchọgharị wee mee omume niile site na ịpị bọtịnụ. Nhọrọ ọzọ ga-abụ iji oku API na-emekọrịta ihe na ụlọ ọrụ igwe ojii, ma ọ bụ jiri akara ahịrị iwu gcloud rụọ ọrụ achọrọ. Ma na ọnụ ọgụgụ dị ukwuu nke ụlọ ọrụ dị iche iche na akụrụngwa akụrụngwa, ọ na-esiri ike ma ọ bụ ọbụna agaghị ekwe omume iji aka rụọ ọrụ niile. Ọzọkwa, omume akwụkwọ ntuziaka ndị a niile enweghị nchịkwa. Anyị enweghị ike ịnyefe ha maka nyocha tupu e gbuo ha, jiri sistemụ njikwa ụdị, wee tụgharịa ngwa ngwa gbanwee mgbanwe ndị butere ihe ahụ merenụ. Iji dozie nsogbu ndị dị otú ahụ, ndị injinia kere ma mepụta akpaka bash / shell scripts, nke na-adịghị mma karịa ụzọ ndị gara aga, ebe ọ bụ na ọ dịghị mfe ịgụ ngwa ngwa, ghọta, na-echekwa ma gbanwee n'ụdị usoro.

N'isiokwu a na otu esi eduzi, m na-eji ngwaọrụ 2 metụtara omume IaC. Ndị a bụ Terraform na enwere ike. Ụfọdụ ndị kwenyere na ọ baghị uru iji ha na-eme ihe n'otu oge, ebe ọ bụ na ọrụ ha yiri nke ahụ na ha na-agbanwe agbanwe. Ma nke bụ́ eziokwu bụ na ná mmalite, a na-enye ha ọrụ dị iche iche. Na eziokwu ahụ bụ na ngwaọrụ ndị a kwesịrị ịkwado ibe ha ka akwadoro na ngosipụta nkwonkwo nke ndị mmepe na-anọchite anya HashiCorp na RedHat. Ihe dị iche iche echiche bụ na Terraform bụ ngwá ọrụ ntinye maka ijikwa sava ahụ n'onwe ha. Ọ bụ ezie na enwere ike bụ ngwa njikwa nhazi nke ọrụ ya bụ ịwụnye, hazie na jikwaa ngwanrọ na sava ndị a.

Isi ihe ọzọ na-egosi ọdịiche nke ngwaọrụ ndị a bụ ụdị koodu. N'adịghị ka bash na ihe nwere ike ime, Terraform na-eji ụdị nkwupụta dabere na nkọwa nke njedebe njedebe achọrọ ka a nweta ya n'ihi ogbugbu. Dịka ọmụmaatụ, ọ bụrụ na anyị ga-emepụta 10 VM ma tinye mgbanwe site na Terraform, mgbe ahụ anyị ga-enweta 10 VM. Ọ bụrụ na anyị na-agbagharị edemede ahụ ọzọ, ọ dịghị ihe ga-eme ebe ọ bụ na anyị enweelarị VM 10, na Terraform maara banyere nke a n'ihi na ọ na-echekwa ọnọdụ ugbu a nke akụrụngwa na faịlụ steeti. Mana Ansible na-eji usoro usoro na, ọ bụrụ na ị rịọ ya ka o mepụta 10 VM, mgbe ahụ na mbido mbụ anyị ga-enweta 10 VM, dị ka Terraform. Mana ka ịmalitegharịa anyị ga-enwerịrị 20 VM. Nke a bụ ihe dị mkpa dị iche. N'ụdị usoro, anyị anaghị echekwa ọnọdụ dị ugbu a ma kọwaa naanị usoro usoro nke a ga-emerịrị. N'ezie, anyị nwere ike ijikwa ọnọdụ dị iche iche, tinye ọtụtụ nyocha maka ịdị adị nke ihe onwunwe na ọnọdụ dị ugbu a, ma ọ dịghị uru ịla n'iyi oge anyị na itinye mgbalị n'ịchịkwa echiche a. Tụkwasị na nke a, nke a na-abawanye ohere nke ime ihe ndudue. 

N'ịchịkọta ihe niile dị n'elu, anyị nwere ike ikwubi na Terraform na nkwupụta nkwupụta bụ ngwá ọrụ kwesịrị ekwesị maka ịnye sava. Ma ọ ka mma ịnyefe ọrụ nhazi nhazi na Ansible. Site na nke ahụ, ka anyị leba anya n'okwu eji eme ihe na ọnọdụ nke akpaaka.

Uru maka akụrụngwa akpaaka

Naanị ihe dị mkpa ị ga-aghọta ebe a bụ na a ga-atụle akụrụngwa akpaaka nnwale dị ka akụkụ nke akụrụngwa ụlọ ọrụ niile. Nke a pụtara na a ga-etinyerịrị omume IaC niile n'ụwa niile maka akụrụngwa nke ọgbakọ niile. Onye na-ahụ maka nke a dabere na usoro gị. Ndị otu DevOps nwere ahụmịhe karịa na okwu ndị a, ha na-ahụ foto niile nke ihe na-eme. Otú ọ dị, ndị injinia QA na-etinye aka na usoro nke ịmepụta akpaaka na nhazi nke pipeline, nke na-enye ha ohere ịhụ mgbanwe niile achọrọ na ohere maka imeziwanye. Nhọrọ kachasị mma bụ ịrụkọ ọrụ ọnụ, gbanwee ihe ọmụma na echiche iji nweta nsonaazụ a tụrụ anya ya. 

Nke a bụ ihe atụ ole na ole nke iji Terraform na ihe nwere ike ime n'ọnọdụ nke akpaaka nnwale yana ngwa ndị anyị tụlere na mbụ:

1. Kọwaa njirimara dị mkpa na oke nke VM na ụyọkọ site na iji Terraform.

2. Iji kwenye, wụnye ngwaọrụ ndị dị mkpa maka nnwale: docker, Selenoid, Selenium Grid ma budata ụdị ihe nchọgharị / emulators achọrọ.

3. Iji Terraform, kọwaa njirimara nke VM nke GitLab Runner ga-amalite.

4. Wụnye GitLab Runner na ngwaọrụ ndị dị mkpa na-eso ya site na iji ike, setịpụ ntọala na nhazi.

Ihe atụ nke ọnọdụ akụrụngwa dị ugbu a

Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Njikọ iji nyochaa:

Ngwa ndị yiri ya

Ka anyị chịkọta ya!

Nzọụkwụ
Technology
Ngwaọrụ
Uru maka akụrụngwa akpaaka

1
Na-agba ọsọ mpaghara
Node.js, Selenium, Appium

  • Ngwa kachasị ewu ewu maka webụ na mkpanaka
  • Na-akwado ọtụtụ asụsụ na nyiwe (gụnyere Node.js)

2
Sistemụ njikwa ụdị 
Git

  • Uru ndị yiri ya nwere koodu mmepe

3
Ngwakọta
Docker, Selenium grid, Selenoid (Weebụ, Android)

  • Nnwale na-agba ọsọ n'otu oge
  • Gburugburu ndị dịpụrụ adịpụ
  • Nkwalite ụdị dị mfe, na-agbanwe agbanwe
  • Na-akwụsịtụ akụrụngwa ejighi ya
  • Mfe melite

4
CI/CD
Gitlab CI

  • Na-anwale akụkụ nke pipeline
  • Nzaghachi ngwa ngwa
  • Ọhụụ maka ụlọ ọrụ/otu niile

5
Igwe ojii
Google Cloud Platform

  • Akụrụngwa achọrọ (anyị na-akwụ naanị mgbe achọrọ)
  • Ọ dị mfe ijikwa ma melite
  • Ọhụhụ na njikwa akụrụngwa niile

6
Orchestration
Kubernetes
N'ọnọdụ nke arịa nwere ihe nchọgharị/emulators n'ime pods:

  • Ịchacha/nyocha akpaaka
  • Ngwọta onwe onye
  • Mmelite na nlọghachi azụ na-enweghị nkwụsị

7
Akụrụngwa dị ka koodu (IaC)
Terraform, kwere omume

  • Uru ndị yiri ya na akụrụngwa mmepe
  • Uru niile nke ụdị koodu
  • Ọ dị mfe ime mgbanwe na idobe
  • Akpaaka zuru oke

Eserese eserese nke uche: evolushọn nke akụrụngwa

nzọụkwụ 1: Mpaghara
Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Nzọụkwụ 2: VCS
Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

nzọụkwụ 3: arịa 
Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Nzọụkwụ 4: CI/CD 
Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

nzọụkwụ 5: Cloud Platform
Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

nzọụkwụ 6: Orchestration
Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

nzọụkwụ 7: iac
Ngwa DevOps abụghị naanị maka DevOps. Usoro nke iwulite akụrụngwa akpaaka nnwale site na ọkọ

Kedu ihe ọzọ?

Yabụ, nke a bụ njedebe nke akụkọ a. Mana na mmechi, ọ ga-amasị m ịmekọrịta ụfọdụ nkwekọrịta na gị.

Site n'akụkụ gị
Dịka m kwuru na mbido, ọ ga-amasị m ka isiokwu ahụ bụrụ nke bara uru ma nyere gị aka itinye ihe ọmụma enwetara n'ọrụ n'ezie. M na-agbakwụnye ọzọ njikọ bara uru ndu.

Ma ọbụlagodi mgbe nke ahụ gasịrị, akwụsịla, mee ihe, mụọ njikọ na akwụkwọ ndị dị mkpa, chọpụta otú o si arụ ọrụ na ụlọ ọrụ gị, chọta ebe ndị nwere ike imeziwanye ma sonye na ya. Jisie ike!

Site n'akụkụ m

Site na aha ị ga-ahụ na nke a bụ naanị akụkụ nke mbụ. N'agbanyeghị na ọ tụgharịrị buru ibu, a ka ekpuchibeghị isiokwu ndị dị mkpa ebe a. N'akụkụ nke abụọ, m na-eme atụmatụ ileba anya na akụrụngwa akpaaka na ọnọdụ nke IOS. N'ihi mmachi Apple na-agba ọsọ iOS simulators naanị na sistemụ macOS, a na-ebelata ụdị azịza anyị. Dịka ọmụmaatụ, anyị enweghị ike iji Docker mee simulator ma ọ bụ ígwé ojii ọha iji mee igwe mebere. Mana nke a apụtaghị na ọ nweghị ụzọ ọzọ. M ga-agbalị ime ka ị nweta ihe ngwọta dị elu na ngwá ọrụ ọgbara ọhụrụ!

Ọzọkwa, ekwubeghị m nnukwu isiokwu metụtara nlekota. Na akụkụ 3, m ga-elele ngwaọrụ nlekota akụrụngwa kachasị ewu ewu yana data na metrik ị ga-atụle.

N'ikpeazụ. N'ọdịnihu, m na-eme atụmatụ ịhapụ nkuzi vidiyo na ụlọ nyocha akụrụngwa na ngwaọrụ ndị a ma ama. Ugbu a, enwere nkuzi na nkuzi ole na ole na DevOps na ịntanetị, mana egosipụtara ihe niile na ọnọdụ mmepe, ọ bụghị nnwale akpaaka. N'okwu a, achọrọ m nzaghachi maka ma usoro ọmụmụ dị otú ahụ ọ ga-adọrọ mmasị ma baa uru maka obodo ndị nyocha na ndị injinia akpaaka. Daalụ n'ọdịnihu!

isi: www.habr.com

Tinye a comment