Pakadali pano, zapaderazi za DevOps ndi imodzi mwazofunikira kwambiri pamakampani a IT. Mukatsegula malo otchuka osaka ntchito ndikusefa ndi malipiro, mudzawona kuti ntchito zokhudzana ndi DevOps zili pamwamba pamndandanda. Komabe, ndikofunikira kumvetsetsa kuti izi makamaka zimatanthawuza udindo wa 'Wamkulu', zomwe zikutanthauza kuti wophunzirayo ali ndi luso lapamwamba, chidziwitso cha zamakono ndi zida. Izi zimabweranso ndi udindo waukulu wokhudzana ndi ntchito yosasokonezeka ya kupanga. Komabe, tinayamba kuiwala zomwe DevOps ndi. Poyamba, sanali munthu kapena dipatimenti yeniyeni. Ngati tiyang'ana matanthauzo a mawuwa, tidzapeza mayina ambiri okongola komanso olondola, monga njira, machitidwe, filosofi ya chikhalidwe, gulu la malingaliro, ndi zina zotero.
Katswiri wanga ndi injiniya woyeserera woyeserera (QA automation engineer), koma ndikukhulupirira kuti siziyenera kulumikizidwa kokha ndi kulemba mayeso odziyimira pawokha kapena kupanga mapangidwe oyesa. Mu 2020, chidziwitso cha zomangamanga zokha ndizofunikiranso. Izi zimakupatsani mwayi wokonzekera nokha, kuyambira pakuyesa mayeso mpaka kupereka zotsatira kwa onse okhudzidwa malinga ndi zolinga zanu. Zotsatira zake, luso la DevOps ndilofunika kuti ntchitoyi ichitike. Ndipo zonsezi ndi zabwino, koma, mwatsoka, pali vuto (spoiler: nkhaniyi ikuyesera kuchepetsa vutoli). Mfundo ndi yakuti DevOps ndi yovuta. Ndipo izi ndizodziwikiratu, chifukwa makampani sadzalipira ndalama zambiri pazachinthu chosavuta kuchita ... M'dziko la DevOps, pali zida zambiri, mawu, ndi machitidwe omwe amafunikira kudziwa bwino. Izi zimakhala zovuta kwambiri kumayambiriro kwa ntchito ndipo zimatengera luso lomwe mwapeza.
Nkhaniyi ikupereka zida zodziwika bwino komanso zodziwika bwino ndikuwonetsa momwe angagwiritsire ntchito popanga zopangira zokha sitepe ndi sitepe. Gulu lirilonse likuimiridwa ndi zida zomwe zayesedwa kupyolera muzochitika zaumwini. Koma zimenezi sizikutanthauza kuti muyenera kugwiritsa ntchito chinthu chomwecho. Zida zomwezo sizofunikira, zimawonekera ndipo zimakhala zosatha. Ntchito yathu ya uinjiniya ndikumvetsetsa mfundo zazikuluzikulu: chifukwa chiyani timafunikira gulu ili la zida ndi mavuto otani omwe tingathe kuthana nawo ndi thandizo lawo. Ndicho chifukwa chake kumapeto kwa gawo lililonse ndimasiya maulalo a zida zofanana zomwe zingagwiritsidwe ntchito m'gulu lanu.
Zomwe sizili m'nkhaniyi
Ndikubwerezanso kuti nkhaniyo siyikunena za zida zenizeni, kotero sipadzakhala zoikamo ma code kuchokera pazolembedwa ndi mafotokozedwe a malamulo enieni. Koma kumapeto kwa gawo lililonse ndimasiya maulalo kuti muphunzire mwatsatanetsatane.
Izi zimachitika chifukwa:
nkhaniyi ndi yosavuta kupeza m'malo osiyanasiyana (zolemba, mabuku, maphunziro a kanema);
ngati tiyamba kupita mozama, tidzayenera kulemba 10, 20, 30 magawo a nkhaniyi (pamene mapulani ali 2-3);
Ichi ndi sitepe yokonzekera kuyesa zoyeserera kwanuko ndikuwonetsetsa kuti zapambana. Mu gawo lothandiza, Node.js imagwiritsidwa ntchito, koma chilankhulo cha pulogalamu ndi nsanja nazonso sizofunika ndipo mutha kugwiritsa ntchito zomwe zimagwiritsidwa ntchito pakampani yanu.
Komabe, monga zida zodzipangira okha, ndikupangira kugwiritsa ntchito Selenium WebDriver pamawebusayiti ndi Appium papulatifomu ya Android, motsatana, popeza m'magawo otsatirawa tidzagwiritsa ntchito zithunzi za Docker zomwe zimapangidwira kuti zizigwira ntchito mwachindunji ndi zida izi. Kuphatikiza apo, ponena za zofunikira za ntchito, zida izi ndizofunikira kwambiri pamsika.
Monga mwazindikira, timangoganizira za mayeso a intaneti ndi Android. Tsoka ilo, iOS ndi nkhani yosiyana kwambiri (zikomo Apple). Ndikukonzekera kuwonetsa mayankho okhudzana ndi IOS ndi machitidwe omwe akubwera.
Mtengo wa zomangamanga zokha
Kuchokera pamalingaliro azomangamanga, kuyendetsa kwanuko sikumapereka phindu lililonse. Mumangoyang'ana kuti mayesowa amayendera pamakina am'deralo m'masakatuli am'deralo ndi zoyeserera. Koma mulimonsemo, ichi ndi chofunikira poyambira.
Kuti muwonetse momwe kusungitsa zida zasinthira malamulo amasewera, tiyeni tibwerere m'mbuyo zaka makumi angapo. Kalelo, anthu ankagula ndi kugwiritsa ntchito makina a seva kuti agwiritse ntchito mapulogalamu. Koma nthawi zambiri, zofunikira zoyambira sizinadziwike pasadakhale. Chotsatira chake, makampani adawononga ndalama pogula ma seva okwera mtengo, amphamvu, koma zina mwa mphamvuzi sizinagwiritsidwe ntchito kwathunthu.
Gawo lotsatira la chisinthiko linali makina enieni (VMs), omwe anathetsa vuto la kuwononga ndalama pazinthu zosagwiritsidwa ntchito. Tekinoloje iyi idapangitsa kuti zitheke kuyendetsa mapulogalamu mosadalira wina ndi mnzake mkati mwa seva yomweyo, kugawa malo akutali. Koma, mwatsoka, teknoloji iliyonse ili ndi zovuta zake. Kuthamanga kwa VM kumafuna makina ogwiritsira ntchito, omwe amadya CPU, RAM, yosungirako ndipo, malingana ndi OS, ndalama zalayisensi ziyenera kuganiziridwa. Zinthu izi zimakhudza liwiro lotsitsa ndikupangitsa kuti kusuntha kukhale kovuta.
Zachidziwikire, ukadaulo wa kontena sizachilendo ndipo udayambitsidwa kumapeto kwa zaka za m'ma 70s. M'masiku amenewo, kafukufuku wambiri, zochitika, ndi zoyesayesa zinkachitika. Koma anali Docker yemwe adasinthiratu ukadaulo uwu ndikupangitsa kuti anthu azipezeka mosavuta. Masiku ano, tikamalankhula za zotengera, nthawi zambiri timatanthawuza Docker. Tikakamba za zotengera za Docker, tikutanthauza zotengera za Linux. Titha kugwiritsa ntchito makina a Windows ndi macOS kuti tiyendetse zotengera, koma ndikofunikira kumvetsetsa kuti pakadali pano pali wosanjikiza wowonjezera. Mwachitsanzo, Docker pa Mac amayendetsa mwakachetechete zotengera mkati mwa Linux VM yopepuka. Tidzabwereranso kumutuwu tikamakambirana zoyendetsa ma emulators a Android mkati mwa muli, kotero apa pali nuance yofunika kwambiri yomwe iyenera kukambidwa mwatsatanetsatane.
Mtengo wa zomangamanga zokha
Tidazindikira kuti zotengera ndi Docker ndizabwino. Tiyeni tiyang'ane izi pazimenezi, chifukwa chida chilichonse kapena luso lamakono liyenera kuthetsa vuto. Tiyeni tiwone zovuta zodziwikiratu zama test automation poyesa mayeso a UI:
chiwerengero chachikulu cha kudalira pakuyika Selenium makamaka Appium;
zovuta zogwirizana pakati pa mitundu ya asakatuli, simulators ndi madalaivala;
kusowa kwa malo akutali kwa asakatuli / zoyeserera, zomwe ndizofunikira kwambiri pakuthamanga kofanana;
Chida ichi ndi chodziwika kwambiri padziko lonse la Selenium poyendetsa asakatuli angapo pamakina angapo ndikuwongolera kuchokera pakatikati. Kuti muyambe, muyenera kulembetsa magawo awiri osachepera: Hub ndi Node (s). Hub ndi node yapakati yomwe imalandira zopempha zonse kuchokera ku mayesero ndikuzigawa ku Ma Node oyenera. Pa Node iliyonse titha kukonza masinthidwe ena, mwachitsanzo, pofotokoza msakatuli womwe mukufuna ndi mtundu wake. Komabe, tifunikabe kusamalira madalaivala ogwirizana ndi asakatuli athu ndikuwayika pa Node zomwe tikufuna. Pazifukwa izi, gululi la Selenium siligwiritsidwa ntchito mwanjira yake yoyera, pokhapokha titafunika kugwira ntchito ndi asakatuli omwe sangathe kukhazikitsidwa pa Linux OS. Pazochitika zina zonse, yankho losinthika komanso lolondola lingakhale kugwiritsa ntchito zithunzi za Docker kuyendetsa Selenium grid Hub ndi Node. Njirayi imathandizira kwambiri kasamalidwe ka node, chifukwa titha kusankha chithunzi chomwe tikufuna ndi ma asakatuli ndi madalaivala omwe adayikidwa kale.
Ngakhale malingaliro olakwika okhudza kukhazikika, makamaka akamayendetsa ma Node ambiri mofananira, gululi ya Selenium ikadali chida chodziwika bwino pakuyesa mayeso a Selenium mofananira. Ndikofunika kuzindikira kuti kusintha kosiyanasiyana ndi kusinthidwa kwa chida ichi kumawonekera mosalekeza, zomwe zimalimbana ndi zovuta zosiyanasiyana.
Selenoid kwa Webusaiti
Chida ichi ndichopambana padziko lonse la Selenium chifukwa chimagwira ntchito kunja kwa bokosilo ndipo chapangitsa moyo wa akatswiri ambiri opanga makina kukhala osavuta. Choyamba, uku sikusintha kwina kwa grid selenium. M'malo mwake, opanga adapanga mtundu watsopano wa Selenium Hub ku Golang, womwe, kuphatikiza ndi zithunzi zopepuka za Docker za asakatuli osiyanasiyana, zidapereka chilimbikitso pakupanga makina oyeserera. Komanso, pankhani ya Selenium Grid, tiyenera kudziwa asakatuli onse ofunikira ndi matembenuzidwe awo pasadakhale, zomwe sizili vuto mukamagwira ntchito ndi msakatuli m'modzi yekha. Koma zikafika pa asakatuli angapo omwe amathandizidwa, Selenoid ndiye yankho loyamba chifukwa cha mawonekedwe ake a 'kusakatula pakufunika'. Zomwe zimafunikira kwa ife ndikutsitsa zithunzi zofunika ndi asakatuli pasadakhale ndikusintha fayilo yosinthira yomwe Selenoid amalumikizana nayo. Selenoid ikalandira pempho kuchokera ku mayeso, imangoyambitsa chidebe chomwe mukufuna ndi msakatuli womwe mukufuna. Mayesowo akamaliza, Selenoid adzasiya chidebecho, motero amamasula zothandizira pazofunsira zamtsogolo. Njirayi imathetseratu vuto lodziwika bwino la 'node degradation' yomwe timakumana nayo nthawi zambiri mu grid selenium.
Koma, tsoka, Selenoid akadali chipolopolo chasiliva. Tili ndi mawonekedwe a 'kusakatula pakufunika', koma mawonekedwe a 'zothandizira pakufunika' sakupezekabe. Kuti tigwiritse ntchito Selenoid, tiyenera kuyika pa hardware yakuthupi kapena pa VM, zomwe zikutanthauza kuti tiyenera kudziwa pasadakhale kuti ndi zinthu zingati zomwe ziyenera kuperekedwa. Ndikuganiza kuti ili si vuto pamapulojekiti ang'onoang'ono omwe asakatuli 10, 20 kapena 30 molumikizana. Koma bwanji ngati tikufuna 100, 500, 1000 kapena kuposa? Palibe zomveka kusunga ndi kulipira zinthu zambiri nthawi zonse. M'magawo 5 ndi 6 a nkhaniyi, tikambirana njira zomwe zimakupatsani mwayi wokulitsa, potero muchepetse mtengo wamakampani.
Selenoid kwa Android
Pambuyo pakuchita bwino kwa Selenoid ngati chida chogwiritsa ntchito intaneti, anthu adafuna chofanana ndi Android. Ndipo zidachitika - Selenoid idatulutsidwa ndi chithandizo cha Android. Kuchokera kwa ogwiritsira ntchito apamwamba, mfundo yogwiritsira ntchito ikufanana ndi intaneti. Kusiyana kokha ndikuti m'malo mwazotengera osatsegula, Selenoid imayendetsa zotengera za emulator za Android. M'malingaliro mwanga, ichi ndiye chida champhamvu kwambiri chaulere chogwiritsa ntchito mayeso a Android mofanana.
Sindingakonde kunena za zoyipa za chida ichi, chifukwa ndimakonda kwambiri. Koma komabe, pali zovuta zomwezo zomwe zimagwira ntchito pa intaneti zokha ndipo zimalumikizidwa ndi makulitsidwe. Kuphatikiza pa izi, tifunika kulankhula za malire amodzi omwe angadabwe ngati tikukhazikitsa chida kwa nthawi yoyamba. Kuti tigwiritse ntchito zithunzi za Android, timafunikira makina akuthupi kapena VM yokhala ndi chithandizo chokhazikika. Mumomwe mungatsogolere, ndikuwonetsa momwe mungathandizire izi pa Linux VM. Komabe, ngati ndinu wogwiritsa ntchito macOS ndipo mukufuna kutumiza Selenoid kwanuko, ndiye kuti sizingatheke kuyesa mayeso a Android. Koma mutha kuyendetsa Linux VM kwanuko ndi 'nested virtualization' yokonzedwa ndikuyika Selenoid mkati.
Chithunzi cha momwe zinthu ziliri panopa
Pankhani ya nkhaniyi, tiwonjezera zida za 2 zowonetsera zomangamanga. Awa ndi gululi ya Selenium yoyeserera pa intaneti ndi Selenoid ya mayeso a Android. Mu phunziro la GitHub, ndikuwonetsani momwe mungagwiritsire ntchito Selenoid kuyesa kuyesa pa intaneti.
Mugawoli, ndiyenera kufotokozera kuti tikamalankhula za mayeso a UI kumapeto mpaka kumapeto, zikutanthauza kuti tiyenera kutumiza zosintha zathu ndi ntchito zomwe zikugwirizana nazo poyesa malo. Kuphatikiza Kopitiriza - ndondomekoyi siigwiritsidwe ntchito pa ntchitoyi ndipo tiyenera kusamala kuti tigwiritse ntchito machitidwe a Continuous Deliver. Kupititsa patsogolo Kutumiza kumamvekanso pamayeso a UI ngati titha kuwayendetsa popanga.
Ndipo tisanayang'ane fanizo la kusintha kwa kamangidwe, ndikufuna kunena mawu ochepa za GitLab CI. Mosiyana ndi zida zina za CI/CD, GitLab imapereka malo akutali ndi zina zambiri zowonjezera. Chifukwa chake, GitLab ndiyoposa CI. Zimaphatikizapo kasamalidwe ka code source, kasamalidwe ka Agile, mapaipi a CI/CD, zida zodula mitengo ndi kusonkhanitsa ma metrics kunja kwa bokosi. Zomangamanga za GitLab zili ndi Gitlab CI/CD ndi GitLab Runner. Nawa kufotokozera mwachidule kuchokera patsamba lovomerezeka:
Gitlab CI/CD ndi pulogalamu yapaintaneti yokhala ndi API yomwe imasunga dziko lake mu database, imayang'anira ma projekiti / kumanga ndikupereka mawonekedwe ogwiritsa ntchito. GitLab Runner ndi ntchito yomwe imamanga. Itha kutumizidwa padera ndipo imagwira ntchito ndi GitLab CI/CD kudzera pa API. Pamayeso omwe akuyenda muyenera onse a Gitlab ndi Runner.
Ndi zinthu ziti zomwe timafunikira pakuyesa komaliza mpaka kumapeto kwa UI? Kwenikweni awa ndi makina enieni kapena magulu (tilankhula za Kubernetes mu gawo lotsatira) poyendetsa asakatuli ndi emulators. Asakatuli ambiri ndi emulators omwe tikufuna kuthamanga nthawi imodzi, m'pamenenso CPU ndi kukumbukira zimafunikira komanso ndalama zambiri zomwe timalipira. Chifukwa chake, mitambo yapagulu pamayeso oyeserera imatilola kuyendetsa kuchuluka (100, 200, 1000 ...) kwa asakatuli / ma emulators pakufunika, kupeza zotsatira zoyeserera mwachangu momwe tingathere ndikusiya kulipira chifukwa chogwiritsa ntchito mopenga kwambiri. mphamvu.
Othandizira kwambiri pamtambo ndi Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Maupangiri otsogolera amapereka zitsanzo zamomwe mungagwiritsire ntchito GCP, koma nthawi zambiri zilibe kanthu zomwe mumagwiritsa ntchito pazinthu zongopanga zokha. Onse amapereka pafupifupi magwiridwe ofanana. Nthawi zambiri, kusankha wopereka, oyang'anira amayang'ana kwambiri zomanga zonse za kampani komanso zofunikira zamabizinesi, zomwe sizingachitike ndi nkhaniyi. Kwa akatswiri odzipangira okha, zidzakhala zosangalatsa kwambiri kufananiza kugwiritsidwa ntchito kwa opereka mitambo ndi kugwiritsa ntchito nsanja zamtambo makamaka pofuna kuyesa, monga Sauce Labs, BrowserStack, BitBar, ndi zina zotero. Choncho nafenso tichite! M'malingaliro anga, Sauce Labs ndiye famu yodziwika kwambiri yoyezetsa mitambo, chifukwa chake ndidagwiritsa ntchito kufananiza.
GCP vs Sauce Labs pazolinga zokha:
Tiyerekeze kuti tikufunika kuyesa mayeso 8 pa intaneti ndi mayeso 8 a Android nthawi imodzi. Pachifukwa ichi tidzagwiritsa ntchito GCP ndikuyendetsa makina a 2 omwe ali ndi Selenoid. Pa yoyamba tikweza zotengera 8 ndi asakatuli. Pa chachiwiri pali 8 muli ndi emulators. Tiyeni tiwone mitengo yake:
Kuti tiyendetse chidebe chimodzi ndi Chrome, tifunika n1-mulingo-1 galimoto. Pankhani ya Android idzakhala n1-mulingo-4 kwa emulator imodzi. M'malo mwake, njira yosinthika komanso yotsika mtengo ndikukhazikitsa magwiritsidwe ake a CPU/Memory, koma pakadali pano izi sizofunikira kuyerekeza ndi Sauce Labs.
Ma Labs a Msuzi a Android
Mayeso ofanana ndi Real Device Cloud 8
$1.999
-
-
Monga mukuonera, kusiyana kwa mtengo ndi kwakukulu, makamaka ngati muyesa mayeso panthawi yogwira ntchito ya maola khumi ndi awiri. Koma mutha kuchepetsa ndalama zochulukirapo ngati mugwiritsa ntchito makina osasinthika. Ndi chiyani?
VM yowoneka bwino ndi chitsanzo chomwe mutha kupanga ndikuyendetsa pamtengo wocheperako kuposa momwe zimakhalira. Komabe, Compute Engine ikhoza kuyimitsa (preempt) zochitika izi ngati ikufunika kupeza zinthuzo pa ntchito zina. Zochitika zodziwikiratu ndi kuchuluka kwa Injini ya Compute, kotero kupezeka kwake kumasiyana ndi kagwiritsidwe ntchito.
Ndili ndi uthenga wabwino - tatsala pang'ono kumapeto kwa nkhaniyi! Pakadali pano, zida zathu zodzipangira zokha zimakhala ndi mayeso a intaneti ndi Android, omwe timayenda kudzera pa GitLab CI mofananira, pogwiritsa ntchito zida zothandizidwa ndi Docker: gridi ya Selenium ndi Selenoid. Kuphatikiza apo, timagwiritsa ntchito makina opangidwa kudzera pa GCP kuti tisunge zotengera zomwe zili ndi asakatuli ndi ma emulators. Kuti tichepetse ndalama, timayamba makina owoneka ngati awa pongofuna ndikuimitsa pomwe kuyesa sikukuchitika. Kodi pali china chilichonse chomwe chingawongolere zida zathu? Yankho ndi lakuti inde! Kumanani ndi Kubernetes (K8s)!
Choyamba, tiyeni tiwone momwe mawu akuti orchestration, cluster, ndi Kubernetes amalumikizana. Pamlingo wapamwamba, orchestration ndi dongosolo lomwe limatumiza ndikuwongolera mapulogalamu. Pazoyeserera zokha, mapulogalamu okhala ndi zinthu zotere ndi Selenium grid ndi Selenoid. Docker ndi K8s amathandizirana. Yoyamba imagwiritsidwa ntchito poyitanira ntchito, yachiwiri ndi orchestration. Komanso, K8s ndi gulu. Ntchito yamagulu ndikugwiritsa ntchito ma VM ngati Node, zomwe zimakupatsani mwayi woyika magwiridwe antchito, mapulogalamu ndi ntchito zosiyanasiyana mkati mwa seva imodzi (tsango). Ngati ma Node ena akulephera, Ma Node ena adzatenga, zomwe zimatsimikizira kuti ntchito yathu isasokonezedwe. Kuphatikiza pa izi, ma K8 ali ndi magwiridwe antchito ofunikira okhudzana ndi kukulitsa, chifukwa chomwe timadzipezera tokha kuchuluka kwazinthu zomwe zimatengera katundu ndikuyika malire.
Zowonadi, kutumiza Kubernetes pamanja kuyambira pachiwonetsero si ntchito yaing'ono konse. Ndisiya ulalo wodziwika bwino wotsogolera "Kubernetes The Hard Way" ndipo ngati mukufuna, mutha kuyeseza. Koma, mwamwayi, pali njira zina ndi zida. Njira yosavuta ndiyo kugwiritsa ntchito Google Kubernetes Engine (GKE) mu GCP, zomwe zimakupatsani mwayi wopeza gulu lokonzekera ndikudina pang'ono. Ndikupangira kugwiritsa ntchito njirayi kuti muyambe kuphunzira, chifukwa idzakuthandizani kuti muganizire za kuphunzira momwe mungagwiritsire ntchito ma K8 pa ntchito zanu m'malo mophunzira momwe zigawo zamkati ziyenera kuphatikizidwa pamodzi.
kudzichiritsa: kuchira kokha kwa makoko (motsatira zomwe zida zimabwezeretsedwanso);
kutulutsa zosintha ndi kubweza kwa zosintha popanda kutsika: zida zosinthira, asakatuli ndi ma emulators sikusokoneza ntchito ya ogwiritsa ntchito pano.
Koma ma K8 akadali si chipolopolo chasiliva. Kuti timvetse ubwino ndi zofooka zonse pazida zomwe tikuziganizira (Selenium grid, Selenoid), tidzakambirana mwachidule kapangidwe ka K8s. Cluster ili ndi mitundu iwiri ya Node: Master Node ndi Workers Node. Master Node ali ndi udindo woyang'anira, kutumiza ndi kukonza zisankho. Ma node ogwira ntchito ndi pomwe ntchito zimayambitsidwa. Node imakhalanso ndi malo ogwiritsira ntchito chidebe. Kwa ife, iyi ndi Docker, yomwe imayang'anira ntchito zokhudzana ndi chidebe. Koma palinso njira zina zothetsera, mwachitsanzo chidebe. Ndikofunikira kumvetsetsa kuti makulitsidwe kapena kudzichiritsa wekha sikugwira ntchito molunjika pazotengera. Izi zimachitika powonjezera/kuchepetsa kuchuluka kwa makoko, omwe amakhala ndi zotengera (nthawi zambiri chidebe chimodzi pa pod, koma kutengera ntchitoyo pangakhale zambiri). Ulamuliro wapamwambawu umakhala ndi mfundo za ogwira ntchito, mkati mwake muli ma pods, mkati mwake momwe zida zimakwezedwa.
Kukula kwake ndikofunika kwambiri ndipo kumatha kugwiritsidwa ntchito m'malo onse awiri mkati mwa dziwe lamagulu ndi ma pod mkati mwa mfundo. Pali mitundu iwiri ya makulitsidwe yomwe imagwira ntchito pama node ndi ma pod. Mtundu woyamba ndi wopingasa - kukulitsa kumachitika powonjezera kuchuluka kwa ma nodes/pods. Mtundu uwu ndi wabwino kwambiri. Mtundu wachiwiri, motero, woyima. Kuchulukitsa kumachitika ndikuwonjezera kukula kwa ma node / ma pod, osati kuchuluka kwawo.
Tsopano tiyeni tione zida zathu mu nkhani ya mawu pamwamba.
Gulu la selenium
Monga tanena kale, gridi ya Selenium ndi chida chodziwika bwino, ndipo sizodabwitsa kuti idasungidwa. Chifukwa chake, sizodabwitsa kuti gridi ya Selenium ikhoza kutumizidwa ku K8s. Chitsanzo cha momwe mungachitire izi chingapezeke m'malo ovomerezeka a K8s. Monga mwachizolowezi, ndimalumikiza maulalo kumapeto kwa gawoli. Kuphatikiza apo, chiwongolero chowongolera chikuwonetsa momwe mungachitire izi mu Terraform. Palinso malangizo amomwe mungasinthire kuchuluka kwa ma pods omwe ali ndi zotengera za osatsegula. Koma makulitsidwe odziwikiratu mu nkhani ya K8s akadali ntchito yoonekeratu. Nditayamba kuphunzira, sindinapeze malangizo othandiza kapena malangizo alionse. Pambuyo pa maphunziro angapo ndi kuyesa mothandizidwa ndi gulu la DevOps, tidasankha njira yokweza zotengera ndi asakatuli ofunikira mkati mwa poto imodzi, yomwe ili mkati mwa node imodzi ya ogwira ntchito. Njirayi imatithandiza kugwiritsa ntchito njira yowongoka yopingasa ya mfundo powonjezera chiwerengero chawo. Ndikuyembekeza kuti izi zidzasintha m'tsogolomu ndipo tidzawona kufotokozera zowonjezereka za njira zabwino komanso zothetsera zokonzeka, makamaka pambuyo pa kutulutsidwa kwa gridi ya Selenium 4 ndi zomangamanga zosinthidwa mkati.
Selenoid:
Kutumizidwa kwa Selenoid mu K8s pakadali pano ndikokhumudwitsa kwambiri. Sagwirizana. Mwachidziwitso, titha kukweza chidebe cha Selenoid mkati mwa poto, koma Selenoid ikayamba kuyambitsa zotengera ndi asakatuli, azikhalabe mkati mwa pod yomweyo. Izi zimapangitsa kukulitsa kukhala kosatheka ndipo, chifukwa chake, ntchito ya Selenoid mkati mwa tsango sizingasiyane ndi ntchito mkati mwa makina enieni. Mapeto a nkhani.
Moon:
Podziwa vuto ili pogwira ntchito ndi Selenoid, opanga adatulutsa chida champhamvu kwambiri chotchedwa Moon. Chida ichi poyamba chidapangidwa kuti chigwire ntchito ndi Kubernetes ndipo, chifukwa chake, mawonekedwe a autoscaling amatha kugwiritsidwa ntchito. Komanso, ndinganene kuti pakali pano chokhacho chida mdziko la Selenium, chomwe chili ndi chithandizo chamagulu a K8s kunja kwa bokosi (sichikupezeka, onani chida chotsatira ). Zinthu zazikulu za Mwezi zomwe zimapereka chithandizochi ndi:
Ndipo tsopano ife tikufika ku gawo lotsiriza. Nthawi zambiri, ukadaulo uwu ndi ntchito zofananira siudindo wa akatswiri opanga makina. Ndipo pali zifukwa za izi. Choyamba, m'mabungwe ambiri, nkhani zachitukuko zimayang'aniridwa ndi dipatimenti ya DevOps ndipo magulu achitukuko samasamala kwenikweni zomwe zimapangitsa kuti payipi igwire ntchito komanso momwe zonse zomwe zimagwirizanirana nazo ziyenera kuthandizidwa. Kachiwiri, tiyeni tikhale owona mtima, machitidwe a Infrastructure as Code (IaC) sanatengedwebe m'makampani ambiri. Koma zakhala zodziwika bwino ndipo ndikofunikira kuyesa kutenga nawo mbali pazotsatira, njira ndi zida zomwe zimagwirizana nazo. Kapena khalani ndi nthawi.
Tiyeni tiyambe ndi zolimbikitsa kugwiritsa ntchito njirayi. Takambirana kale kuti tiyese mayeso ku GitlabCI, tidzafunika osachepera zida zoyendetsera Gitlab Runner. Ndipo kuti tiyendetse zotengera zomwe zili ndi asakatuli/ma emulators, tifunika kusungitsa VM kapena gulu. Kuphatikiza pa kuyesa kwazinthu, timafunikira mphamvu zambiri zothandizira chitukuko, masitepe, malo opangira, omwe amaphatikizanso nkhokwe, ndandanda zodziwikiratu, masanjidwe a netiweki, zolemetsa, ufulu wa ogwiritsa ntchito, ndi zina zotero. Mfundo yofunika kwambiri ndiyo kuyesayesa kofunikira kuchichirikiza chonsecho. Pali njira zingapo zomwe tingasinthire ndikutulutsa zosintha. Mwachitsanzo, munkhani ya GCP, titha kugwiritsa ntchito cholumikizira cha UI mu msakatuli ndikuchita zonse podina mabatani. Njira ina ingakhale kugwiritsa ntchito mafoni a API kuti mulumikizane ndi mabungwe amtambo, kapena kugwiritsa ntchito gcloud command line utility kuti muchite zomwe mukufuna. Koma ndi kuchuluka kwakukulu kwamabungwe osiyanasiyana ndi zida zogwirira ntchito, zimakhala zovuta kapena zosatheka kuchita ntchito zonse pamanja. Komanso, zochita zonse zamanjazi ndi zosalamulirika. Sitingathe kuwapereka kuti akawunikidwe tisanawagwiritse ntchito, gwiritsani ntchito makina owongolera, ndikusintha mwachangu zomwe zidayambitsa vutolo. Kuti athetse mavuto otere, akatswiri amapanga ndikupanga zolemba za bash / shell, zomwe sizili bwino kwambiri kuposa njira zam'mbuyomu, chifukwa ndizosavuta kuwerenga, kumvetsetsa, kusunga ndi kusintha mwadongosolo.
M'nkhaniyi komanso momwe ndingasinthire, ndimagwiritsa ntchito zida za 2 zokhudzana ndi machitidwe a IaC. Izi ndi Terraform ndi Ansible. Anthu ena amakhulupirira kuti nβzosamveka kuzigwiritsa ntchito nthawi imodzi, chifukwa ntchito zake nβzofanana ndipo zimasinthasintha. Koma zoona zake nβzakuti poyamba amapatsidwa ntchito zosiyanasiyana. Ndipo mfundo yoti zida izi ziyenera kuthandizirana zidatsimikiziridwa pachiwonetsero chogwirizana ndi opanga omwe akuyimira HashiCorp ndi RedHat. Kusiyana kwamalingaliro ndikuti Terraform ndi chida chothandizira kuyang'anira ma seva okha. Ngakhale Ansible ndi chida chowongolera masinthidwe omwe ntchito yake ndikukhazikitsa, kukonza ndi kuyang'anira mapulogalamu pa maseva awa.
Chinthu chinanso chofunikira chosiyanitsa zida izi ndi kalembedwe ka zolemba. Mosiyana ndi bash ndi Ansible, Terraform amagwiritsa ntchito kalembedwe kofotokozera kutengera kufotokozera komwe akufuna kuti akwaniritse chifukwa cha kuphedwa. Mwachitsanzo, ngati tipanga ma VM 10 ndikugwiritsa ntchito zosintha kudzera pa Terraform, ndiye kuti tipeza ma VM 10. Ngati tithamanganso script, palibe chomwe chidzachitike popeza tili kale ndi 10 VMs, ndipo Terraform amadziwa za izi chifukwa imasunga zomwe zikuchitika panopa mu fayilo ya boma. Koma Ansible amagwiritsa ntchito njira yoyendetsera ntchito ndipo, ngati mupempha kuti ipange ma VM 10, ndiye pakuyambitsa koyamba tidzapeza ma VM 10, ofanana ndi Terraform. Koma titayambiranso tidzakhala kale ndi ma VM 20. Uku ndiko kusiyana kofunikira. M'kalembedwe kachitidwe, sitimasunga momwe zilili pano ndikungofotokozera ndondomeko zomwe ziyenera kuchitidwa. Zachidziwikire, titha kuthana ndi zochitika zosiyanasiyana, kuwonjezera macheke angapo a kukhalapo kwa zinthu zomwe zilipo komanso momwe zinthu ziliri pano, koma palibe chifukwa chotaya nthawi yathu ndikuyesa kuwongolera malingaliro awa. Kuphatikiza apo, izi zimawonjezera chiopsezo chopanga zolakwika.
Pofotokoza mwachidule zonsezi, titha kunena kuti Terraform ndi declarative notation ndi chida choyenera kwambiri popereka ma seva. Koma ndikwabwino kugawira ntchito yoyang'anira kasinthidwe ku Ansible. Popanda izi, tiyeni tiyang'ane pazochitika zogwiritsira ntchito pazochitika za automation.
Mtengo wa zomangamanga zokha
Chofunikira chokha chomwe muyenera kumvetsetsa apa ndikuti zida zoyeserera zokha ziyenera kuonedwa ngati gawo lazinthu zonse zamakampani. Izi zikutanthauza kuti machitidwe onse a IaC ayenera kugwiritsidwa ntchito padziko lonse pazinthu za bungwe lonse. Amene ali ndi udindo pa izi zimadalira njira zanu. Gulu la DevOps ndi odziwa zambiri pankhaniyi, akuwona chithunzi chonse cha zomwe zikuchitika. Komabe, akatswiri a QA akugwira nawo ntchito yomanga makina opangira makina komanso mapangidwe a payipi, zomwe zimawathandiza kuti aziwona bwino zonse zomwe zikufunika kusintha ndi mwayi wokonza. Njira yabwino ndikugwirira ntchito limodzi, kusinthanitsa chidziwitso ndi malingaliro kuti mukwaniritse zotsatira zomwe zikuyembekezeka.
Nazi zitsanzo zingapo zogwiritsira ntchito Terraform ndi Ansible potengera kuyesa zokha ndi zida zomwe tidakambirana kale:
1. Fotokozani zofunikira ndi magawo a VM ndi magulu pogwiritsa ntchito Terraform.
Koma ngakhale zitatha izi, musayime, yesetsani, phunzirani maulalo oyenera ndi mabuku, fufuzani momwe zimagwirira ntchito mukampani yanu, pezani malo omwe angasinthidwe ndikuchita nawo. Zabwino zonse!
Kuchokera kumbali yanga
Kuchokera pamutuwu mutha kuwona kuti iyi inali gawo loyamba lokha. Ngakhale kuti zidakhala zazikulu, nkhani zofunika sizinafotokozedwe pano. Mu gawo lachiwiri, ndikukonzekera kuyang'ana pazida zodzipangira zokha malinga ndi IOS. Chifukwa cha zoletsa za Apple pakuyendetsa ma simulators a iOS pamakina a macOS okha, mayankho athu amachepera. Mwachitsanzo, sitingathe kugwiritsa ntchito Docker kuyendetsa simulator kapena mitambo yapagulu kuyendetsa makina enieni. Koma izi sizikutanthauza kuti palibe njira zina. Ndiyesetsa kukusungani kuti mukhale ndi mayankho apamwamba komanso zida zamakono!
Komanso, sindinatchule mitu yayikulu yokhudzana ndi kuwunika. Mu Gawo 3, ndiyang'ana zida zowunikira kwambiri zowunikira komanso zomwe data ndi ma metrics oyenera kuziganizira.
Ndipo potsiriza. M'tsogolomu, ndikukonzekera kumasula maphunziro a kanema pa zomangamanga zoyesera ndi zida zodziwika bwino. Pakadali pano, pali maphunziro ndi maphunziro angapo pa DevOps pa intaneti, koma zida zonse zimaperekedwa pakukula, osati kuyesa zokha. Pankhaniyi, ndikufunika mayankho okhudza ngati maphunzirowa angakhale osangalatsa komanso ofunikira kwa gulu la oyesa ndi mainjiniya opanga makina. Tithokozeretu!