Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Gawo 1: Web/Android

ndemanga: nkhaniyi ndi yomasulira m'Chirasha cha nkhani yoyambirira "Zida za DevOps si za DevOps zokha. "Kupanga zida zoyeserera zokha kuyambira poyambira." Komabe, mafanizo onse, maulalo, mawu ndi mawu amasungidwa m'chilankhulo choyambirira kuti apewe kupotoza tanthauzo akamasuliridwa ku Chirasha. Ndikufunirani zabwino powerenga!

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

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.

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira
Source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Apa titha kumaliza ndi gawo loyambilira ndikuyang'ana kwambiri cholinga cha nkhaniyi. 

Kodi nkhaniyi ikunena za chiyani?

M'nkhaniyi, ndigawana zomwe ndakumana nazo popanga zida zoyeserera zokha. Pali magwero ambiri azidziwitso pa intaneti okhudza zida zosiyanasiyana komanso momwe angagwiritsire ntchito, koma ndikufuna kuziyang'ana pazomwe zimangochitika zokha. Ndikukhulupirira kuti mainjiniya ambiri odzichitira okha amadziwa bwino momwe zinthu zilili ngati palibe wina aliyense kupatula inu amene amayesa mayeso opangidwa kapena osamala kuwasamalira. Zotsatira zake, mayeso amakhala achikale ndipo muyenera kuwononga nthawi kuti muwasinthe. Apanso, kumayambiriro kwa ntchito, iyi ikhoza kukhala ntchito yovuta kwambiri: kusankha mwanzeru zida zomwe zingathandize kuthetsa vuto linalake, momwe mungasankhire, kukonza ndi kusunga. Oyesa ena amatembenukira ku DevOps (anthu) kuti awathandize ndipo, tiyeni tikhale oona mtima, njirayi imagwira ntchito. Nthawi zambiri izi zitha kukhala njira yokhayo popeza sitiwoneka pazodalira zonse. Koma monga tikudziwira, DevOps ndi anyamata otanganidwa kwambiri, chifukwa amayenera kuganizira za zomangamanga zonse za kampani, kutumizira, kuyang'anira, ma microservices ndi ntchito zina zofanana malinga ndi bungwe / gulu. Monga momwe zimakhalira nthawi zambiri, automation siili yofunika kwambiri. Zikatero, tiyenera kuyesetsa kuchita chilichonse chimene tingathe kuyambira pachiyambi mpaka kumapeto. Izi zidzachepetsa kudalira, kufulumizitsa kayendetsedwe ka ntchito, kupititsa patsogolo luso lathu komanso kutilola kuona chithunzi chachikulu cha zomwe zikuchitika.

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);
  • Sindikufuna kuwononga nthawi yanu chifukwa mungafune kugwiritsa ntchito zida zina kuti mukwaniritse zolinga zomwezo.

Yesetsani

Ndikufuna kwambiri kuti nkhaniyi ikhale yothandiza kwa wowerenga aliyense, osati kungowerenga ndi kuiwala. Mu phunziro lililonse, kuchita ndi chigawo chofunika kwambiri. Pakuti ichi ndakonzera Chosungira cha GitHub chokhala ndi malangizo pang'onopang'ono amomwe mungachitire chilichonse kuyambira poyambira. Palinso homuweki yomwe ikukuyembekezerani kuti muwonetsetse kuti simukutengera mopanda malire mizere ya malamulo omwe mukuchita.

Konzani

Khwerero
Technology
zida

1
Kuthamanga kwanuko (konzekerani zoyeserera zapa intaneti / android ndikuyendetsa kwanuko) 
Node.js, Selenium, Apium

2
Mawonekedwe owongolera machitidwe 
Giti

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

4
CI/CD
Gitlab CI

5
Mitambo yopanda mitambo
Google Cloud Platform

6
Kumasulira
Kubernetes

7
Infrastructure as code (IaC)
Terraform, Ansible

Kapangidwe ka gawo lililonse

Kuti nkhaniyo ikhale yomveka bwino, gawo lililonse likufotokozedwa motsatira ndondomeko iyi:

  • kufotokozera mwachidule zaukadaulo,
  • mtengo wa zomangamanga zokha,
  • kuwonetsa momwe zinthu ziliri panopo,
  • kugwirizana kwa maphunziro,
  • zida zofanana.

1. Yendetsani mayeso kwanuko

Kufotokozera mwachidule zaukadaulo

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.

Chithunzi cha momwe zinthu ziliri panopa

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Maulalo oti mufufuze

Zida zofanana

  • chinenero chilichonse cha mapulogalamu chomwe mumakonda molumikizana ndi mayeso a Selenium / Appium;
  • mayesero aliwonse;
  • wothamanga aliyense woyeserera.

2. Makina owongolera (Git)

Kufotokozera mwachidule zaukadaulo

Sichingakhale vumbulutso lalikulu kwa aliyense ngati ndinganene kuti kuwongolera mtundu ndi gawo lofunikira kwambiri pachitukuko, pagulu komanso payekhapayekha. Kutengera magwero osiyanasiyana, ndikoyenera kunena kuti Git ndiye woyimira wotchuka kwambiri. Dongosolo lowongolera mtundu limapereka maubwino ambiri, monga kugawana ma code, kusunga zomasulira, kubwezeretsa kunthambi zakale, kuyang'anira mbiri ya polojekiti, ndi zosunga zobwezeretsera. Sitidzakambirana mwatsatanetsatane mfundo iliyonse, chifukwa ndikutsimikiza kuti mumaidziwa bwino ndipo mumaigwiritsa ntchito pa ntchito yanu ya tsiku ndi tsiku. Koma ngati sichoncho, ndiye ndikupangira kuyimitsa kaye kuwerenga nkhaniyi ndikudzaza kusiyana kumeneku posachedwa.

Mtengo wa zomangamanga zokha

Ndipo apa mutha kufunsa funso lomveka bwino: "N'chifukwa chiyani akutiuza za Git? Aliyense amadziwa izi ndipo amazigwiritsa ntchito popanga ma code otukuka komanso poyesa ma code okhawo. ” Mudzakhala olondola, koma m'nkhaniyi tikukamba za zomangamanga ndipo gawoli likuchita ngati chithunzithunzi cha gawo 7: "Infrastructure as Code (IaC)". Kwa ife, izi zikutanthauza kuti zomangamanga zonse, kuphatikizapo kuyesa, zikufotokozedwa mu mawonekedwe a code, kotero tikhoza kugwiritsa ntchito machitidwe omasulira kwa izo ndikupeza phindu lofanana ndi kachidindo kachitukuko ndi automation.

Tiwona IaC mwatsatanetsatane mu Gawo 7, koma ngakhale pano mutha kuyamba kugwiritsa ntchito Git kwanuko popanga malo osungira. Chithunzi chachikulu chidzakulitsidwa tikawonjezera malo osungira akutali ku zomangamanga.

Chithunzi cha momwe zinthu ziliri panopa

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Maulalo oti mufufuze

Zida zofanana

3. Containerization (Docker)

Kufotokozera mwachidule zaukadaulo

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.

Ndipo tsopano tabwera ku containerization. Apanso, teknolojiyi imathetsa vuto lapitalo, monga zotengera sizimagwiritsa ntchito OS yonse, yomwe imamasula zinthu zambiri ndipo imapereka njira yofulumira komanso yosinthika kuti ikhale yosunthika.

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;
  • zovuta kusamalira ndi kukonza ngati mukufuna kuyendetsa 10, 50, 100 kapena 1000 osatsegula nthawi imodzi.

Koma popeza Selenium ndiye chida chodziwika bwino chodzipangira okha ndipo Docker ndiye chida chodziwika bwino chosungiramo zinthu, siziyenera kudabwitsa kuti wina wayesa kuziphatikiza kuti apange chida champhamvu chothetsera mavuto omwe tawatchulawa. Tiyeni tikambirane njira zimenezi mwatsatanetsatane. 

Selenium grid mu docker

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. 

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Maulalo oti mufufuze

Zida zofanana

  • Palinso zida zina zosungira, koma Docker ndiye wotchuka kwambiri. Ngati mukufuna kuyesa china chake, dziwani kuti zida zomwe taphimba poyesa mayeso a Selenium molumikizana sizingagwire ntchito.  
  • Monga tanenera kale, pali zosintha zambiri za grid selenium, mwachitsanzo, Zalenium.

4.CI/CD

Kufotokozera mwachidule zaukadaulo

Mchitidwe wophatikizana mosalekeza ndiwotchuka kwambiri pachitukuko ndipo umagwirizana ndi machitidwe owongolera mtundu. Ngakhale izi, ndikuwona kuti pali chisokonezo mu terminology. M'ndime iyi ndikufuna kufotokoza za 3 zosinthidwa za teknolojiyi kuchokera pamalingaliro anga. Pa intaneti mupeza zolemba zambiri zotanthauzira mosiyanasiyana, ndipo ndizabwinobwino ngati malingaliro anu amasiyana. Chofunikira kwambiri ndikuti muli patsamba limodzi ndi anzanu.

Chifukwa chake, pali mawu atatu: CI - Kuphatikiza Kopitilira, CD - Kutumiza Kopitilira komanso CD - Kupititsa patsogolo. (M'munsimu ndigwiritsa ntchito mawuwa mu Chingerezi). Kusintha kulikonse kumawonjezera masitepe angapo paipi yanu yachitukuko. Koma mawu yopitirira (chopitiriza) ndicho chinthu chofunika kwambiri. Munkhaniyi, tikutanthauza zomwe zimachitika kuyambira koyambira mpaka kumapeto, popanda kusokoneza kapena kuchitapo kanthu pamanja. Tiyeni tiwone CI & CD ndi CD munkhaniyi.

  • Kuphatikiza Kopitiriza Ichi ndi sitepe yoyamba ya chisinthiko. Pambuyo potumiza khodi yatsopano ku seva, tikuyembekeza kulandira ndemanga mwamsanga kuti kusintha kwathu kuli bwino. Nthawi zambiri, CI imaphatikizapo kugwiritsa ntchito zida zowunikira ma code osasunthika komanso kuyesa kwa mayunitsi/mkati a API. Izi zimatithandizira kupeza zambiri zamakhodi athu mkati mwamasekondi/mphindi zochepa.
  • Kupitiliza kopitilira ndi sitepe yapamwamba kwambiri yomwe timayesa kuyesa kwa kuphatikiza/UI. Komabe, pakadali pano sitipeza zotsatira mwachangu ngati ndi CI. Choyamba, mayeso amtunduwu amatenga nthawi yayitali kuti amalize. Kachiwiri, tisanayambitse, tiyenera kutumiza zosintha zathu kumalo oyeserera / siteji. Komanso, ngati tikukamba za chitukuko cha mafoni, ndiye kuti sitepe yowonjezera ikuwoneka kuti ikupanga pulogalamu yathu.
  • Kupitiliza Kupitiliza amaganiza kuti timangotulutsa zosintha zathu pakupanga ngati mayeso onse ovomerezeka adadutsa m'magawo am'mbuyomu. Kuphatikiza pa izi, mutatha siteji yotulutsa, mutha kukonza magawo osiyanasiyana, monga kuyesa kuyesa utsi pakupanga ndikutolera ma metric osangalatsa. Kutumiza Kopitiriza ndi kotheka kokha ndi kuphimba bwino ndi mayeso odzipangira okha. Ngati pakufunika kuchitapo kanthu pamanja, kuphatikiza kuyesa, ndiye kuti izi sizilinso Kupitirira (zopitilira). Ndiye tikhoza kunena kuti payipi yathu ikugwirizana ndi machitidwe a Continuous Delivery.

Mtengo wa zomangamanga zokha

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.

Chithunzi cha momwe zinthu ziliri panopa

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Maulalo oti mufufuze

Zida zofanana

5. Mapulatifomu amtambo

Kufotokozera mwachidule zaukadaulo

M'chigawo chino tikambirana za chikhalidwe chodziwika bwino chotchedwa 'public mitambo'. Ngakhale pali zabwino zambiri zomwe ukadaulo wa virtualization ndi zotengera zomwe tafotokozazi umapereka, timafunikirabe zida zamakompyuta. Makampani amagula ma seva okwera mtengo kapena kubwereketsa malo opangira data, koma pakadali pano ndikofunikira kuwerengera (nthawi zina zosadziwika) za kuchuluka kwazinthu zomwe tidzafunikira, kaya tidzazigwiritsa ntchito 24/7 ndi zolinga ziti. Mwachitsanzo, kupanga kumafuna seva yomwe ikuyenda XNUMX/XNUMX, koma kodi timafunikira zida zofanana kuti tiyese kunja kwa maola ogwira ntchito? Zimatengeranso mtundu wa mayeso omwe akuchitidwa. Chitsanzo chingakhale mayeso olemetsa / kupsinjika omwe timakonzekera kuchita nthawi yomwe sikugwira ntchito kuti tipeze zotsatira tsiku lotsatira. Koma kupezeka kwa seva XNUMX/XNUMX sikofunikira pamayesero okhazikika mpaka kumapeto makamaka osati pamayesero apamanja. M’mikhalidwe yoteroyo, chingakhale bwino kupeza zinthu zochuluka monga momwe zingafunikire pakufunika, kuzigwiritsa ntchito, ndi kusiya kulipira pamene sizikusowekanso. Komanso, zingakhale zabwino kuzilandira nthawi yomweyo podina pang'ono mbewa kapena kugwiritsa ntchito zolemba zingapo. Izi ndi zomwe mitambo yapagulu imagwiritsidwa ntchito. Tiyeni tiwone tanthauzo lake:

"Mtambo wapagulu umatanthauzidwa ngati ntchito zamakompyuta zomwe zimaperekedwa ndi anthu ena pa intaneti, zomwe zimawapangitsa kupezeka kwa aliyense amene akufuna kugwiritsa ntchito kapena kugula. Atha kukhala aulere kapena kugulitsidwa pofunidwa, kulola makasitomala kulipira pongogwiritsa ntchito ma CPU, kusungirako, kapena bandwidth yomwe amadya. "

Pali lingaliro lakuti mitambo ya anthu ndi yokwera mtengo. Koma lingaliro lawo lalikulu ndikuchepetsa mtengo wamakampani. Monga tanena kale, mitambo yapagulu imakulolani kuti mupeze zinthu zomwe mukufuna ndikulipira nthawi yomwe mumazigwiritsa ntchito. Komanso, nthawi zina timayiwala kuti antchito amalandira malipiro, ndipo akatswiri nawonso ndi okwera mtengo. Ziyenera kuganiziridwa kuti mitambo yapagulu imapangitsa kuti chithandizo cha zomangamanga chikhale chosavuta, chomwe chimalola mainjiniya kuyang'ana kwambiri ntchito zofunika kwambiri. 

Mtengo wa zomangamanga zokha

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:  

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira
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.

Ndipo nayi mitengo yogwiritsira ntchito Sauce Labs:

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira
Ndikukhulupirira kuti mwazindikira kale kusiyana, koma ndikupatsanibe tebulo lowerengera ntchito yathu:

Zofunikira
Mwezi uliwonse
Maola ogwira ntchito(8 am - 8pm)
Maola ogwira ntchito+ Zosangalatsa

Mtengo GCP pa intaneti
n1-mulingo-1 x 8 = n1-mulingo-8
$194.18
Masiku 23 * 12h * 0.38 = $104.88 
Masiku 23 * 12h * 0.08 = $22.08

Sauce Labs kwa Webusaiti
Mayeso ofananira a Cloud8
$1.559
-
-

GCP ya Android
n1-mulingo-4 x 8: n1-mulingo-16
$776.72
Masiku 23 * 12h * 1.52 = $419.52 
Masiku 23 * 12h * 0.32 = $88.32

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.

Ngati mapulogalamu anu salolera zolakwika ndipo amatha kupirira zomwe zingachitike, ndiye kuti zochitika zomwe zingachitike zitha kuchepetsa mtengo wanu wa Compute Engine kwambiri. Mwachitsanzo, ntchito za batch processing zikhoza kuchitika pazochitika zosayembekezereka. Ngati zina mwazochitikazo zatha panthawi yokonza, ntchitoyo imachedwetsa koma siyimayima. Zochitika zodziwikiratu zimamaliza ntchito zanu zokonza batch popanda kuyika zochulukirapo pazomwe muli nazo komanso osafunikira kuti mulipire mtengo wathunthu pazowonjezereka.

Ndipo sizinathebe! M'malo mwake, ndikutsimikiza kuti palibe amene amayesa mayeso kwa maola 12 popanda kupuma. Ndipo ngati ndi choncho, ndiye kuti mutha kungoyambitsa ndikuyimitsa makina enieni pomwe sakufunika. Nthawi yeniyeni yogwiritsira ntchito ikhoza kuchepetsedwa mpaka maola 6 patsiku. Ndiye malipiro muzochitika za ntchito yathu adzatsika mpaka $ 11 pamwezi kwa asakatuli 8. Kodi izi sizodabwitsa? Koma ndi makina omwe angayambe kugwedezeka tiyenera kusamala ndikukonzekera zosokoneza ndi kusakhazikika, ngakhale izi zikhoza kuperekedwa ndi kuthandizidwa mu mapulogalamu. Ndizoyenera!

Koma sindikunena kuti 'musagwiritse ntchito mafamu oyesa mtambo'. Iwo ali ndi ubwino wambiri. Choyamba, awa si makina enieni okha, koma ndi njira yoyeserera yokhayokha yoyeserera yokhala ndi magwiridwe antchito kuchokera m'bokosi: mwayi wakutali, zipika, zowonera, kujambula kanema, asakatuli osiyanasiyana ndi zida zam'manja. Nthawi zambiri, izi zitha kukhala njira yofunikira yachic. Mapulatifomu oyesera ndiwothandiza makamaka kwa IOS automation, pomwe mitambo yapagulu imangopereka machitidwe a Linux/Windows. Koma tikambirana za iOS m'nkhani zotsatirazi. Ndimalimbikitsa nthawi zonse kuyang'ana momwe zinthu zilili ndikuyamba ntchito: nthawi zina zimakhala zotsika mtengo komanso zogwira mtima kwambiri kugwiritsa ntchito mitambo yapagulu, ndipo mwa zina mapulaneti oyesera ndi ofunikadi ndalama zomwe zimagwiritsidwa ntchito.

Chithunzi cha momwe zinthu ziliri panopa

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Maulalo oti mufufuze

Zida zofanana:

6. Kuimba

Kufotokozera mwachidule zaukadaulo

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. 

Mtengo wa zomangamanga zokha

Tiyeni tiwone zinthu zingapo zofunika zomwe K8s imapereka:

  • kutumiza ntchito: kugwiritsa ntchito gulu lamitundu yambiri m'malo mwa ma VM;
  • dynamic scaling: kumachepetsa mtengo wazinthu zomwe zimagwiritsidwa ntchito pokhapokha;
  • 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: 

Zopanda malire. Selenoid imasunga m'makumbukidwe okhudzana ndi magawo omwe akuyendetsa pakali pano. Ngati pazifukwa zina ndondomeko yake ikuwonongeka - ndiye kuti magawo onse othamanga amatayika. Moon Moon alibe dziko ndipo akhoza kutsatiridwa pa data center. Magawo osakatula amakhalabe amoyo ngakhale chifaniziro chimodzi kapena zingapo zitatsitsidwa.

Kotero, Mwezi ndi yankho lalikulu, koma pali vuto limodzi: si laulere. Mtengo umatengera kuchuluka kwa magawo. Mutha kuyendetsa magawo 0-4 kwaulere, zomwe sizothandiza kwenikweni. Koma, kuyambira gawo lachisanu, mudzayenera kulipira $5 pa chilichonse. Zinthu zimatha kusiyana ndi kampani ndi kampani, koma kwa ife, kugwiritsa ntchito Mwezi ndikopanda phindu. Monga ndafotokozera pamwambapa, titha kuyendetsa ma VM ndi Selenium Grid pakufunika kapena kuonjezera chiwerengero cha Node mumagulu. Pafupifupi paipi imodzi, timakhazikitsa osatsegula 500 ndikuyimitsa zonse zoyeserera zikamalizidwa. Ngati titagwiritsa ntchito Mwezi, tikadayenera kulipira 500 x 5 = $2500 yowonjezereka pamwezi, ziribe kanthu kuti timayesa kangati. Apanso, sindikunena kuti musagwiritse ntchito Mwezi. Pantchito zanu, ili litha kukhala yankho lofunikira, mwachitsanzo, ngati muli ndi mapulojekiti/magulu ambiri m'bungwe lanu ndipo mukufuna gulu lalikulu lofanana kwa aliyense. Monga nthawi zonse, ndimasiya ulalo kumapeto ndikulimbikitsa kuchita mawerengedwe onse ofunikira malinga ndi ntchito yanu.

Callisto: (Chenjerani! Izi sizili m'nkhani yoyambirira ndipo zili m'matembenuzidwe a Chirasha okha)

Monga ndanenera, Selenium ndi chida chodziwika kwambiri, ndipo gawo la IT likukula mofulumira kwambiri. Ndikugwira ntchito yomasulira, chida chatsopano cholonjeza chotchedwa Callisto chinawonekera pa intaneti (hello Cypress ndi ena opha Selenium). Zimagwira ntchito mwachibadwa ndi ma K8s ndipo zimakupatsani mwayi woyendetsa zotengera za Selenoid m'matumba, zogawidwa m'ma Node. Chilichonse chimagwira ntchito kunja kwa bokosi, kuphatikizapo autoscaling. Zosangalatsa, koma ziyenera kuyesedwa. Ndakwanitsa kale kugwiritsa ntchito chida ichi ndikuyesa zoyeserera zingapo. Koma ndikuchedwa kwambiri kuti mumvetsetse, nditalandira zotsatira pamtunda wautali, mwinamwake ndipanga ndemanga m'nkhani zamtsogolo. Pakalipano ndikusiya maulalo ofufuza okha.  

Chithunzi cha momwe zinthu ziliri panopa

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Maulalo oti mufufuze

Zida zofanana

7. Zomangamanga monga Khodi (IaC)

Kufotokozera mwachidule zaukadaulo

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.

2. Pogwiritsa ntchito Ansible, yikani zida zofunikira poyesa: docker, Selenoid, Selenium Grid ndikutsitsa zofunikira za asakatuli / emulators.

3. Pogwiritsa ntchito Terraform, fotokozani mawonekedwe a VM momwe GitLab Runner idzakhazikitsidwa.

4. Ikani GitLab Runner ndi zida zofunikira zotsagana nazo pogwiritsa ntchito Ansible, ikani zoikamo ndi masinthidwe.

Chithunzi cha momwe zinthu ziliri panopa

Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Maulalo oti mufufuze:

Zida zofanana

Tiyeni tifotokoze mwachidule!

Khwerero
Technology
zida
Mtengo wa zomangamanga zokha

1
Kuthamanga kwanuko
Node.js, Selenium, Apium

  • Zida zodziwika kwambiri pa intaneti ndi mafoni
  • Imathandizira zilankhulo zambiri ndi nsanja (kuphatikiza Node.js)

2
Mawonekedwe owongolera machitidwe 
Giti

  • Zopindulitsa zofanana ndi code yachitukuko

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

  • Kuthamanga mayeso mofanana
  • Malo akutali
  • Zosavuta, zosinthika zosintha
  • Kuyimitsa mwachidwi zinthu zosagwiritsidwa ntchito
  • Easy kukhazikitsa

4
CI/CD
Gitlab CI

  • Amayesa gawo la payipi
  • Ndemanga Yachangu
  • Kuwonekera kwa kampani yonse/timu

5
Mitambo yopanda mitambo
Google Cloud Platform

  • Zothandizira pakufunika (timalipira pokhapokha pakufunika)
  • Zosavuta kuwongolera ndikusintha
  • Kuwoneka ndi kuwongolera kwazinthu zonse

6
Kumasulira
Kubernetes
M'malo okhala ndi asakatuli / emulators mkati mwa ma pod:

  • Kukulitsa / kukulitsa magalimoto
  • Kudzichiritsa
  • Zosintha ndi ma rollbacks popanda kusokoneza

7
Infrastructure as code (IaC)
Terraform, Ansible

  • Zopindulitsa zofanana ndi zomangamanga zachitukuko
  • Ubwino wonse wakusintha ma code
  • Zosavuta kusintha ndi kukonza
  • Makinawa kwathunthu

Zojambula zamapu amalingaliro: kusinthika kwa zomangamanga

sitepe1: Local
Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Gawo 2: VCS
Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Gawo 3: Containerization 
Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Gawo 4: CI/CD 
Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

sitepe5: Cloud Platforms
Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Khwerero 6: Orchestration
Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Khwerero 7: IaC
Zida za DevOps sizongokhala za DevOps. Njira yopangira zida zoyeserera zokha kuyambira poyambira

Kodi yotsatira?

Kotero, awa ndi mapeto a nkhani. Koma pomaliza, ndikufuna kupanga mapangano ndi inu.

Kuchokera kumbali yanu
Monga ndanenera pachiyambi, ndikufuna kuti nkhaniyi ikhale yothandiza komanso yokuthandizani kugwiritsa ntchito chidziwitso chomwe mwapeza pantchito yeniyeni. Ndikuwonjezeranso kulumikizana ndi malangizo othandiza.

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!

Source: www.habr.com

Kuwonjezera ndemanga