Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Chikamu 1: Web/Android

taura pfungwa: chinyorwa ichi ishanduro muchiRussian yechinyorwa chekutanga "Zvishandiso zveDevOps hazvisi zveDevOps chete. "Kuvaka bvunzo otomatiki zvivakwa kubva kutanga." Zvisinei, mifananidzo yose, zvinongedzo, makotesheni uye mazwi akachengetedzwa mumutauro wepakutanga kudzivirira kukanganisa kwezvinoreva kana kushandurirwa muchiRussia. Ndinoshuva iwe kufara kudzidza!

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Parizvino, iyo DevOps hunyanzvi ndeimwe yeanonyanya kudiwa muindasitiri yeIT. Kana iwe ukavhura nzvimbo dzakakurumbira dzekutsvaga basa uye kusefa nemuhoro, uchaona kuti mabasa ane chekuita neDevOps ari pamusoro pechinyorwa. Nekudaro, zvakakosha kuti tinzwisise kuti izvi zvinonyanya kureva chinzvimbo che'Senior', izvo zvinoreva kuti mukwikwidzi ane hunyanzvi hwepamusoro, ruzivo rwehunyanzvi uye zvekushandisa. Izvi zvinouyawo nehuwandu hwepamusoro hwemutoro unobatanidzwa nekusavhiringidza kushanda kwekugadzira. Zvisinei, takatanga kukanganwa kuti DevOps chii. Pakutanga, yakanga isiri munhu chaiye kana dhipatimendi. Kana tikatsvaga tsananguro dzeizwi iri, tinowana akawanda akanaka uye echokwadi mazita, senge nzira, maitiro, huzivi hwetsika, boka repfungwa, zvichingodaro.

Yangu nyanzvi ndeye test otomatiki mainjiniya (QA otomatiki mainjiniya), asi ini ndinotenda kuti haifanire kuve yakabatana chete nekunyora otomatiki bvunzo kana kugadzira bvunzo dhizaini yekuvaka. Muna 2020, ruzivo rwe otomatiki zvivakwa kwakakosha zvakare. Izvi zvinokutendera kuti uronge iyo otomatiki maitiro iwe pachako, kubva pakumhanyisa bvunzo kusvika pakupa mhinduro kune vese vane chekuita zvinoenderana nezvinangwa zvako. Nekuda kweizvozvo, hunyanzvi hweDevOps hunofanirwa kuita kuti basa riitwe. Uye izvi zvese zvakanaka, asi, zvinosuruvarisa, pane dambudziko (spoiler: chinyorwa ichi chinoedza kurerutsa dambudziko iri) Chiripo ndechekuti DevOps yakaoma. Uye izvi zviri pachena, nokuti makambani haazobhadhara mari yakawanda kune chimwe chinhu chiri nyore kuita ... Munyika yeDevOps, kune nhamba huru yezvishandiso, mazwi, uye maitiro anoda kunyatsoziva. Izvi zvakanyanya kuoma pakutanga kwebasa uye zvinoenderana nekuunganidzwa kwehunyanzvi ruzivo.

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga
Source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Pano isu tichazopedzisa nechikamu chekutanga uye totarisa pachinangwa chechinyorwa ichi. 

Nyaya iyi ndeyei?

Muchinyorwa chino, ndiri kuenda kugovera ruzivo rwangu rwekuvaka bvunzo otomatiki zvivakwa. Kune akawanda masosi eruzivo paInternet nezve maturusi akasiyana uye mashandisiro azvo, asi ini ndinoda kuvatarisa chete mumamiriro e automation. Ini ndinotenda kuti akawanda mainjiniya emagetsi anojairana nemamiriro ezvinhu kana pasina munhu kunze kwako anomhanyisa bvunzo dzakagadziridzwa kana ane hanya nekudzichengeta. Nekuda kweizvozvo, bvunzo dzinove dzechinyakare uye unofanirwa kupedza nguva uchidzigadzirisa. Zvekare, pakutanga kwebasa, iri rinogona kunge rakanyanya kuoma basa: nekuchenjera kusarudza kuti ndeapi maturusi anofanira kubatsira kubvisa dambudziko rakapihwa, maitiro ekusarudza, kugadzirisa uye kuchengetedza. Vamwe vanoedza vanotendeukira kuDevOps (vanhu) kuti vabatsirwe uye, ngative vakatendeseka, nzira iyi inoshanda. Muzviitiko zvakawanda iyi inogona kunge iriyo yega sarudzo sezvo isu tisingaonekwe mune zvese zvinotsamira. Asi sezvatinoziva, maDevOps vakabatikana zvakanyanya vakomana, nekuti vanofanirwa kufunga nezvese kambani masisitimu, kuendesa, kutarisa, microservices uye mamwe mabasa akafanana zvichienderana nesangano / timu. Sezvinowanzoitika, otomatiki haisi yekutanga. Mumamiriro ezvinhu akadaro, tinofanira kuedza kuita zvose zvatinokwanisa kubva kwokutanga kusvika kwekupedzisira. Izvi zvinoderedza kutsamira, kukurumidza kufambiswa kwebasa, kuvandudza hunyanzvi hwedu uye kutibvumira kuona mufananidzo wakakura wezviri kuitika.

Chinyorwa chinopa anonyanya kufarirwa uye ane mukurumbira maturusi uye anoratidza mashandisiro azvo kuvaka otomatiki zvivakwa nhanho nhanho. Boka rega rega rinomiririrwa nemidziyo yakaedzwa kuburikidza neruzivo rwemunhu. Asi hazvirevi kuti unofanira kushandisa chinhu chimwe chete. Zvishandiso pachazvo hazvina kukosha, zvinoonekwa uye zvinopera basa. Basa redu reinjiniya nderekunzwisisa misimboti yekutanga: nei tichida boka iri rezvishandiso uye ndeapi matambudziko ebasa atinogona kugadzirisa nerubatsiro rwavo. Ndosaka pakupera kwechikamu chega chega ndichisiya zvinongedzo kune zvakafanana zvishandiso zvinogona kushandiswa musangano rako.

Chii chisiri munyaya ino

Ndinodzokorora zvakare kuti chinyorwa hachisi chezvishandiso chaiwo, saka hapazove nekuiswa kwekodhi kubva muzvinyorwa uye tsananguro yemirairo chaiyo. Asi pakupera kwechikamu chega chega ndinosiya zvinongedzo zvekudzidza zvakadzama.

Izvi zvinoitwa nekuti: 

  • chinyorwa ichi chiri nyore kwazvo kuwana munzvimbo dzakasiyana-siyana (zvinyorwa, mabhuku, mavhidhiyo makosi);
  • kana tikatanga kupinda zvakadzika, tichafanirwa kunyora 10, 20, 30 zvikamu zvechinyorwa ichi (apo zvirongwa zviri 2-3);
  • Ini handisi kuda kutambisa nguva yako sezvo ungangoda kushandisa mamwe maturusi kuzadzisa zvinangwa zvakafanana.

Dzidzira

Ndinoda chaizvo kuti chinyorwa ichi chibatsire muverengi wese, uye kwete kungoverenga nekukanganwa. Muchidzidzo chipi nechipi, kudzidzira chinhu chakakosha zvikuru. Izvi ndakazvigadzirira GitHub repository ine nhanho-ne-nhanho mirayiridzo yekuti ungaita sei zvese kubva pakutanga. Kune zvakare basa rechikoro rakakumirira iwe kuti uve nechokwadi chekuti haufanire kukopa mitsara yemirairo yauri kuita.

Ronga

Step
Technology
Tools

1
Yemunharaunda inomhanya (gadzirira webhu / android demo bvunzo uye imhanye munharaunda) 
Node.js, Selenium, Apium

2
Shanduro yekudzivirira masisitimu 
Git

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

4
CI/CD
Gitlab CI

5
Cloud mapuratifomu
Google Cloud Platform

6
Orchestration
Kubernetes

7
Infrastructure sekodhi (IaC)
Terraform, Ansible

Chimiro chechikamu chimwe nechimwe

Kuti rondedzero irambe yakajeka, chikamu chimwe nechimwe chinotsanangurwa maererano nerondedzero inotevera:

  • tsananguro pfupi yetekinoroji,
  • kukosha kwe otomatiki zvivakwa,
  • mufananidzo wemamiriro azvino ezvivakwa,
  • links dzekudzidza,
  • zvishandiso zvakafanana.

1. Ita bvunzo munharaunda

Tsanangudzo pfupi yehunyanzvi

Iri rinongori nhanho yekugadzirira yekumhanyisa demo bvunzo munharaunda uye kuona kuti vapasa. Muchikamu chinoshanda, Node.js inoshandiswa, asi mutauro wepurogiramu uye chikuva hazvina kukosha uye unogona kushandisa izvo zvinoshandiswa mukambani yako. 

Zvisinei, sematurusi otomatiki, ndinokurudzira kushandisa Selenium WebDriver yemapuratifomu ewebhu uye Appium yepuratifomu yeAroid, zvichiteerana, sezvo mumatanho anotevera tichashandisa mifananidzo yeDocker yakarongedzerwa kushanda zvakananga nemidziyo iyi. Uyezve, tichitaura nezvezvinodiwa zvebasa, maturusi aya ndiwo anonyanya kudiwa pamusika.

Sezvaungave waona, isu tinongofunga nezvewebhu uye Android bvunzo. Nehurombo, iOS inyaya yakasiyana zvachose (thanks Apple). Ini ndinoronga kuratidza IOS zvine chekuita nemhinduro uye maitiro muzvikamu zvinouya.

Kukosha kwe otomatiki zvivakwa

Kubva pakuona kwezvivakwa, kumhanya munharaunda hakupi chero kukosha. Iwe unongotarisa kuti bvunzo dzinomhanya pamushini wemuno mumabhurawuza emuno uye simulators. Asi chero zvakadaro, iyi inzvimbo inodiwa yekutanga.

Mufananidzo wemamiriro azvino ezvivakwa

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Zvisungo zvekuongorora

Zvishandiso zvakafanana

  • chero mutauro wepurogiramu waunoda pamwe chete neSelenium / Appium bvunzo;
  • chero miedzo;
  • chero bvunzo mumhanyi.

2. Shanduro yekudzora masisitimu (Git)

Tsanangudzo pfupi yehunyanzvi

Hachingave chizaruro chikuru kune chero munhu kana ndikati kutonga kweshanduro chikamu chakakosha chebudiriro, muchikwata uye mumwe nemumwe. Kubva pane akasiyana masosi, zvakachengeteka kutaura kuti Git ndiye anonyanya kufarirwa mumiriri. Shanduro yekudzora sisitimu inopa akawanda mabhenefiti, akadai sekugovanisa kodhi, kuchengetedza shanduro, kudzoreredza kumapazi apfuura, kuongorora nhoroondo yeprojekiti, uye backups. Hatisi kuzokurukura pfungwa imwe neimwe zvakadzama, sezvo ndine chokwadi chekuti unoiziva zvakanyanya uye unoishandisa mubasa rako rezuva nezuva. Asi kana zvikasaitika, saka ini ndinokurudzira kumbomira kuverenga chinyorwa ichi uye kuzadza gaka iri nekukurumidza sezvinobvira.

Kukosha kwe otomatiki zvivakwa

Uye pano unogona kubvunza mubvunzo une musoro: β€œSei ari kutitaurira nezveGit? Wese munhu anoziva izvi uye anoishandisa zvese kodhi yekuvandudza uye yeauto-yekuongorora kodhi. " Iwe uchave wakarurama zvachose, asi munyaya ino tiri kutaura pamusoro pezvivakwa uye chikamu ichi chinoshanda sekutarisa kwechikamu 7: "Infrastructure seCode (IaC)". Kwatiri, izvi zvinoreva kuti zvivakwa zvese, kusanganisira kuyedzwa, zvinotsanangurwa nenzira yekodhi, saka isu tinokwanisawo kushandisa masisitimu eshanduro kwairi uye kuwana mabhenefiti akafanana senge ekuvandudza uye otomatiki kodhi.

Tichatarisa IaC zvakadzama muChikamu chechinomwe, asi kunyangwe ikozvino unogona kutanga kushandisa Git munharaunda nekugadzira nzvimbo yekuchengetera. Mufananidzo mukuru unozowedzerwa kana isu tikawedzera kure kure repository kune zvivakwa.

Mufananidzo wemamiriro azvino ezvivakwa

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Zvisungo zvekuongorora

Zvishandiso zvakafanana

3. Containerization (Docker)

Tsanangudzo pfupi yehunyanzvi

Kuratidza kuti midziyo yakachinja sei mitemo yemutambo, ngatidzokerei kumashure makumi mashoma emakore. Kare ikako, vanhu vakatenga uye vaishandisa maseva muchina kumhanya maapplication. Asi kazhinji, zviwanikwa zvekutanga zvaidiwa zvaisazivikanwa pachine nguva. Nekuda kweizvozvo, makambani akashandisa mari pakutenga kunodhura, maseva ane simba, asi mamwe ehunyanzvi uhu haana kushandiswa zvachose.

Chikamu chinotevera chekushanduka-shanduka chaive michina yemagetsi (VMs), iyo yakagadzirisa dambudziko rekuparadza mari pazvinhu zvisina kushandiswa. Iyi tekinoroji yakaita kuti zvikwanise kumhanyisa zvikumbiro zvakasununguka kubva kune imwe neimwe mukati mesevha imwechete, ichigovera nzvimbo yakasarudzika. Asi, zvinosuruvarisa, chero teknolojia ine zvipingamupinyi zvayo. Kumhanyisa VM kunoda yakazara sisitimu yekushandisa, iyo inodya CPU, RAM, kuchengetedza uye, zvichienderana neOS, mutengo werezinesi unofanirwa kuverengerwa. Izvi zvinhu zvinokanganisa kurodha kumhanya uye kuita kuti kutakurika kuome.

Uye zvino tasvika kune containerization. Zvekare, tekinoroji iyi inogadzirisa dambudziko rekare, sezvo midziyo isingashandisi yakazara OS, iyo inosunungura huwandu hukuru hwezviwanikwa uye inopa inokurumidza uye inochinjika mhinduro yekutakura.

Ehe, tekinoroji yemidziyo haisi chinhu chitsva uye yakatanga kuunzwa mukupera kwe70s. Mumazuva iwayo, tsvakurudzo dzakawanda, kubudirira, uye kuedza kwakaitwa. Asi yaive Docker yakagadzirisa tekinoroji iyi uye ichiita kuti iwanikwe nyore kune ruzhinji. Mazuvano, kana tichitaura nezvemidziyo, kazhinji tinoreva Docker. Kana tichitaura nezve Docker midziyo, tinoreva Linux midziyo. Isu tinogona kushandisa Windows uye macOS masisitimu kumhanyisa midziyo, asi zvakakosha kuti unzwisise kuti mune ino imwe nhanho inooneka. Semuenzaniso, Docker paMac inomhanyisa midziyo chinyararire mukati meiyo lightweight Linux VM. Tichadzokera kunyaya iyi patinokurukura nezve emulator yeAroid mukati memidziyo, saka pano pane yakakosha nuance inoda kukurukurwa zvakadzama.

Kukosha kwe otomatiki zvivakwa

Takaona kuti midziyo uye Docker inotonhorera. Ngatitarisei izvi muchimiro che otomatiki, nekuti chishandiso chese kana tekinoroji inoda kugadzirisa dambudziko. Ngatitaurei matambudziko ari pachena ekuyedza otomatiki mumamiriro ezvinhu eUI bvunzo:

  • nhamba huru yekutsamira paunenge uchiisa Selenium uye kunyanya Appium;
  • matambudziko ekuenderana pakati peshanduro dzebrowser, simulators uye vatyairi;
  • kushaikwa kwenzvimbo yakasarudzika yemabhurawuza / masimulator, ayo anonyanya kukosha pakumhanya kwakafanana;
  • zvakaoma kubata nekuchengetedza kana iwe uchida kumhanya gumi, 10, 50 kana kunyange 100 mabhurawuza panguva imwe chete.

Asi sezvo Selenium iriyo inonyanya kufarirwa otomatiki chishandiso uye Docker ndiyo inonyanya kufarirwa midziyo yekushandisa, hazvifanirwe kushamisa kuti mumwe munhu akaedza kuzvibatanidza kugadzira chishandiso chine simba kugadzirisa matambudziko ataurwa pamusoro. Ngationgororei mhinduro dzakadaro zvakadzama. 

Selenium grid mune docker

Ichi chishandiso ndicho chinonyanya kufarirwa munyika yeSelenium yekumhanyisa mabhurawuza akawanda pamichina yakawanda uye nekuagadzirisa kubva pakati pehubhu. Kutanga, iwe unofanirwa kunyoresa kanenge 2 zvikamu: Hub uye Node (s). Hub inzvimbo yepakati inogamuchira zvikumbiro zvese kubva kubvunzo uye nekuzvigovera kune akakodzera Nodes. Kune imwe neimwe Node isu tinokwanisa kugadzirisa chaiyo dhizaini, semuenzaniso, nekutsanangura inodiwa browser uye vhezheni yayo. Nekudaro, isu tichiri kuda kutarisira madhiraivha anowirirana ebrowser isu pachedu uye nekuaisa pane anodiwa Nodes. Nechikonzero ichi, Selenium grid haishandiswe mune yayo yakachena fomu, kunze kwekunge isu tichida kushanda nemabhurawuza asingakwanisi kuiswa paLinux OS. Kune mamwe ese kesi, yakanyanya kuchinjika uye yakarurama mhinduro ingave yekushandisa Docker mifananidzo kumhanya Selenium grid Hub uye Nodes. Iyi nzira inorerutsa zvikuru manejimendi, sezvo tichigona kusarudza mufananidzo watinoda neshanduro dzinoenderana dzebrowser uye madhiraivha akatoiswa.

Pasinei nekuongorora kwakashata pamusoro pekugadzikana, kunyanya kana uchimhanya nhamba huru yeNodes mukufanana, Selenium grid ndiyo inonyanya kufarirwa yekushandisa bvunzo dzeSelenium dzakafanana. Izvo zvakakosha kuti uzive kuti kwakasiyana kuvandudzwa uye kugadziridzwa kwechishandiso ichi kunogara kuchionekwa mune yakavhurika sosi, iyo inorwisa mabhodhoro akasiyana.

Selenoid yeWebhu

Ichi chishandiso budiriro munyika yeSelenium sezvo ichishanda kunze kwebhokisi uye yaita kuti hupenyu hweakawanda otomatiki mainjiniya huve nyore. Chekutanga pane zvese, iyi haisi imwe shanduko yeSelenium grid. Pane kudaro, vagadziri vakagadzira vhezheni nyowani yeSelenium Hub muGolang, iyo, yakasanganiswa nemifananidzo yakareruka yeDocker yemabhurawuza akasiyana, yakapa kurudziro mukuvandudza bvunzo otomatiki. Uyezve, munyaya yeSelenium Grid, tinofanira kuona mabhurawuza ese anodiwa uye shanduro dzawo pachine nguva, izvo zvisiri dambudziko kana uchishanda nebrowser imwe chete. Asi kana zvasvika kune akawanda anotsigirwa mabhurawuza, Selenoid ndiyo yekutanga mhinduro yekutenda kune yayo 'browser pane inodiwa' chimiro. Zvese zvinodikanwa kwatiri kurodha mifananidzo inodiwa nemabhurawuza pamberi uye kugadzirisa iyo faira yekumisikidza iyo Selenoid inodyidzana nayo. Mushure mekunge Selenoid yagashira chikumbiro kubva kumaedzo, inozongovhura mudziyo waunoda nebrowser yaunoda. Kana bvunzo yapera, Selenoid inoregedza mudziyo, nekudaro ichisunungura zviwanikwa zvezvikumbiro zveramangwana. Iyi nzira inobvisa zvachose dambudziko rinozivikanwa re "node degradation" iyo yatinowanzo sangana nayo muSelenium grid.

Asi, nhamo, Selenoid haisati iri bara resirivha. Isu tine iyo 'browser painodiwa' chimiro, asi iyo 'zviwanikwa painodiwa' haisati yave kuwanikwa. Kuti tishandise Selenoid, tinofanira kuiisa pane hardware yemuviri kana paVM, zvinoreva kuti tinofanira kuziva mberi kuti zvingani zviwanikwa zvinoda kugoverwa. Ini ndinofungidzira kuti iri harisi dambudziko kumapurojekiti madiki anomhanyisa gumi, makumi maviri kana makumi matatu mabhurawuza anoenderana. Asi ko kana tichida 10, 20, 30 uye zvimwe? Hazvina musoro kuchengetedza uye kubhadhara kune zvakawanda zviwanikwa nguva dzese. Muzvikamu 100 uye 500 zvechinyorwa chino, tichakurukura mhinduro dzinokutendera iwe kuyera, nekudaro kuderedza zvakanyanya mutengo wekambani.

Selenoid ye Android

Mushure mekubudirira kweSelenoid sewebhu otomatiki chishandiso, vanhu vaida chimwe chinhu chakafanana cheAndroid. Uye zvakaitika - Selenoid yakaburitswa nerutsigiro rwe Android. Kubva pamushandisi wepamusoro-soro, nheyo yekushanda yakafanana newebhu automation. Musiyano chete ndewekuti pachinzvimbo chebrowser midziyo, Selenoid inomhanyisa Android emulator midziyo. Sekuona kwangu, iyi parizvino ndiyo yakanyanya simba yemahara chishandiso chekumhanyisa Android bvunzo dzakafanana.

Ini handingade kutaura nezve zvakaipa zvechishandiso ichi, sezvo ndichichida chaizvo. Asi zvakadaro, kune zvimwechete zvisingabatsiri zvinoshanda kune webhu otomatiki uye zvine chekuita nekuyera. Pamusoro peizvi, isu tinofanirwa kutaura nezve imwezve miganho inogona kuuya sechishamiso kana isu tiri kumisikidza chishandiso kekutanga. Kumhanyisa Android mifananidzo, tinoda muchina wenyama kana VM ine nested virtualization rutsigiro. Munzira-yekutungamira, ini ndinoratidza maitiro ekugonesa izvi paLinux VM. Nekudaro, kana iwe uri mushandisi weMacOS uye uchida kuendesa Selenoid munharaunda, saka izvi hazvizogone kumhanyisa Android bvunzo. Asi iwe unogona kugara uchimhanyisa Linux VM munharaunda ine 'nested virtualization' yakagadziriswa uye kuendesa Selenoid mukati.

Mufananidzo wemamiriro azvino ezvivakwa

Muchirevo chechinyorwa chino, isu tichawedzera 2 maturusi kuratidza zvivakwa. Aya ndiwo Selenium grid yewebhu bvunzo uye Selenoid ye Android bvunzo. Muchidzidzo cheGitHub, ini ndichakuratidzawo maitiro ekushandisa Selenoid kumhanyisa bvunzo dzewebhu. 

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Zvisungo zvekuongorora

Zvishandiso zvakafanana

  • Kune mamwe maturusi emidziyo, asi Docker ndiyo inonyanya kufarirwa. Kana iwe uchida kuyedza chimwe chinhu, ramba uchifunga kuti zvishandiso zvatakavhara zvekumhanyisa Selenium bvunzo dzakafanana hazvishande kunze kwebhokisi.  
  • Sezvatotaurwa, kune zvakawanda zvinogadziriswa zveSelenium grid, semuenzaniso, Zalenium.

4.CI/CD

Tsanangudzo pfupi yehunyanzvi

Iyo tsika yekuenderera mberi yekubatanidza yakakurumbira mukusimudzira uye iri padanho neshanduro yekudzora masisitimu. Pasinei neizvi, ndinonzwa kuti pane kuvhiringidzika mumashoko. Mundima ino ndinoda kutsanangura 3 shanduko yeiyi tekinoroji kubva pakuona kwangu. Painternet iwe unowana zvinyorwa zvakawanda zvine dudziro dzakasiyana, uye zvakajairika kana maonero ako akasiyana. Chinhu chinonyanya kukosha ndechekuti iwe uri papeji imwe chete nevaunoshanda navo.

Saka, pane 3 mazwi: CI - Kuenderera Kubatanidzwa, CD - Kuenderera Kuendesa uye zvakare CD - Kuenderera Kuendeswa. (Pazasi ndichashandisa mazwi aya muChirungu) Kugadziridzwa kwega kwega kunowedzera akati wandei mamwe matanho kune yako yekuvandudza pombi. Asi shoko Zvinoramba zvichiitika (inoenderera) ndicho chinhu chakakosha. Muchirevo chechinyorwa chino, tinoreva chimwe chinhu chinoitika kubva pakutanga kusvika pakupedzisira, pasina kukanganisa kana kupindira kwemaoko. Ngatitarisei CI & CD uye CD mune ino mamiriro.

  • Kuenderera mberi Kubatanidzwa iyi ndiyo nhanho yekutanga yekushanduka-shanduka. Mushure mekutumira kodhi nyowani kuseva, isu tinotarisira kugamuchira nekukurumidza mhinduro yekuti shanduko dzedu dzakanaka. Kazhinji, CI inosanganisira kushandisa static code analysis maturusi uye unit/internal API bvunzo Izvi zvinotibvumira kuwana ruzivo nezvekodhi yedu mukati memasekondi kana maminetsi mashoma.
  • Kuramba Kuendesa idanho repamberi apo isu tinomhanyisa kusanganisa / UI bvunzo. Nekudaro, panguva ino isu hatiwane mhinduro nekukurumidza seCI. Chekutanga, mhando dzebvunzo idzi dzinotora nguva yakareba kuti dzipere. Kechipiri, tisati tatanga, isu tinofanirwa kuendesa shanduko dzedu kune bvunzo / nharaunda. Zvakare, kana isu tiri kutaura nezve nharembozha, saka imwe nhanho inoratidzika kugadzira kuvaka kwekushandisa kwedu.
  • Kuenderera Mberi inofungidzira kuti isu tinoburitsa otomatiki shanduko dzedu mukugadzira kana bvunzo dzese dzekugamuchirwa dzakapasa mumatanho apfuura. Pamusoro peizvi, mushure mechikamu chekuburitsa, unogona kugadzirisa matanho akasiyana, sekumhanyisa bvunzo dzeutsi pakugadzira uye kuunganidza metrics yekufarira. Kuenderera mberi Deployment inogoneka chete nekuvhara kwakanaka neautomated bvunzo. Kana chero kupindira kwemaoko kuchidiwa, kusanganisira kuedza, saka izvi hazvisisiri Inopfuurira (inoenderera). Ipapo tinogona kutaura kuti pombi yedu inoenderana chete netsika yeKuendesa Kunoenderera.

Kukosha kwe otomatiki zvivakwa

Muchikamu chino, ndinofanira kujekesa kuti kana tichitaura nezvekupedzisira-kusvika-kumagumo UI bvunzo, zvinoreva kuti isu tinofanirwa kuendesa shanduko dzedu uye masevhisi akabatana kuyedza nharaunda. Kuenderera mberi Kubatanidzwa - maitiro haashande pabasa iri uye isu tinofanirwa kuita hanya nekuita kanokwana Kuenderera mberi Deliver maitiro. Kuenderera mberi Deployment zvakare zvine musoro mukati meiyo UI bvunzo kana isu tichizovamhanyisa mukugadzira.

Uye tisati tatarisa mufananidzo weshanduko yezvivakwa, ndinoda kutaura mazwi mashoma nezveGitLab CI. Kusiyana nemamwe maturusi eCI/CD, GitLab inopa iri kure repository uye zvimwe zvakawanda zvekuwedzera maficha. Saka, GitLab inopfuura CI. Inosanganisira sosi kodhi manejimendi, Agile manejimendi, CI/CD mapaipi, maturusi ematanda uye metrics kuunganidza kunze kwebhokisi. Iyo GitLab architecture ine Gitlab CI/CD uye GitLab Runner. Heino tsananguro pfupi kubva kune yepamutemo webhusaiti:

Gitlab CI/CD iwebhu application ine API inochengeta mamiriro ayo mudhatabhesi, inotarisira mapurojekiti / inovaka uye inopa mushandisi interface. GitLab Runner chishandiso chinovaka chinovaka. Inogona kuiswa zvakasiyana uye inoshanda neGitLab CI/CD kuburikidza neAPI. Kune bvunzo dzinomhanya unoda ese Gitlab muenzaniso uye Runner.

Mufananidzo wemamiriro azvino ezvivakwa

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Zvisungo zvekuongorora

Zvishandiso zvakafanana

5. Cloud platforms

Tsanangudzo pfupi yehunyanzvi

Muchikamu chino tichataura nezvemaitiro ane mukurumbira anonzi 'makore eruzhinji'. Kunyangwe mabhenefiti akakura anopihwa neiyo virtualization uye containerization matekinoroji anotsanangurwa pamusoro apa, isu tichiri kuda zviwanikwa zvekombuta. Makambani anotenga maseva anodhura kana kurenda nzvimbo dze data, asi mune iyi kesi zvinofanirwa kuita maverengero (dzimwe nguva asinganzwisisiki) ekuti zvingani zviwanikwa zvatichada, kana isu tichazvishandisa 24/7 uye nezvinangwa zvipi. Semuenzaniso, kugadzira kunoda sevha inomhanya XNUMX/XNUMX, asi isu tinoda zviwanikwa zvakafanana zvekuyedza kunze kwemaawa ekushanda? Zvinoenderanawo nerudzi rwekuyedzwa kuri kuitwa. Muenzaniso ungave wekuremerwa/kushushikana bvunzo dzatinoronga kumhanya panguva dzisiri dzekushanda kuti tiwane mhinduro zuva rinotevera. Asi zvechokwadi XNUMX/XNUMX server kuwanikwa hakudiwi kumagumo-kusvika-kumagumo otomatiki bvunzo uye kunyanya kwete yenzvimbo yekuyedza yemanyorero. Pamamiriro ezvinhu akadaro, zvingava zvakanaka kuwana zvinhu zvakawanda sezvinenge zvichidiwa pakudiwa, kuzvishandisa, uye kurega kubhadhara pazvinenge zvisingachadiwi. Uyezve, zvingave zvakanaka kuvagamuchira ipapo nekuita kakudzvanya mbeva kana kuita zvinyorwa zvishoma. Izvi ndizvo zvinoshandiswa nemakore eruzhinji. Ngatitarisei tsanangudzo:

"Gore reruzhinji rinotsanangurwa semakomputa masevhisi anopihwa nevechitatu-bato vanopa paInternet yeruzhinji, zvichiita kuti awanikwe kune chero anoda kuishandisa kana kutenga. Vanogona kunge vari vakasununguka kana kutengeswa pavanodiwa, vachibvumira vatengi kubhadhara chete pakushandisa kweCPU kutenderera, kuchengetedza, kana bandwidth yavanoshandisa. "

Pane pfungwa yekuti makore eruzhinji anodhura. Asi pfungwa yavo yakakosha ndeyekudzikisa mutengo wekambani. Sezvambotaurwa, makore eruzhinji anotendera iwe kuti uwane zviwanikwa pane zvinodiwa uye kubhadhara chete yenguva yaunoshandisa. Zvakare, dzimwe nguva tinokanganwa kuti vashandi vanogamuchira mihoro, uye nyanzvi zvakare inodhura sosi. Izvo zvinofanirwa kuverengerwa kuti makore eruzhinji anoita kuti tsigiro yezvivakwa zvive nyore, izvo zvinobvumira mainjiniya kuti atarise mamwe akakosha mabasa. 

Kukosha kwe otomatiki zvivakwa

Ndezvipi zviwanikwa zvatinoda pakupera-kusvika-kumagumo UI bvunzo? Chaizvoizvo aya ndiwo chaiwo michina kana masumbu (tichataura nezve Kubernetes muchikamu chinotevera) chekumhanyisa mabhurawuza uye emulators. Iyo yakawanda mabhurawuza uye emulators yatinoda kumhanya panguva imwe chete, iyo yakawanda CPU uye ndangariro inodiwa uye yakawanda mari yatinofanira kubhadhara. Saka, makore eruzhinji muchimiro chebvunzo otomatiki anotitendera kuti timhanye nhamba huru (100, 200, 1000...) yemabhurawuza/emulators painodiwa, tora mhinduro dzebvunzo nekukurumidza uye rega kubhadhara kune inopenga-yakanyanya zviwanikwa. simba. 

Vanonyanya kufarirwa gore vanopa Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Iyo nzira-yekutungamira inopa mienzaniso yemashandisirwo eGCP, asi kazhinji hazvina basa kuti chii chaunoshandisa kuita otomatiki mabasa. Zvose zvinopa zvinenge zvakafanana kushanda. Kazhinji, kusarudza mupi, manejimendi anotarisa pane zvese zvekambani zvivakwa uye bhizinesi zvinodiwa, izvo zvinopfuura chiyero chechinyorwa ichi. Kune otomatiki mainjiniya, zvichave zvakanyanya kunakidza kuenzanisa kushandiswa kwevanopa makore nekushandiswa kwemapuratifomu egore zvakanangana nezvinangwa zvekuyedza, seSauce Labs, BrowserStack, BitBar, zvichingodaro. Saka ngatizviitewo! Sekuona kwangu, Sauce Labs ndiyo inonyanya kuzivikanwa purazi yekuyedza gore, ndosaka ndakaishandisa kuenzanisa. 

GCP vs Sauce Labs kuitira otomatiki zvinangwa:

Ngatifungei kuti tinoda kumhanya 8 webhu bvunzo uye 8 Android bvunzo panguva imwe chete. Kune izvi isu tichashandisa GCP uye tomhanyisa 2 virtual muchina neSelenoid. Pane yekutanga tichasimudza 8 midziyo ine browsers. Pane yechipiri pane 8 midziyo ine emulators. Ngatitarisei mitengo:  

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga
Kumhanyisa mudziyo mumwe neChrome, tinoda n1-chiyero-1 motokari. Munyaya ye Android zvichave n1-chiyero-4 kune imwe emulator. Muchokwadi, imwe nzira inoshanduka uye yakachipa ndeye kuseta chaiyo mushandisi kukosha kweCPU / Memory, asi parizvino izvi hazvina kukosha pakuenzaniswa neSauce Labs.

Uye heino miripo yekushandisa Sauce Labs:

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga
Ndinotenda kuti wakatoona mutsauko, asi ini ndicharamba ndichipa tafura ine maverengero ebasa redu:

Zvishandiso zvinodiwa
Montly
Kushanda maawa(8 am - 8pm)
Kushanda maawa+ Zvinogoneka

GCP yeWebhu
n1-standard-1 x 8 = n1-standard-8
$194.18
Mazuva makumi maviri nematatu * 23h * 12 = $0.38 
Mazuva makumi maviri nematatu * 23h * 12 = $0.08

Sauce Labs yeWebhu
Virtual Cloud8 parallel bvunzo
$1.559
-
-

GCP ye Android
n1-chiyero-4 x 8: n1-chiyero-16
$776.72
Mazuva makumi maviri nematatu * 23h * 12 = $1.52 
Mazuva makumi maviri nematatu * 23h * 12 = $0.32

Sauce Labs for Android
Real Device Cloud 8 parallel bvunzo
$1.999
-
-

Sezvauri kuona, mutsauko mumutengo wakakura, kunyanya kana iwe uchimhanyisa bvunzo panguva yekushanda kwemaawa gumi nemaviri. Asi iwe unogona kuderedza mitengo zvakatowedzera kana ukashandisa preemptible michina. Chii ichochi?

A preemptible VM muenzaniso waunogona kugadzira uye kumhanya nemutengo muchower pane zvakajairika zviitiko. Nekudaro, Injini yeCompute inogona kumisa (preempt) zviitiko izvi kana ichida kuwana zviwanikwa zvemamwe mabasa. Mamiriro ekutanga akawandisa Compute Injini kugona, saka kuwanikwa kwavo kunosiyana nekushandiswa.

Kana maapplication ako achishivirira kukanganisa uye achikwanisa kumirisana nemienzaniso yemuenzaniso, ipapo zviitiko zvinogoneka zvinogona kuderedza mutengo wako weCompute Engine zvakanyanya. Semuenzaniso, batch processing jobs inogona kumhanya pane preemptible zviitiko. Kana mamwe eaya mamiriro akapera panguva yekugadzirisa, basa rinononoka asi harina kumira zvachose. Mamiriro ekutanga anopedzisa basa rako rekugadzirisa batch pasina kuisa rimwe basa pane ako aripo uye pasina kukuda kuti ubhadhare mutengo wakakwana kune mamwe akajairwa zviitiko.

Uye hazvisati zvapera! Muchokwadi, ndine chokwadi chekuti hapana anomhanyisa bvunzo kwemaawa gumi nemaviri pasina kuzorora. Uye kana zvirizvo, saka unogona kutanga uye kumisa chaiwo michina kana isiri kudikanwa. Nguva chaiyo yekushandisa inogona kudzikiswa kusvika maawa matanhatu pazuva. Ipapo kubhadhara mumamiriro ebasa redu kunoderera kusvika ku $ 12 pamwedzi kune 6 browsers. Izvi hazvishamisi here? Asi nemichina inotangira isu tinofanira kungwarira uye kugadzirira kukanganisa uye kusagadzikana, kunyangwe aya mamiriro anogona kupihwa uye kubatwa musoftware. Zvakakodzera!

Asi handisi kuti 'usamboshandisa cloud test mapurazi'. Vane zvinoverengeka zvakanakira. Chekutanga, iyi haingori muchina chaiwo, asi yakazara-yakazara bvunzo otomatiki mhinduro ine seti yekushanda kunze kwebhokisi: kure kure, matanda, zvidzitiro, kurekodha vhidhiyo, mabhurawuza akasiyana siyana uye enyama nharembozha. Muzviitiko zvakawanda, iyi inogona kuve yakakosha chic imwe nzira. Mapuratifomu ekuyedza anonyanya kubatsira kuIOS otomatiki, apo makore eruzhinji anogona kungopa Linux/Windows masisitimu. Asi isu tichataura nezve iOS mune zvinotevera zvinyorwa. Ndinokurudzira nguva dzose kutarisa mamiriro ezvinhu uye kutanga kubva kumabasa: mune dzimwe nguva zvinodhura uye zvinobudirira kushandisa makore ehurumende, uye mune mamwe mapuratifomu ekuedzwa anonyatsokodzera mari inoshandiswa.

Mufananidzo wemamiriro azvino ezvivakwa

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Zvisungo zvekuongorora

Zvishandiso zvakafanana:

6. Ochestration

Tsanangudzo pfupi yehunyanzvi

Ndine nhau dzakanaka - tave pakupera kwechinyorwa! Parizvino, yedu otomatiki zvivakwa zvine webhu uye Android bvunzo, yatinomhanya kuburikidza neGitLab CI nenzira yakafanana, tichishandisa Docker-inogonesa maturusi: Selenium grid uye Selenoid. Zvakare, isu tinoshandisa chaiwo michina yakagadzirwa kuburikidza neGCP kubata midziyo ine mabhurawuza uye emulators. Kuti tideredze mitengo, tinotanga aya machina chaiwo pakuda chete uye toamisa kana kuyedzwa kusiri kuitwa. Pane chimwe chinhu chingavandudza zvivakwa zvedu here? Mhinduro ndihongu! Sangana naKubernetes (K8s)!

Kutanga, ngatitarisei kuti mazwi orchestration, cluster, uye Kubernetes ane hukama sei kune mumwe nemumwe. Padanho repamusoro, orchestration ndiyo sisitimu inotumira uye inogadzirisa maapplication. Yekuyedza otomatiki, akadai emidziyo mashandisirwo iSelenium grid uye Selenoid. Docker neK8s vanopindirana. Yekutanga inoshandiswa pakuisa application, yechipiri ndeye orchestration. Nekudaro, K8s isumbu. Basa reboka nderekushandisa maVM seNode, izvo zvinokutendera kuti uise akasiyana mashandiro, zvirongwa uye masevhisi mukati meimwe server (cluster). Kana imwe yeNode ikakundikana, mamwe maNode anozotora, ayo anovimbisa kusakanganiswa kushanda kwekushandisa kwedu. Pamusoro peizvi, maK8 ane mashandiro akakosha ane chekuita nekuyeresa, nekuda kwatinozviwanira otomatiki huwandu hwakakwana hwezviwanikwa zvichibva pamutoro uye kumisa miganhu.

Muchokwadi, kuendesa Kubernetes nemaoko kubva kutanga harisi basa diki zvachose. Ini ndichasiya chinongedzo kune inozivikanwa sei-yekutungamira "Kubernetes Iyo Yakaoma Way" uye kana iwe uchifarira, unogona kuzvidzidzira. Asi, nerufaro, kune dzimwe nzira uye zvishandiso. Nzira iri nyore ndeye kushandisa Google Kubernetes Injini (GKE) muGCP, iyo ichakubvumidza iwe kuti uwane yakagadzirira-yakagadzirwa cluster mune mashoma mashoma. Ini ndinokurudzira kushandisa nzira iyi kutanga kudzidza, sezvo ichikubvumidza kuti utarise pakudzidza mashandisiro eK8s kumabasa ako pane kudzidza kuti zvikamu zvemukati zvinofanirwa kubatanidzwa sei. 

Kukosha kwe otomatiki zvivakwa

Ngatitarisei mashoma akakosha maficha anopihwa neK8s:

  • application deployment: kushandisa multi-node cluster panzvimbo yeVMs;
  • dynamic scaling: inoderedza mutengo wezviwanikwa zvinoshandiswa chete pakudiwa;
  • kuzviporesa: otomatiki kudzoreredzwa kwepods (semhedzisiro iyo midziyo inodzoserwawo);
  • kuburitswa kwezvigadziriso uye kudzoreredza kwekuchinja pasina kudzika: maturusi ekuvandudza, mabhurawuza uye emulators hazvikanganise basa revashandisi varipo.

Asi maK8 haasati ari bara resirivha. Kuti tinzwisise zvose zvinobatsira uye zvisingakwanisi mumamiriro ezvinhu ezvishandiso zvatiri kufunga (Selenium grid, Selenoid), tichakurukura muchidimbu chimiro cheK8s. Cluster ine marudzi maviri emaNode: Master Nodes uye Workers Nodes. Master Node ane basa rekutungamira, kuendesa uye kuronga sarudzo. Manodhi evashandi ndiko kunoitwa maapplication. Node zvakare dzine mudziyo wekumhanyisa nharaunda. Kwatiri, iyi iDocker, inova nebasa rekuita zvine chekuita nemudziyo. Asi kunewo dzimwe nzira dzekugadzirisa, semuenzaniso mudziyo. Izvo zvakakosha kuti unzwisise kuti kuyera kana kuzviporesa hakushande zvakananga kumidziyo. Izvi zvinoitwa nekuwedzera/kudzikisa huwandu hwemapods, ayo anozove nemidziyo (kazhinji mudziyo mumwe papodhi, asi zvichienderana nebasa pangave nezvimwe). Hurongwa hwepamusoro-soro hunosanganisira nodes yevashandi, mukati mayo mune mapodhi, mukati mayo midziyo inosimudzwa.

Iyo yekuyera ficha ndiyo kiyi uye inogona kuiswa kune ese maviri node mukati me cluster node-dziva uye pods mukati me node. Kune mhando mbiri dzekuyera dzinoshanda kune ese ma node nemapods. Rudzi rwekutanga rwakachinjika - kuyera kunoitika nekuwedzera huwandu hwemanodhi/podhi. Mhando iyi ndiyo inonyanya kufarirwa. Rudzi rwechipiri, maererano, vertical. Kuyera kunoitwa nekuwedzera saizi yemanodhi / mapodhi, uye kwete nhamba yavo.

Zvino ngatitarisei zvishandiso zvedu muchirevo chemashoko ari pamusoro.

Selenium grid

Sezvambotaurwa, Selenium grid chishandiso chakakurumbira, uye hazvishamise kuti yakaiswa mumidziyo. Naizvozvo, hazvishamisi kuti Selenium grid inogona kuiswa muK8s. Muenzaniso wekuita izvi unogona kuwanikwa mune yepamutemo K8s repository. Semazuva ese, ini ndinoisa zvinongedzo pakupera kwechikamu. Uye zvakare, iyo nzira-yekutungamira inoratidza maitiro ekuita izvi muTerraform. Kune zvakare mirairo yekuyera sei nhamba yemapodhi ane browser midziyo. Asi iyo otomatiki scaling basa muchimiro cheK8s haisati iri basa rakanyatsojeka. Pandakatanga kudzidza, handina kuwana nhungamiro inoshanda kana mazano. Mushure mezvidzidzo zvakati wandei uye kuyedza nerutsigiro rwechikwata cheDevOps, takasarudza nzira yekusimudza midziyo ine mabhurawuza anodiwa mukati mepod imwe, iri mukati meimwe yevashandi node. Iyi nzira inotibvumira kushandisa zano rekuyera kuyera kwemanodhi nekuwedzera nhamba yavo. Ndinotarisira kuti izvi zvichachinja mune ramangwana uye tichaona kutsanangurwa kwakawanda uye kwakawanda kwemaitiro ari nani uye mhinduro dzakagadzirirwa, kunyanya mushure mekuburitswa kweSelenium grid 4 ine shanduko yemukati yekuvaka.

Selenoid:

Selenoid deployment muK8s parizvino ndiko kuodzwa mwoyo kukuru. Hazvienderane. Muchirevo, tinogona kusimudza mudziyo weSelenoid mukati mepodhi, asi Selenoid paanotanga kuburitsa midziyo ine mabhurawuza, ivo vachiri mukati mepodhi imwechete. Izvi zvinoita kuti kuyera kusagoneke uye, semhedzisiro, basa reSelenoid mukati mesumbu harizosiyana nebasa mukati memuchina chaiwo. Kupera kwenyaya.

mwedzi:

Kuziva bhodhoro iri pakushanda neSelenoid, vagadziri vakaburitsa chishandiso chine simba chinonzi Mwedzi. Ichi chishandiso chakagadzirirwa kushanda naKubernetes uye, semhedzisiro, iyo autoscaling ficha inogona uye inofanirwa kushandiswa. Uyezve, ndingataura kuti panguva ino ivo chete chishandiso munyika yeSelenium, ine yekuzvarwa K8s tsigiro yesumbu kunze kwebhokisi (haisisipo, ona chishandiso chinotevera ) Zvinhu zvakakosha zveMwedzi zvinopa rubatsiro urwu ndezvi: 

Zvisingatauriki zvachose. Selenoid inochengeta mundangariro ruzivo nezve parizvino irikumhanyisa browser masesheni. Kana nekuda kwechimwe chikonzero maitiro ayo akaputsika - saka ese anomhanya masesheni anorasika. Mwedzi nepakati hauna mamiriro emukati uye unogona kudzokororwa munzvimbo dzese dzedata. Browser zvikamu zvinoramba zviri zvipenyu kunyangwe imwe kana akawanda replicas akadzikira.

Saka, Mwedzi mhinduro huru, asi pane dambudziko rimwe chete: haisi yemahara. Mutengo unoenderana nehuwandu hwezvikamu. Iwe unogona chete kumhanya 0-4 zvikamu zvemahara, izvo zvisinganyanyi kubatsira. Asi, kutanga kubva pachikamu chechishanu, uchafanirwa kubhadhara madhora mashanu pane yega yega. Mamiriro ezvinhu anogona kusiyana kubva kune kambani kuenda kune imwe kambani, asi kwatiri, kushandisa Mwedzi hakuna maturo. Sezvandakatsanangura pamusoro, tinogona kumhanya maVM neSelenium Grid pakuda kana kuwedzera nhamba yeNodes musumbu. Painenge pombi imwe chete, tinovhura mabhurawuza mazana mashanu uye tinomisa zvese zviwanikwa mushure mekunge bvunzo dzapera. Kana tikashandisa Mwedzi, taizofanira kubhadhara imwe 5 x 500 = $500 pamwedzi, zvisinei kuti tinomhanya bvunzo kakawanda sei. Zvakare, handisi kuti usashandise Mwedzi. Pamabasa ako, iyi inogona kuve yakakosha mhinduro, semuenzaniso, kana uine akawanda mapurojekiti / zvikwata musangano rako uye iwe unoda hombe yakajairwa cluster kune wese munhu. Senguva dzose, ini ndinosiya chinongedzo kumagumo uye ndinokurudzira kuita ese anodiwa kuverenga mumamiriro ebasa rako.

Callisto: (Attention! Izvi hazvisi muchinyorwa chekutanga uye zvinongowanikwa mushanduro yechiRussian)

Sezvandakataura, Selenium chishandiso chakakurumbira, uye iyo IT munda iri kukura nekukurumidza. Ndichiri kushanda pakushandura, chishandiso chitsva chinovimbisa chinonzi Callisto chakaonekwa pawebhu (hello Cypress nevamwe vaurayi veSelenium). Inoshanda natively neK8s uye inokutendera iwe kuti umhanye Selenoid midziyo mumapodhi, akagoverwa mhiri Node. Zvese zvinoshanda kunze kwebhokisi, kusanganisira autoscaling. Fantastic, asi inoda kuyedzwa. Ini ndatokwanisa kuendesa chishandiso ichi uye kumhanyisa akati wandei kuyedza. Asi ichiri kukurumidza kutora mhedziso, mushure mekugamuchira mhedzisiro pamusoro pechinhambwe chakareba, pamwe ndichaita wongororo mune zvinotevera zvinyorwa. Parizvino ndiri kusiya zvinongedzo chete zvekutsvaga kwakazvimirira.  

Mufananidzo wemamiriro azvino ezvivakwa

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Zvisungo zvekuongorora

Zvishandiso zvakafanana

7. Infrastructure seCode (IaC)

Tsanangudzo pfupi yehunyanzvi

Uye zvino tasvika kuchikamu chekupedzisira. Kazhinji, tekinoroji iyi uye mabasa ane hukama harisi basa reautomation mainjiniya. Uye pane zvikonzero zveizvi. Chekutanga, mumasangano mazhinji, nyaya dzezvivakwa dziri pasi pehutongi hwedhipatimendi reDevOps uye zvikwata zvebudiriro hazvina basa nazvo kuti chii chinoita kuti pombi ishande uye kuti zvese zvakabatana nazvo zvinoda kutsigirwa sei. Chechipiri, ngative vakatendeseka, tsika yeInfrastructure seCode (IaC) haisati yagamuchirwa mumakambani mazhinji. Asi yakave yakanyatso kuve yakakurumbira maitiro uye zvakakosha kuedza kubatanidzwa mumaitiro, nzira uye zvishandiso zvine chekuita nazvo. Kana kuti gara uchifambirana nenguva.

Ngatitangei nekukurudzira kwekushandisa nzira iyi. Takatokurukura kuti kumhanya bvunzo muGitlabCI, isu tichada zvishoma zviwanikwa zvekumhanya Gitlab Runner. Uye kumhanya midziyo ine mabhurawuza / emulators, isu tinofanirwa kuchengetedza VM kana sumbu. Pamusoro pezviwanikwa zvekuyedza, isu tinoda huwandu hwakakura hwekugona kutsigira budiriro, dhizaini, nharaunda dzekugadzira, iyo inosanganisirawo dhatabhesi, otomatiki masheti, magadzirirwo etiweki, mitoro inoremedza, kodzero dzevashandisi, zvichingodaro. Nyaya huru ndeyekuedza kunodiwa kuitsigira yese. Pane nzira dzinoverengeka dzatinogona kuita shanduko uye kuburitsa zvigadziriso. Semuenzaniso, muchimiro cheGCP, tinogona kushandisa iyo UI koni mubrowser uye kuita zviito zvese nekudzvanya mabhatani. Imwe nzira ingave yekushandisa API mafoni kudyidzana nemakore entities, kana kushandisa gcloud command line utility kuita manipulations anodiwa. Asi nehuwandu hukuru hwemasangano akasiyana uye zvinhu zvezvivakwa, zvinova zvakaoma kana kusagoneka kuita mabasa ese nemawoko. Uyezve, zvese izvi zviito zvemaoko hazvidzoreki. Hatikwanise kuzviendesa kuti zviongororwe tisati taurayiwa, shandisa shanduro yekudzora system, uye nekukasira kudzosera kumashure shanduko dzakonzera chiitiko. Kugadzirisa matambudziko akadaro, mainjiniya akagadzira uye anogadzira otomatiki bash / shell zvinyorwa, izvo zvisiri nani zvakanyanya kupfuura nzira dzakapfuura, sezvo zvisiri nyore kukurumidza kuverenga, kunzwisisa, kuchengetedza uye kugadzirisa mune yemaitiro maitiro.

Muchinyorwa ichi uye maitiro-yekutungamira, ini ndinoshandisa 2 maturusi ane chekuita neIaC tsika. Aya ndiwo Terraform uye Ansible. Vamwe vanhu vanotenda kuti hazvina musoro kuzvishandisa panguva imwe chete, sezvo mashandiro avo akafanana uye anogona kuchinjika. Asi chokwadi ndechekuti pakutanga vanopihwa mabasa akasiyana zvachose. Uye chokwadi chekuti maturusi aya anofanirwa kutsigirana chakasimbiswa pamusangano wekubatana nevagadziri vanomiririra HashiCorp neRedHat. Musiyano wepfungwa ndewekuti Terraform chishandiso chekugadzirisa maseva pachawo. Nepo Ansible chiri chigadziriso manejimendi chishandiso chine basa rekuisa, kugadzirisa uye kubata software pane aya maseva.

Chimwe chinhu chakakosha chinosiyanisa chezvishandiso izvi maitiro ekukodha. Kusiyana nebash uye Ansible, Terraform inoshandisa dhizaini yekuzivisa yakavakirwa pane tsananguro yeinodiwa yekupedzisira nyika kuti iwanikwe semhedzisiro yekuurayiwa. Semuenzaniso, kana tichizogadzira gumi maVM uye toshandisa shanduko kuburikidza neTerraform, isu tichawana gumi maVM. Kana tikamhanyisa script zvakare, hapana chichaitika sezvo isu tatova ne10 VMs, uye Terraform inoziva nezveizvi nekuti inochengeta mamiriro azvino ezvivakwa mufaira rehurumende. Asi Ansible inoshandisa maitiro ekuita uye, kana iwe ukaikumbira kuti igadzire gumi maVM, ipapo pakuvhurwa kwekutanga tichawana gumi maVM, akafanana neTerraform. Asi mushure mekutangazve isu tinenge tatova ne10 VMs. Uyu ndiwo musiyano unokosha. Mukuita maitiro, isu hatichengete mamiriro azvino uye tinongotsanangura kutevedzana kwenhanho dzinofanirwa kuitwa. Ehe, isu tinokwanisa kubata akasiyana mamiriro, kuwedzera akati wandei macheki ekuvapo kwezviwanikwa uye mamiriro azvino, asi hapana chikonzero chekuparadza nguva yedu nekuisa simba mukudzora pfungwa iyi. Mukuwedzera, izvi zvinowedzera mukana wekuita zvikanganiso. 

Kupfupisa zvese zviri pamusoro, tinogona kugumisa kuti Terraform uye declarative notation chishandiso chakakodzera chekupa maseva. Asi zviri nani kugovera basa rekugadzirisa manejimendi kune Ansible. Nezvo kunze kwenzira, ngatitarisei mashandisirwo emakesi mumamiriro e automation.

Kukosha kwe otomatiki zvivakwa

Chinhu chega chakakosha kunzwisisa pano ndechekuti bvunzo otomatiki zvivakwa zvinofanirwa kutariswa sechikamu chese chikamu chekambani. Izvi zvinoreva kuti maitiro ese eIaC anofanirwa kushandiswa pasi rose kune zviwanikwa zvesangano rese. Ndiani ane mhosva yeizvi zvinoenderana nemaitiro ako. Dare reDevOps rine ruzivo rwakanyanya munyaya idzi, vanoona mufananidzo wose wezviri kuitika. Nekudaro, mainjiniya eQA anonyanya kubatanidzwa mukugadzira otomatiki uye chimiro chepombi, izvo zvinovatendera kuti vaone zvirinani shanduko dzese dzinodiwa nemikana yekuvandudza. Sarudzo yakanakisa ndeyekushanda pamwe chete, kuchinjana ruzivo uye mazano kuti uwane mhedzisiro inotarisirwa. 

Heino mienzaniso mishoma yekushandisa Terraform uye Ansible mumamiriro ekuedzwa otomatiki uye maturusi atakambokurukura:

1. Rondedzera hunhu hunodiwa uye paramita dzeVM nemasumbu uchishandisa Terraform.

2. Uchishandisa Zvinogoneka, isa zvishandiso zvinodiwa pakuedza: docker, Selenoid, Selenium Grid uye tora zvinyorwa zvinodiwa zvevashanduri / emulators.

3. Uchishandisa Terraform, tsanangura maitiro eVM umo GitLab Runner ichavhurwa.

4. Isa GitLab Runner uye maturusi anodiwa anoenderana uchishandisa Ansible, seta zvigadziriso uye zvigadziriso.

Mufananidzo wemamiriro azvino ezvivakwa

Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Links yekuongorora:

Zvishandiso zvakafanana

Ngatitaurei muchidimbu!

Step
Technology
Tools
Kukosha kwe otomatiki zvivakwa

1
Local kumhanya
Node.js, Selenium, Apium

  • Zvishandiso zvinonyanya kufarirwa zvewebhu uye nharembozha
  • Inotsigira mitauro yakawanda uye mapuratifomu (kusanganisira Node.js)

2
Shanduro yekudzivirira masisitimu 
Git

  • Mabhenefiti akafanana nekodhi yekuvandudza

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

  • Kumhanya bvunzo mukuwirirana
  • Nzvimbo dziri dzoga
  • Nyore, inochinjika vhezheni inokwidziridzwa
  • Dynamically kumisa zviwanikwa zvisina kushandiswa
  • Nyore kumisikidza

4
CI/CD
Gitlab CI

  • Inoedza chikamu chepombi
  • Quick Feedback
  • Kuonekwa kwekambani yese/timu

5
Cloud mapuratifomu
Google Cloud Platform

  • Zviwanikwa pazvinodiwa (tinobhadhara chete kana zvichidikanwa)
  • Zviri nyore kubata uye kugadzirisa
  • Kuonekwa uye kutonga kwezvinhu zvese

6
Orchestration
Kubernetes
Muchirevo chemidziyo ine mabhurawuza / emulators mukati mepods:

  • Kuyera/kuyera otomatiki
  • Kuzvirapa
  • Updates uye rollbacks pasina kukanganisa

7
Infrastructure sekodhi (IaC)
Terraform, Ansible

  • Mabhenefiti akafanana ane zvivakwa zvebudiriro
  • Zvese zvakanakira kodhi shanduro
  • Zviri nyore kuita shanduko uye kuchengetedza
  • Zvakakwana otomatiki

Mind mepu dhayagiramu: shanduko yezvivakwa

danho1: Local
Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

nhanho 2: VCS
Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

danho rechitatu: Containerization 
Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Nhanho 4: CI/CD 
Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

nhanho5: Cloud Platforms
Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

nhanho6:Ochestration
Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

nhanho 7: IaC
Zvishandiso zveDevOps hazvisi zveDevOps chete. Maitiro ekuvaka bvunzo otomatiki zvivakwa kubva kutanga

Chii chinotevera?

Saka, uku ndiko kuguma kwechinyorwa. Asi mukupedzisa, ndinoda kumisa zvibvumirano newe.

Kubva kudivi rako
Sezvandambotaura pakutanga, ndinoda kuti chinyorwa chacho chive chekushandisa uye kukubatsira kushandisa ruzivo rwakawanwa mubasa chairo. Ndinowedzera zvakare link kune inoshanda gwara.

Asi kunyangwe mushure meizvozvo, usamira, dzidzira, dzidza hukama hwakakodzera uye mabhuku, tsvaga kuti inoshanda sei mukambani yako, tsvaga nzvimbo dzinogona kuvandudzwa uye kutora chikamu mairi. Rombo rakanaka!

Kubva kudivi rangu

Kubva pazita racho unogona kuona kuti ichi chaingova chikamu chekutanga. Kunyangwe hazvo zvakazove zvakakura, misoro yakakosha haisati yafukidzwa pano. Muchikamu chechipiri, ndinoronga kutarisa otomatiki zvivakwa mumamiriro eIOS. Nekuda kwezvirambidzo zveApple pakumhanyisa iOS simulators chete pane macOS masisitimu, huwandu hwedu hwemhinduro hwakatetepa. Semuenzaniso, isu hatikwanise kushandisa Docker kumhanyisa simulator kana makore eruzhinji kumhanyisa michina chaiyo. Asi izvi hazvirevi kuti hapana zvimwe zvingasarudzwa. Ini ndichaedza kukuchengetedza iwe kufambidzana nemhinduro dzepamusoro uye zvishandiso zvemazuva ano!

Zvakare, handina kutaura nyaya dzakakura dzine chekuita nekutarisa. MuChikamu 3, ini ndichatarisa maturusi anonyanya kufarirwa ekutarisa zvivakwa uye kuti ndeapi data nemametrics ekufunga.

Uye pakupedzisira. Mune ramangwana, ini ndinoronga kuburitsa vhidhiyo kosi pakuvaka bvunzo zvivakwa uye zvakakurumbira zvishandiso. Parizvino, kune akati wandei makosi uye hurukuro paDevOps paInternet, asi zvese zvinoshandiswa zvinounzwa mumamiriro ekusimudzira, kwete bvunzo otomatiki. Panyaya iyi, ini ndinoda chaizvo mhinduro yekuti kosi yakadai ingave inonakidza uye yakakosha kunharaunda yevayedza uye otomatiki mainjiniya. Ndinokutendai mberi!

Source: www.habr.com

Voeg