Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Fizarana 1: Web/Android

fanamarihana: ity lahatsoratra ity dia fandikana amin'ny teny rosiana ny lahatsoratra tany am-boalohany "Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. "Manangana fotodrafitrasa automatique fitsapana hatramin'ny voalohany." Na izany aza, ny fanoharana, rohy, teny nalaina ary teny rehetra dia voatahiry amin'ny fiteny tany am-boalohany mba hisorohana ny fanodinkodinana ny dikany rehefa adika amin'ny teny Rosiana. Mirary soa anao hianatra!

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Amin'izao fotoana izao, ny manokana DevOps dia iray amin'ireo fangatahana indrindra amin'ny indostrian'ny IT. Raha manokatra tranokala fikarohana asa malaza ianao ary manivana amin'ny karama, dia ho hitanao fa ny asa mifandraika amin'ny DevOps dia eo an-tampon'ny lisitra. Na izany aza, zava-dehibe ny mahatakatra fa izany dia manondro indrindra ny toerana 'Senior', izay midika fa manana fahaiza-manao avo lenta, fahalalana momba ny teknolojia ary fitaovana ny kandidΓ . Izany koa dia miaraka amin'ny andraikitra ambony mifandray amin'ny fampandehanana tsy tapaka ny famokarana. Na izany aza, nanomboka nanadino ny atao hoe DevOps izahay. Tany am-boalohany dia tsy olona na sampana manokana io. Raha mitady famaritana an'io teny io isika, dia hahita anarana tsara tarehy sy marina maro, toy ny metodolojia, fanao, filozofia ara-kolontsaina, vondron-kevitra, sy ny sisa.

Injeniera automatique fitsapana (injeniera automatique QA) ny fahaizako manokana, saingy mino aho fa tsy tokony hifandray amin'ny fanoratana andrana mandeha ho azy fotsiny izy io na amin'ny famolavolana rafitra rafitra fitsapana. Amin'ny taona 2020, ilaina ihany koa ny fahalalana ny fotodrafitrasa automatique. Izany dia ahafahanao mandamina ny fizotran'ny automatique amin'ny tenanao, manomboka amin'ny fanaovana fitiliana ka hatramin'ny fanomezana valiny ho an'ny mpandray anjara rehetra mifanaraka amin'ny tanjonao. Vokatr'izany, ny fahaiza-manao DevOps dia tsy maintsy atao amin'ny fanatanterahana ny asa. Ary tsara izany rehetra izany, saingy, indrisy, misy olana (spoiler: ity lahatsoratra ity dia manandrana manatsotra ity olana ity). Ny zava-misy dia sarotra ny DevOps. Ary miharihary izany, satria ny orinasa dia tsy handoa vola be amin'ny zavatra mora atao... Ao amin'ny tontolon'ny DevOps, misy fitaovana, fepetra ary fomba maro be mila fehezina. Sarotra indrindra izany amin'ny fiandohan'ny asa ary miankina amin'ny traikefa ara-teknika voaangona.

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany
Source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Eto isika dia mety ho tapitra amin'ny ampahany fampidirana ary hifantoka amin'ny tanjon'ity lahatsoratra ity. 

Momba ny inona ity lahatsoratra ity?

Amin'ity lahatsoratra ity dia hizara ny traikefako amin'ny fananganana fotodrafitrasa automatique fitsapana aho. Betsaka ny loharanom-baovao ao amin'ny Internet momba ny fitaovana isan-karazany sy ny fomba fampiasana azy ireo, saingy tiako ny hijery azy ireo amin'ny tontolon'ny automation. Mino aho fa maro amin'ireo injeniera automatique no mahafantatra ny toe-javatra rehefa tsy misy olona afa-tsy ianao no manao ny fitsapana novolavolaina na mikarakara azy ireo. Vokatr'izany dia lasa lany andro ny fitsapana ary mila mandany fotoana amin'ny fanavaozana azy ireo ianao. Averina indray, amin'ny fiandohan'ny asa dia mety ho asa sarotra izany: manapa-kevitra amim-pahendrena izay fitaovana tokony hanampy amin'ny fanafoanana olana iray, ny fomba hifidianana, handrindrana ary hitazonana azy ireo. Ny mpandinika sasany dia mitodika any amin'ny DevOps (olona) mba hahazoana fanampiana ary, ndeha ho marin-toetra, ity fomba ity dia mahomby. Amin'ny toe-javatra maro dia mety io ihany no safidy satria tsy afaka mahita ny fiankinan-doha rehetra isika. Saingy araka ny fantatsika, DevOps dia tena sahirana ry zalahy, satria tsy maintsy mieritreritra ny fotodrafitrasa manontolon'ny orinasa, ny fametrahana, ny fanaraha-maso, ny microservices ary ireo asa mitovy amin'izany miankina amin'ny fikambanana/ekipa. Toy ny mahazatra dia tsy laharam-pahamehana ny automation. Amin’ny toe-javatra toy izany, dia tsy maintsy miezaka manao izay rehetra azo atao amin’ny anjarantsika isika hatramin’ny voalohany ka hatramin’ny farany. Izany dia hampihena ny fiankinan-doha, hanafaingana ny fizotran'ny asa, hanatsara ny fahaizantsika ary hamela antsika hahita ny sary lehibe kokoa momba ny zava-mitranga.

Ny lahatsoratra dia manolotra ireo fitaovana malaza sy malaza indrindra ary mampiseho ny fomba fampiasana azy ireo hananganana fotodrafitrasa automatique tsikelikely. Ny vondrona tsirairay dia aseho amin'ny fitaovana izay nosedraina tamin'ny alalan'ny traikefa manokana. Saingy tsy midika izany fa tsy maintsy mampiasa zavatra mitovy ianao. Ny fitaovana mihitsy no tsy zava-dehibe, miseho sy lany andro. Ny andraikitry ny injeniera dia ny mahatakatra ireo fitsipika fototra: nahoana no ilaintsika ity vondrona fitaovana ity ary inona ny olana amin'ny asa azontsika vahana amin'ny fanampian'izy ireo. Izany no antony ametrahako rohy mankany amin'ny fitaovana mitovy amin'izany izay azo ampiasaina ao amin'ny fikambananao amin'ny faran'ny fizarana tsirairay.

Inona no tsy ato amin'ity lahatsoratra ity

Averiko indray fa ny lahatsoratra dia tsy momba ny fitaovana manokana, ka tsy hisy fampidirana code avy amin'ny antontan-taratasy sy ny famaritana ny baiko manokana. Saingy amin'ny faran'ny fizarana tsirairay dia mamela rohy ho an'ny fandalinana amin'ny antsipiriany aho.

Izany dia atao satria: 

  • ity fitaovana ity dia tena mora hita any amin'ny loharano isan-karazany (fanadihadiana, boky, fampianarana video);
  • raha manomboka lalindalina kokoa isika dia tsy maintsy manoratra ampahany 10, 20, 30 amin'ity lahatsoratra ity (raha toa ka 2-3 ny drafitra);
  • Tsy te handany fotoana fotsiny aho satria mety te hampiasa fitaovana hafa hanatratrarana tanjona mitovy.

fampiharana

Tena tiako ho mahasoa ny mpamaky rehetra ity fitaovana ity, fa tsy vakiana sy hadino fotsiny. Amin'ny fianarana rehetra, ny fampiharana dia singa tena manan-danja. Izany no nanomanako GitHub repository miaraka amin'ny toromarika tsikelikely momba ny fomba hanaovana ny zava-drehetra hatrany am-boalohany. Misy entimody miandry anao koa mba hahazoana antoka fa tsy mandika tsy misy dikany ny andalana amin'ny baiko tanterahanao ianao.

drafitra

dingana
teknolojia
Tools

1
Hazakazaka eo an-toerana (manomana andrana demo amin'ny tranonkala / android ary tanteraho eo an-toerana) 
Node.js, Selenium, Appium

2
Rafitra fanaraha-maso version 
git

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

4
CI/CD
Gitlab CI

5
Sehatra rahona
Google Cloud Platform

6
Orchestration
Kubernetes

7
Fotodrafitrasa toy ny kaody (IaC)
Terraform, Ansible

Ny firafitry ny fizarana tsirairay

Mba hitazonana ny fitantarana mazava tsara, ny fizarana tsirairay dia faritana araka ny drafitra manaraka:

  • famaritana fohy momba ny teknolojia,
  • sanda ho an'ny fotodrafitrasa automatique,
  • fanoharana ny toetry ny fotodrafitrasa ankehitriny,
  • rohy mankany amin'ny fianarana,
  • fitaovana mitovy.

1. Manaova fitsapana eo an-toerana

Famaritana fohy momba ny teknolojia

Dingana fiomanana fotsiny izao hanaovana ny andrana demo eto an-toerana sy hanamarinana fa lany izy ireo. Ao amin'ny ampahany azo ampiharina, Node.js no ampiasaina, fa ny fiteny fandaharana sy ny sehatra dia tsy manan-danja ihany koa ary azonao ampiasaina ireo izay ampiasaina ao amin'ny orinasanao. 

Na izany aza, amin'ny maha-fitaovana automatique dia manoro hevitra aho ny hampiasa Selenium WebDriver ho an'ny sehatra tranonkala sy Appium ho an'ny sehatra Android, tsirairay avy, satria amin'ny dingana manaraka dia hampiasa sary Docker izay namboarina mba hiasa manokana amin'ireo fitaovana ireo isika. Ankoatr'izay, raha miresaka momba ny fepetra takian'ny asa, ireo fitaovana ireo no tena tadiavina indrindra amin'ny tsena.

Araka ny efa tsikaritrareo dia ny andrana web sy Android ihany no dinihinay. Indrisy fa tantara hafa tanteraka ny iOS (misaotra Apple). Mikasa ny hampiseho vahaolana sy fomba fanao mifandraika amin'ny IOS amin'ny faritra ho avy aho.

Sanda ho an'ny fotodrafitrasa automatique

Raha jerena amin'ny fotodrafitrasa, tsy manome lanja ny fandehanana eto an-toerana. Hamarino fotsiny fa mandeha amin'ny milina eo an-toerana amin'ny navigateur sy simulator eo an-toerana ny fitsapana. Fa na izany na tsy izany, dia tokony hiaingana izany.

Fanoharana ny amin’izao fotodrafitrasa izao

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Rohy hojerena

Fitaovana mitovy

  • izay fiteny fandaharana tianao miaraka amin'ny fitsapana Selenium/Appium;
  • misy fitsapana;
  • izay mpihazakazaka fitsapana.

2. Rafitra fanaraha-maso version (Git)

Famaritana fohy momba ny teknolojia

Tsy ho fanambarana lehibe ho an'iza na iza izany raha milaza aho fa ny fanaraha-maso ny dikan-teny dia ampahany lehibe amin'ny fampandrosoana, na ao amin'ny ekipa na tsirairay. Miorina amin'ny loharano isan-karazany, azo antoka ny milaza fa ny Git no solontena malaza indrindra. Ny rafitra fanaraha-maso ny dikan-teny dia manome tombony maro, toy ny fizarana kaody, fitehirizana dikan-teny, famerenana amin'ny sampana teo aloha, fanaraha-maso ny tantaran'ny tetikasa, ary backups. Tsy hiresaka amin'ny an-tsipiriany ny teboka tsirairay isika, satria azoko antoka fa efa mahazatra anao izany ary mampiasa azy io amin'ny asanao andavanandro. Fa raha tsy izany tampoka, dia manoro hevitra aho hampiato ny famakiana ity lahatsoratra ity ary hameno ity banga ity haingana araka izay azo atao.

Sanda ho an'ny fotodrafitrasa automatique

Ary eto ianao dia afaka mametraka fanontaniana mitombina: β€œNahoana izy no milaza amintsika momba an'i Git? Fantatry ny rehetra izany ary ampiasainy ho an'ny kaody fampandrosoana sy ho an'ny kaody fitsapana mandeha ho azy. " Ho marina tanteraka ianao, fa amin'ity lahatsoratra ity dia miresaka momba ny fotodrafitrasa isika ary ity fizarana ity dia toy ny fijerena ny fizarana 7: "Infrastructure as Code (IaC)". Aminay, midika izany fa ny fotodrafitrasa manontolo, anisan'izany ny fitsapana, dia voafaritra amin'ny endrika kaody, noho izany dia azontsika atao ihany koa ny mampihatra ny rafitra famoahana azy ary mahazo tombony mitovy amin'ny kaody fampandrosoana sy automatique.

Hojerentsika amin'ny antsipiriany bebe kokoa ny IaC ao amin'ny Dingana 7, fa na dia izao aza dia afaka manomboka mampiasa Git eo an-toerana ianao amin'ny famoronana tahiry eo an-toerana. Hiitatra ny sary lehibe rehefa manampy tahiry lavitra amin'ny fotodrafitrasa.

Fanoharana ny amin’izao fotodrafitrasa izao

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Rohy hojerena

Fitaovana mitovy

3. Containerization (Docker)

Famaritana fohy momba ny teknolojia

Mba hampisehoana ny fomba nanovan'ny containerization ny fitsipiky ny lalao, andao hiverina tany am-polony taona vitsivitsy. Tamin'izany fotoana izany dia nividy sy nampiasa milina mpizara ny olona mba hampandehanana fampiharana. Saingy amin'ny ankamaroan'ny tranga dia tsy fantatra mialoha ny loharanom-baovao ilaina. Vokatr'izany, nandany vola tamin'ny fividianana servisy lafo vidy sy matanjaka ny orinasa, saingy tsy nampiasaina tanteraka ny sasany tamin'izany fahaiza-manao izany.

Ny dingana manaraka amin'ny evolisiona dia milina virtoaly (VM), izay namaha ny olan'ny fandaniana vola amin'ny loharano tsy ampiasaina. Io teknΓ΄lΓ΄jia io dia nahafahana nifampitantana ireo rindranasa tsy miankina tao anatin'ny lohamilina iray ihany, nanome toerana mitoka-monina tanteraka. Saingy, indrisy, ny teknolojia rehetra dia manana ny tsy fahampiana. Ny fampandehanana VM dia mitaky rafitra fiasana feno, izay mandany CPU, RAM, fitahirizana ary, miankina amin'ny OS, ny vidin'ny fahazoan-dΓ lana dia mila raisina. Ireo anton-javatra ireo dia misy fiantraikany amin'ny hafainganam-pandehan'ny entana ary manasarotra ny fitaterana.

Ary tonga amin'ny containerization isika izao. Indray mandeha indray, ity teknolojia ity dia mamaha ny olana teo aloha, satria tsy mampiasa OS feno ny kaontenera, izay manafaka loharanon-karena be dia be ary manome vahaolana haingana sy malefaka ho an'ny portable.

Mazava ho azy fa tsy vaovao ny teknolojia containerization ary nampidirina voalohany tamin'ny faramparan'ny taona 70. Tamin'izany andro izany, be dia be ny fikarohana sy ny fivoarana ary ny fanandramana natao. Saingy i Docker no nampifanaraka an'io teknolojia io ary nahatonga azy ho mora azon'ny besinimaro. Amin'izao fotoana izao, rehefa miresaka momba ny kaontenera isika, amin'ny ankamaroan'ny tranga dia Docker no tiana holazaina. Rehefa miresaka momba ny container Docker isika dia midika hoe container Linux. Afaka mampiasa rafitra Windows sy macOS isika mba hampandehanana kaontenera, saingy zava-dehibe ny mahatakatra fa amin'ity tranga ity dia misy sosona fanampiny miseho. Ohatra, ny Docker amin'ny Mac dia mitantana kaontenera mangina ao anaty Linux VM maivana. Hiverina amin'ity lohahevitra ity isika rehefa miresaka momba ny fampandehanana ny emulators Android ao anaty kaontenera, ka eto dia misy nuance tena manan-danja tokony hodinihina amin'ny antsipiriany.

Sanda ho an'ny fotodrafitrasa automatique

Hitanay fa mangatsiaka ny containerization sy Docker. Andeha hojerentsika izany ao anatin'ny tontolon'ny automation, satria mila mamaha olana ny fitaovana na teknolojia rehetra. Andeha hojerentsika ireo olana miharihary amin'ny automatique fitsapana amin'ny tontolon'ny fitsapana UI:

  • be dia be ny fiankinan-doha rehefa mametraka Selenium ary indrindra Appium;
  • olana mifanaraka amin'ny dikan-teny navigateur, simulators ary mpamily;
  • tsy fahampian'ny toerana mitoka-monina ho an'ny navigateur/simulators, izay tena zava-dehibe ho an'ny hazakazaka parallΓ¨le;
  • Sarotra ny mitantana sy mitantana raha mila navigateur 10, 50, 100 na 1000 mihitsy aza ianao miaraka.

Saingy satria i Selenium no fitaovana automatique malaza indrindra ary Docker no fitaovana famandrihana malaza indrindra, dia tsy mahagaga raha nisy nanandrana nanambatra azy ireo hamorona fitaovana mahery vaika hamahana ireo olana voalaza etsy ambony. Andeha hodinihintsika amin'ny antsipiriany bebe kokoa ny vahaolana toy izany. 

Selenium grid amin'ny docker

Ity fitaovana ity no malaza indrindra amin'ny tontolon'ny Selenium amin'ny fampandehanana navigateur marobe amin'ny milina marobe ary mitantana azy ireo avy amin'ny foibe afovoany. Hanombohana dia mila misoratra anarana ampahany 2 farafahakeliny ianao: Hub sy Node(s). Hub dia node afovoany izay mandray ny fangatahana rehetra avy amin'ny fitsapana ary mizara izany amin'ny Nodes mety. Ho an'ny Node tsirairay dia azontsika atao ny manitsy config manokana, ohatra, amin'ny famaritana ny navigateur irina sy ny dikan-teny. Na izany aza, mbola mila mikarakara ny mpamily navigateur mifanentana isika ary mametraka azy ireo amin'ny Nodes tiana. Noho izany antony izany, ny Grid Selenium dia tsy ampiasaina amin'ny endriny madio, afa-tsy rehefa mila miasa amin'ny navigateur tsy azo apetraka amin'ny Linux OS. Ho an'ny tranga hafa rehetra, ny vahaolana mora sy marina dia ny fampiasana sary Docker hampandeha ny Selenium grid Hub sy Nodes. Ity fomba fiasa ity dia manamora ny fitantanana ny node, satria afaka misafidy ny sary ilaintsika miaraka amin'ireo dikan-teny mifanentana amin'ny navigateur sy mpamily efa napetraka.

Na dia eo aza ny fanehoan-kevitra ratsy momba ny fahamarinan-toerana, indrindra rehefa mihazakazaka Nodes marobe mifanitsy, ny Grid Selenium dia mbola fitaovana malaza indrindra amin'ny fampandehanana ny fitsapana Selenium mifanitsy. Zava-dehibe ny manamarika fa ny fanatsarana sy ny fanovana isan-karazany amin'ity fitaovana ity dia miseho tsy tapaka amin'ny open-source, izay miady amin'ny bottlenecks isan-karazany.

Selenoid ho an'ny tranonkala

Ity fitaovana ity dia fandrosoana eo amin'ny tontolon'ny Selenium satria miasa avy hatrany izy io ary nanamora ny fiainan'ny injeniera automatique maro. Voalohany indrindra, tsy fanovana hafa amin'ny grid Selenium izany. Fa kosa, namorona dikan-teny vaovao tanteraka an'ny Selenium Hub ao Golang ireo mpamorona, izay, miaraka amin'ny sary Docker maivana ho an'ny navigateur isan-karazany, dia nanome tosika ny fampandrosoana ny automatique fitsapana. Ankoatra izany, amin'ny tranga Selenium Grid, dia tsy maintsy mamaritra mialoha ny navigateur rehetra ilaina sy ny dikan'izy ireo, izay tsy olana rehefa miasa amin'ny navigateur tokana. Saingy raha ny momba ny navigateur tohanana marobe, Selenoid no vahaolana voalohany noho ny endri-javatra 'browser on demand' azy. Ny hany takina amintsika dia ny misintona ireo sary ilaina amin'ny navigateur mialoha ary manavao ny fisie fanamafisana izay ifandraisan'i Selenoid. Aorian'ny nahazoan'i Selenoid fangatahana avy amin'ny fitsapana, dia hanomboka ho azy ny fitoeran-javatra irina miaraka amin'ny navigateur irina. Rehefa tapitra ny fitsapana, dia handroaka ny kaontenera i Selenoid, ka hanafaka loharano ho an'ny fangatahana ho avy. Ity fomba fiasa ity dia manafoana tanteraka ny olana malaza amin'ny 'fanimbana node' izay matetika hitantsika ao amin'ny Selenium grid.

Saingy, indrisy, mbola tsy bala volafotsy ihany i Selenoid. Nahazo ny endri-javatra 'browser on demand' izahay, fa ny 'resources on demand' dia mbola tsy misy. Raha hampiasa ny Selenoid dia tsy maintsy apetraka amin'ny fitaovana ara-batana na amin'ny VM isika, izay midika fa tsy maintsy fantatsika mialoha hoe firy ny loharanon-karena tokony atokana. Heveriko fa tsy olana izany ho an'ny tetikasa madinika izay mihazakazaka navigateur 10, 20 na 30 mihitsy aza. Ahoana anefa raha mila 100, 500, 1000 na mihoatra? Tsy misy dikany ny fikojakojana sy fandoavana ireo loharanon-karena maro be foana. Ao amin'ny fizarana faha-5 sy faha-6 amin'ity lahatsoratra ity, dia hiresaka momba ny vahaolana izay ahafahanao manitatra, ka mampihena be ny vidin'ny orinasa.

Selenoid ho an'ny Android

Taorian'ny fahombiazan'ny Selenoid ho fitaovana automatique amin'ny tranonkala, dia naniry zavatra mitovy amin'ny Android ny olona. Ary nitranga izany - Navoaka niaraka tamin'ny fanohanan'ny Android i Selenoid. Avy amin'ny fomba fijerin'ny mpampiasa avo lenta, ny fitsipiky ny fiasana dia mitovy amin'ny automation amin'ny tranokala. Ny hany maha samy hafa dia ny hoe raha tokony ho fitoeran'ny navigateur, Selenoid no mitantana ny Android emulator container. Raha ny hevitro dia ity no fitaovana maimaim-poana mahery vaika indrindra amin'ny fanaovana fitiliana Android mifanitsy.

Tena tsy te hiresaka momba ny lafiny ratsy amin'ity fitaovana ity aho, satria tena tiako. Na izany aza, misy ny fatiantoka mitovy amin'izany izay mihatra amin'ny automation web ary mifandray amin'ny scaling. Ho fanampin'izany, mila miresaka momba ny famerana iray hafa izay mety hahagaga raha toa ka sambany vao mametraka ilay fitaovana isika. Mba hampandehanana sary Android dia mila milina ara-batana na VM miaraka amin'ny fanohanan'ny virtoaly misy nested. Ao amin'ny torolΓ lana momba ny fomba, dia asehoko ny fomba ahafahana mamela izany amin'ny Linux VM. Na izany aza, raha mpampiasa macOS ianao ary te-hametraka Selenoid eo an-toerana, dia tsy ho azo atao ny manao fitsapana Android. Saingy azonao atao foana ny mitantana Linux VM eo an-toerana miaraka amin'ny 'virtoaly virtoaly' voarindra ary mametraka an'i Selenoid ao anatiny.

Fanoharana ny amin’izao fotodrafitrasa izao

Ao anatin'ny tontolon'ity lahatsoratra ity dia hanampy fitaovana 2 izahay mba hanehoana ny fotodrafitrasa. Ireo dia Selenium grid ho an'ny andrana amin'ny tranonkala sy Selenoid ho an'ny Android fitsapana. Ao amin'ny lesona GitHub, hasehoko anao koa ny fomba fampiasana Selenoid hanaovana fitsapana amin'ny tranonkala. 

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Rohy hojerena

Fitaovana mitovy

  • Misy fitaovana fanamboarana container hafa, fa Docker no malaza indrindra. Raha te hanandrana zavatra hafa ianao, dia tadidio fa ny fitaovana norakofanay amin'ny fanaovana fitiliana Selenium mifanandrify dia tsy mandeha ivelan'ny boaty.  
  • Araka ny efa voalaza, dia misy fanovana maro ny Selenium grid, ohatra, Zalenium.

4.CI/CD

Famaritana fohy momba ny teknolojia

Ny fampiharana ny fampidirana mitohy dia malaza amin'ny fampandrosoana ary mitovy amin'ny rafitra fanaraha-maso ny dikan-teny. Na eo aza izany dia tsapako fa misy fisafotofotoana eo amin'ny voambolana. Amin'ity andalana ity dia tiako ny mamaritra ny fanovana 3 amin'ity teknolojia ity amin'ny fomba fijeriko. Ao amin'ny Internet ianao dia hahita lahatsoratra maro miaraka amin'ny fandikana samihafa, ary tena ara-dalΓ na raha tsy mitovy ny hevitrao. Ny zava-dehibe indrindra dia ny hoe mitovy pejy amin'ny mpiara-miasa aminao ianao.

Noho izany, misy teny 3: CI - Continuous Integration, CD - Continuous Delivery ary indray CD - Continuous Deployment. (Eto ambany aho dia hampiasa ireo teny ireo amin'ny teny anglisy). Ny fanovana tsirairay dia manampy dingana fanampiny maromaro amin'ny fantsona fampandrosoana anao. Fa ny teny mitohy (mitohy) no zava-dehibe indrindra. Amin'ity toe-javatra ity, dia midika zavatra mitranga hatrany am-piandohana ka hatramin'ny farany, tsy misy fanelingelenana na fandraisana an-tanana. Andeha hojerentsika ny CI & CD ary CD amin'ity toe-javatra ity.

  • Fampidirana mitohy io no dingana voalohan'ny evolisiona. Aorian'ny fandefasana kaody vaovao amin'ny mpizara dia manantena izahay fa hahazo valiny haingana fa mety ny fiovanay. Amin'ny ankapobeny, ny CI dia ahitana fitaovana famakafakana kaody static sy andrana API unit/anatiny. Izany dia ahafahantsika mahazo vaovao momba ny kaody ao anatin'ny segondra vitsy/minitra.
  • Fanaterana mitohy dia dingana mandroso kokoa izay anaovana andrana fampidirana/UI. Na izany aza, amin'ity dingana ity dia tsy mahazo valiny haingana toy ny amin'ny CI. Voalohany, maharitra ela ny fanatanterahana ireo karazana andrana ireo. Faharoa, alohan'ny handefasana azy dia tsy maintsy mametraka ny fanovana ataontsika amin'ny tontolon'ny fitsapana/sehatra. Ankoatr'izay, raha miresaka momba ny fampivoarana finday isika, dia misy dingana fanampiny hita mba hamoronana fananganana ny fampiharana.
  • Fametrahana tsy tapaka dia mihevitra fa avoaka ho azy ny fanovana ataontsika amin'ny famokarana raha toa ka nandalo tamin'ny dingana teo aloha ny fitsapana fanekena rehetra. Ho fanampin'izany, aorian'ny dingana famotsorana, azonao atao ny manamboatra dingana isan-karazany, toy ny fanaovana fitiliana setroka amin'ny famokarana sy ny fanangonana metrika mahaliana. Ny fandefasana mitohy dia azo atao raha tsy misy fandrakofana tsara amin'ny alΓ lan'ny fitsapana mandeha ho azy. Raha misy fandraisana an-tanana ilaina, anisan'izany ny fitiliana, dia tsy misy intsony izany Continuous (mitohy). Avy eo isika dia afaka milaza fa ny fantsona dia manaraka ny fampiharana ny Continuous Delivery ihany.

Sanda ho an'ny fotodrafitrasa automatique

Amin'ity fizarana ity, tokony hanazava aho fa rehefa miresaka momba ny fitsapana UI farany mankany amin'ny farany isika, dia midika izany fa tokony hametraka ny fanovana sy ny serivisy mifandraika amin'ny fitsapana tontolo iainana isika. Fampidirana Mitohy - tsy azo ampiharina amin'ity asa ity ny dingana ary tsy maintsy mikarakara ny fampiharana ny fanao Manatitra Mitohy farafaharatsiny isika. Ny fandefasana mitohy dia misy dikany ihany koa amin'ny tontolon'ny fitsapana UI raha toa ka hanatanteraka azy ireo amin'ny famokarana isika.

Ary alohan'ny hijerentsika ny fanoharana momba ny fiovan'ny maritrano dia te-hilaza teny vitsivitsy momba ny GitLab CI aho. Tsy toy ny fitaovana CI/CD hafa, ny GitLab dia manome tahiry lavitra sy endri-javatra fanampiny maro hafa. Noho izany, GitLab dia mihoatra noho ny CI. Tafiditra ao anatin'izany ny fitantanana ny kaody loharano, ny fitantanana Agile, ny fantsona CI/CD, ny fitaovana fandraketana ary ny fanangonana metrika ivelan'ny boaty. Ny rafitra GitLab dia ahitana ny Gitlab CI/CD sy ny GitLab Runner. Ity misy famaritana fohy avy amin'ny tranokala ofisialy:

Gitlab CI/CD dia fampiharana amin'ny tranonkala miaraka amin'ny API izay mitahiry ny toerany ao anaty tahiry, mitantana tetikasa/manorina ary manome interface tsara ho an'ny mpampiasa. GitLab Runner dia fampiharana izay manangana dingana. Azo apetraka misaraka izy io ary miasa miaraka amin'ny GitLab CI/CD amin'ny alalan'ny API. Ho an'ny fitsapana mandeha dia mila ohatra Gitlab sy Runner ianao.

Fanoharana ny amin’izao fotodrafitrasa izao

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Rohy hojerena

Fitaovana mitovy

5. Sehatra rahona

Famaritana fohy momba ny teknolojia

Ato amin'ity fizarana ity isika dia hiresaka momba ny fironana malaza antsoina hoe 'public clouds'. Na dia eo aza ny tombontsoa lehibe omen'ny teknolojia virtoaly sy containerization voalaza etsy ambony, dia mbola mila loharanon-karena informatika izahay. Ny orinasa dia mividy servisy lafo vidy na manofa foibe angon-drakitra, fa amin'ity tranga ity dia ilaina ny manao kajy (indraindray tsy mitombina) ny habetsahan'ny loharano ilaina, na hampiasa azy ireo 24/7 sy ho an'ny tanjona inona. Ohatra, mila mpizara mandeha XNUMX/XNUMX ny famokarana, saingy mila loharano mitovy amin'izany ve isika amin'ny fitsapana ivelan'ny ora fiasana? Miankina amin’ny karazana fitiliana atao koa izany. Ohatra iray ny fitsapana enta-mavesatra / adin-tsaina izay kasaina hatao mandritra ny ora tsy fiasana mba hahazoana valiny ny ampitso. Saingy azo antoka fa tsy ilaina ny fisian'ny mpizara XNUMX/XNUMX ho an'ny fitsapana mandeha ho azy farany ary indrindra fa tsy ho an'ny tontolo fitsapana amin'ny tanana. Ho an'ny toe-javatra toy izany, dia tsara ny mahazo loharanon-karena betsaka araka izay ilaina amin'ny fangatahana, mampiasa azy ireo, ary tsy mandoa vola rehefa tsy ilaina intsony. Ambonin'izany, dia tsara ny mandray azy ireo avy hatrany amin'ny fanaovana kitiho totozy vitsivitsy na fampandehanana script roa. Izany no ampiasain'ny rahona ho an'ny daholobe. Andeha hojerentsika ny famaritana:

β€œNy rahona ho an'ny daholobe dia faritana ho tolotra informatika atolotry ny mpanome antoko fahatelo amin'ny Internet ho an'ny daholobe, ka mahatonga azy ireo ho azon'izay te hampiasa na hividy azy ireo. Mety maimaim-poana izy ireo na amidy amin'ny fangatahana, mamela ny mpanjifa handoa vola isaky ny fampiasana ho an'ny tsingerin'ny CPU, fitahirizana, na bandwidth laniny. "

Misy ny fiheverana fa lafo ny rahona ho an'ny daholobe. Saingy ny hevi-dehiben'izy ireo dia ny fampihenana ny vidin'ny orinasa. Araka ny voalaza teo aloha, ny rahona ho an'ny daholobe dia ahafahanao mahazo loharanon-karena amin'ny fangatahana ary mandoa vola amin'ny fotoana hampiasanao azy ihany. Indraindray koa adinontsika fa mandray karama ny mpiasa, ary ny manam-pahaizana manokana dia loharano lafo. Tsy maintsy raisina fa ny rahona ho an'ny daholobe dia manamora kokoa ny fanohanan'ny fotodrafitrasa, izay ahafahan'ny injeniera hifantoka amin'ny asa lehibe kokoa. 

Sanda ho an'ny fotodrafitrasa automatique

Inona avy ireo loharanom-pitaovana manokana ilaintsika amin'ny fitsapana UI amin'ny farany? Amin'ny ankapobeny dia milina virtoaly na cluster ireo (hiresaka momba ny Kubernetes isika amin'ny fizarana manaraka) ho an'ny navigateur sy emulators. Arakaraky ny navigateur sy emulators maro no tiantsika hiarahana, ny CPU sy ny fitadidiana bebe kokoa ilaina ary ny vola tsy maintsy aloantsika amin'izany. Noho izany, ny rahona ho an'ny daholobe ao anatin'ny tontolon'ny automatique fitsapana dia ahafahantsika mampandeha navigateur/emulator marobe (100, 200, 1000...) amin'ny fangatahana, mahazo valim-panadinana haingana araka izay azo atao ary atsaharo ny fandoavana vola amin'ny harena be toy izany. hery. 

Ny mpamatsy rahona malaza indrindra dia Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Manome ohatra amin'ny fampiasana ny GCP ny torolalana amin'ny fomba fampiasana, fa amin'ny ankapobeny dia tsy maninona izay ampiasainao amin'ny asa automatique. Izy rehetra dia manome fonctionnaire mitovy. Amin'ny ankapobeny, mba hisafidianana mpamatsy iray, ny fitantanana dia mifantoka amin'ny fotodrafitrasa ankapobeny sy ny fepetra takian'ny orinasa, izay mihoatra ny sahan'ity lahatsoratra ity. Ho an'ny injeniera automatique, ho mahaliana kokoa ny fampitahana ny fampiasana ny mpanome rahona amin'ny fampiasana sehatra rahona manokana ho an'ny tanjona fitsapana, toy ny Sauce Labs, BrowserStack, BitBar, sy ny sisa. Dia aleo atao koa! Raha ny hevitro dia Sauce Labs no toeram-piompiana fitiliana rahona malaza indrindra, ka izany no antony nampiasako azy ho fampitahana. 

GCP vs Sauce Labs ho an'ny tanjona automatique:

Alao sary an-tsaina fa mila manao fitiliana tranonkala 8 sy fitsapana Android 8 miaraka isika. Amin'izany dia hampiasa GCP izahay ary hampandeha milina virtoaly 2 miaraka amin'i Selenoid. Amin'ny voalohany dia hanangana kaontenera 8 miaraka amin'ny navigateur izahay. Amin'ny faharoa dia misy kaontenera 8 misy emulators. Andeha hojerentsika ny vidiny:  

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany
Mba hampandehanana kaontenera iray miaraka amin'ny Chrome dia mila n1-fenitra-1 fiara. Raha ny Android dia ho izany n1-fenitra-4 ho an'ny emulator iray. Raha ny marina, ny fomba mora kokoa sy mora kokoa dia ny fametrahana ny soatoavin'ny mpampiasa manokana ho an'ny CPU / Memory, saingy amin'izao fotoana izao dia tsy zava-dehibe izany raha ampitahaina amin'ny Sauce Labs.

Ary ireto ny karama amin'ny fampiasana Sauce Labs:

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany
Mino aho fa efa nahatsikaritra ny fahasamihafana ianao, saingy mbola hanome latabatra misy kajy ho an'ny asantsika aho:

Loharano ilaina
Montly
Fotoana fiasana(8 ora maraina - 8 ora alina)
Fotoana fiasana+ Azo alaina mialoha

GCP ho an'ny tranonkala
n1-fenitra-1 x 8 = n1-fenitra-8
$194.18
23 andro * 12h * 0.38 = $104.88 
23 andro * 12h * 0.08 = $22.08

Sauce Labs ho an'ny Internet
Fitsapana parallèle virtoaly Cloud8
$1.559
-
-

GCP ho an'ny Android
n1-fenitra-4 x 8: n1-fenitra-16
$776.72
23 andro * 12h * 1.52 = $419.52 
23 andro * 12h * 0.32 = $88.32

Sauce Labs ho an'ny Android
Fitsapana mifanitsy amin'ny Real Device Cloud 8
$1.999
-
-

Araka ny hitanao dia lehibe ny fahasamihafana amin'ny vidiny, indrindra raha manao fitsapana mandritra ny ora roa ambin'ny folo ora fiasana fotsiny ianao. Saingy azonao atao ny manapaka bebe kokoa ny fandaniana raha mampiasa milina mialoha ianao. Inona ity?

Ny VM azo amboarina dia ohatra iray ahafahanao mamorona sy mandeha amin'ny vidiny ambany kokoa noho ny tranga mahazatra. Na izany aza, ny Compute Engine dia mety hamarana (mialoha) ireo tranga ireo raha mitaky fidirana amin'ireo loharano ireo amin'ny asa hafa. Ny tranga azo alaina dia ny fahafahan'ny Compute Engine tafahoatra, noho izany dia miovaova arakaraka ny fampiasana azy ny fisiany.

Raha mandefitra amin'ny lesoka ny fampiharanao ary mahatanty ny mety hisian'ny preemptations, dia mety hampihena be ny vidin'ny Compute Engine anao ny tranga azo alaina. Ohatra, ny asa fanodinana batch dia afaka mandeha amin'ny tranga azo alaina. Raha tapitra mandritra ny fanodinana ny sasany amin'ireo tranga ireo, dia miadana ny asa fa tsy mijanona tanteraka. Ny tranga azo alaina dia mamita ny asa fanodinana batch anao nefa tsy mametraka enta-mavesatra fanampiny amin'ny tranga misy anao ary tsy mila mandoa vola feno ho an'ny tranga mahazatra fanampiny.

Ary mbola tsy tapitra izany! Raha ny marina, azoko antoka fa tsy misy olona manao fitsapana mandritra ny 12 ora tsy misy fiatoana. Ary raha izany dia azonao atao ny manomboka sy manakana ny milina virtoaly rehefa tsy ilaina izany. Mety hahena ho 6 ora isan'andro ny tena fotoana fampiasana. Dia hihena ho $11 isam-bolana ho an'ny navigateur 8 ny fandoavam-bola amin'ny tontolon'ny asantsika. Tsy mahafinaritra ve izany? Saingy miaraka amin'ny milina azo alaina dia tsy maintsy mitandrina sy miomana amin'ny fahatapahana sy ny tsy fandriam-pahalemana isika, na dia azo omena sy karakaraina amin'ny rindrambaiko aza ireo toe-javatra ireo. Mendrika izany!

Saingy tsy miteny mihitsy aho hoe 'aza mampiasa toeram-piompiana fitsapana rahona'. Manana tombony maromaro izy ireo. Voalohany indrindra, tsy milina virtoaly fotsiny izany, fa vahaolana automatique fitsapana feno miaraka amina andiana fiasa ivelan'ny boaty: fidirana lavitra, logs, pikantsary, firaketana horonantsary, navigateur isan-karazany ary fitaovana finday ara-batana. Amin'ny toe-javatra maro dia mety ho safidy chic tena ilaina izany. Ny sehatra fitsapana dia tena ilaina indrindra amin'ny automation IOS, raha ny rahona ho an'ny daholobe ihany no afaka manolotra rafitra Linux/Windows. Saingy hiresaka momba ny iOS isika amin'ny lahatsoratra manaraka. Manoro hevitra aho hijery foana ny toe-javatra ary manomboka amin'ny asa: amin'ny tranga sasany dia mora kokoa sy mahomby kokoa ny mampiasa rahona ho an'ny daholobe, ary amin'ny hafa dia tena mendrika ny vola lany ny sehatra fitsapana.

Fanoharana ny amin’izao fotodrafitrasa izao

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Rohy hojerena

Fitaovana mitovy:

6. Orkestra

Famaritana fohy momba ny teknolojia

Manana vaovao tsara aho - efa ho tapitra ny lahatsoratra! Amin'izao fotoana izao, ny fotodrafitrasa automatique dia ahitana andrana amin'ny tranonkala sy Android, izay ataonay amin'ny alΓ lan'ny GitLab CI mifanitsy, amin'ny fampiasana fitaovana azo ampiasaina amin'ny Docker: Selenium grid sy Selenoid. Ankoatra izany, mampiasa milina virtoaly noforonina tamin'ny GCP izahay mba hampiantrano kaontenera misy navigateur sy emulators. Mba hampihenana ny fandaniana dia atombotsika ireo milina virtoaly ireo raha tsy misy fangatahana ary atsahatra rehefa tsy misy ny fitiliana. Misy zavatra hafa afaka manatsara ny fotodrafitrasa eto amintsika ve? Eny ny valiny! Hihaona amin'i Kubernetes (K8s)!

Voalohany, andeha hojerentsika ny fifandraisan'ny teny hoe orkestra, cluster, ary Kubernetes. Amin'ny ambaratonga ambony, ny orkestra dia ny rafitra mametraka sy mitantana fampiharana. Ho an'ny automatique fitsapana, ny rindranasa toy izany dia Selenium grid sy Selenoid. Docker sy K8 dia mifameno. Ny voalohany dia ampiasaina amin'ny fametrahana fampiharana, ny faharoa ho an'ny orkestra. Ny K8s kosa indray dia cluster. Ny asan'ny cluster dia ny fampiasana VM ho Nodes, izay ahafahanao mametraka fiasa, programa ary serivisy isan-karazany ao anatin'ny mpizara iray (cluster). Raha toa ka tsy mahomby ny iray amin'ireo Nodes dia haka ny Nodes hafa, izay miantoka ny fampandehanana tsy tapaka ny fampiharana ataontsika. Ho fanampin'izany, ny K8s dia manana fiasa manan-danja mifandraika amin'ny scaling, noho izany dia mahazo avy hatrany ny habetsaky ny loharanon-karena mifototra amin'ny entana sy ny fetra.

Raha ny marina, ny fametrahana an-tΓ nana ny Kubernetes hatrany am-boalohany dia tsy asa madinidinika mihitsy. Hamela rohy mankany amin'ny tari-dalana malaza "Kubernetes The Hard Way" aho ary raha liana ianao dia afaka mampihatra izany. Saingy, soa ihany, misy fomba sy fitaovana hafa. Ny fomba tsotra indrindra dia ny fampiasana Google Kubernetes Engine (GKE) amin'ny GCP, izay ahafahanao mahazo cluster efa vita amin'ny tsindry vitsivitsy. Manoro hevitra ny hampiasa an'io fomba io aho mba hanombohana fianarana, satria hamela anao hifantoka amin'ny fianarana ny fampiasana ny K8 ho an'ny asanao fa tsy hianatra ny fomba tokony hampifangaroana ireo singa anatiny. 

Sanda ho an'ny fotodrafitrasa automatique

Andeha hojerentsika ireo endri-javatra manan-danja vitsivitsy omen'ny K8s:

  • fametrahana fampiharana: mampiasa kluster maromaro fa tsy VM;
  • dynamic scaling: mampihena ny vidin'ny loharanon-karena izay ampiasaina raha tsy amin'ny fangatahana;
  • fanasitranana tena: fanarenana mandeha ho azy ny pods (vokatry ny famerenana ny kaontenera koa);
  • famoahana fanavaozana sy famerenana ny fanovana tsy misy fiatoana: tsy manapaka ny asan'ny mpampiasa ankehitriny ny fanavaozana fitaovana, navigateur ary emulators

Saingy mbola tsy bala volafotsy ny K8s. Mba hahatakarana ny tombony sy ny fetra rehetra amin'ny tontolon'ny fitaovana dinihina (Selenium grid, Selenoid), dia hiresaka fohy momba ny firafitry ny K8s isika. Ny Cluster dia misy karazana Nodes roa: Master Nodes sy Workers Nodes. Ny Master Nodes dia tompon'andraikitra amin'ny fanapahan-kevitra momba ny fitantanana, ny fametrahana ary ny fandaharam-potoana. Ny node mpiasa no toerana nanombohana ny fampiharana. Ny nodes koa dia misy tontolo iainan'ny kaontenera. Amin'ity tranga ity dia Docker, izay tompon'andraikitra amin'ny hetsika mifandraika amin'ny container. Misy ihany koa anefa ny vahaolana hafa, ohatra containerd. Zava-dehibe ny mahatakatra fa tsy mihatra mivantana amin'ny kaontenera ny scaling na ny fanasitranana tena. Izany dia tanterahina amin'ny alalan'ny fanampiana / fampihenana ny isan'ny pods, izay indray misy fitoeran-javatra (matetika fitoeran-javatra iray isaky ny pod, fa miankina amin'ny asa dia mety ho bebe kokoa). Ny ambaratonga avo lenta dia misy node mpiasa, izay misy pods ao anatiny, izay atsangana ny kaontenera.

Ny endri-javatra scaling dia manan-danja ary azo ampiharina amin'ny node roa ao anatin'ny kluster node-dobo sy pods ao anaty node. Misy karazana scaling 2 mihatra amin'ny nodes sy pods. Ny karazany voalohany dia marindrano - mitranga amin'ny fampitomboana ny isan'ny nodes/pods ny scaling. Ity karazana ity dia tiana kokoa. Ny karazana faharoa dia araka izany, mitsangana. Ny scaling dia atao amin'ny fampitomboana ny haben'ny nodes/pods, fa tsy ny isany.

Andeha hojerentsika ny fitaovantsika amin'ny tontolon'ny teny etsy ambony.

Selenium Grid

Araka ny voalaza tetsy aloha, ny Selenium grid dia fitaovana malaza, ary tsy mahagaga raha efa voatahiry izy io. Noho izany, tsy mahagaga raha azo apetraka ao amin'ny K8s ny grid Selenium. Ohatra iray amin'ny fomba hanaovana izany dia hita ao amin'ny tahiry ofisialy K8s. Toy ny mahazatra, apetako rohy any amin'ny faran'ny fizarana. Ho fanampin'izany, ny torolΓ lana momba ny fomba dia mampiseho ny fomba hanaovana izany amin'ny Terraform. Misy ihany koa ny toromarika momba ny fomba hanesorana ny isan'ny pods izay misy fitoeran'ny navigateur. Saingy ny fiasan'ny scaling mandeha ho azy amin'ny tontolon'ny K8s dia mbola tsy asa mazava. Tsy nahita tari-dalana na torohevitra azo ampiharina aho, rehefa nanomboka nianatra. Taorian'ny fandalinana sy fanandramana maromaro niaraka tamin'ny fanohanan'ny ekipan'ny DevOps, dia nisafidy ny fomba hananganana kaontenera miaraka amin'ireo navigateur ilaina ao anaty pod iray izahay, izay hita ao anatin'ny node mpiasa iray. Ity fomba ity dia mamela antsika hampihatra ny paikadin'ny scaling marindrano ny nodes amin'ny fampitomboana ny isany. Manantena aho fa hiova izany amin'ny ho avy ary hahita famaritana bebe kokoa momba ny fomba fiasa tsara kokoa sy vahaolana efa vita, indrindra taorian'ny famoahana ny Selenium grid 4 miaraka amin'ny rafitra anatiny niova.

Selenoid:

Ny fametrahana Selenoid ao amin'ny K8s no fahadisoam-panantenana lehibe indrindra amin'izao fotoana izao. Tsy mifanaraka izy ireo. Amin'ny teoria dia afaka manangana fitoeran-javatra Selenoid ao anaty pod isika, fa rehefa manomboka mamoaka container miaraka amin'ny navigateur i Selenoid dia mbola ao anatin'ny pod iray ihany izy ireo. Izany dia mahatonga ny scaling ho tsy azo atao ary, vokatr'izany, ny asan'ny Selenoid ao anaty cluster dia tsy hitovy amin'ny asa ao anaty milina virtoaly. Faran'ny tantara.

Moon:

Ny fahafantarana an'io bottleneck io rehefa niara-niasa tamin'i Selenoid, dia namoaka fitaovana mahery vaika antsoina hoe Moon ny mpamorona. Ity fitaovana ity dia natao tany am-boalohany mba hiara-miasa amin'ny Kubernetes ary, vokatr'izany, dia azo ampiasaina ary tokony hampiasaina ny endri-javatra autoscaling. Ambonin'izany, lazaiko fa amin'izao fotoana izao irery ihany fitaovana ao amin'ny tontolon'ny Selenium, izay manana fanohanan'ny kluster K8 avy ao anaty boaty (tsy misy intsony, jereo ny fitaovana manaraka ). Ny endri-javatra manan-danja amin'ny Moon izay manome izany fanohanana izany dia: 

Tsy misy fanjakana tanteraka. Selenoid dia mitahiry fampahafantarana fitadidiana momba ny fivorian'ny navigateur amin'izao fotoana izao. Raha noho ny antony iray dia mianjera ny fizotrany - dia very ny fotoam-pivoriana rehetra. Ny Moon dia mifanohitra amin'izany dia tsy manana fanjakana anatiny ary azo averina amin'ny foibe angona. Mbola velona ny fotoam-pivezivezena na dia midina aza ny kopia iray na maromaro.

Noho izany, vahaolana tsara ny Moon, saingy misy olana iray: tsy maimaim-poana izany. Ny vidiny dia miankina amin'ny isan'ny fivoriana. Afaka manao fivoriana 0-4 maimaim-poana ihany ianao, izay tsy dia ilaina loatra. Saingy, manomboka amin'ny fivoriana fahadimy dia tsy maintsy mandoa $5 ianao isaky ny tsirairay. Ny toe-javatra dia mety tsy mitovy amin'ny orinasa tsirairay, fa amin'ny tranga misy antsika, ny fampiasana Moon dia tsy misy dikany. Araka ny efa nolazaiko tetsy ambony dia afaka mitantana VM miaraka amin'ny Selenium Grid isika raha ilaina na mampitombo ny isan'ny Nodes ao amin'ny cluster. Ho an'ny fantsona iray eo ho eo, dia manomboka navigateur 500 izahay ary manakana ny loharano rehetra rehefa vita ny fitsapana. Raha nampiasa Moon izahay dia tsy maintsy mandoa fanampiny 500 x 5 = $2500 isam-bolana, na impiry izahay no manao fitsapana. Averiko indray, tsy miteny aho hoe aza mampiasa Moon. Ho an'ny asanao dia mety ho vahaolana tena ilaina izany, ohatra, raha manana tetikasa / ekipa maro ao amin'ny fikambananao ianao ary mila vondron'olona iraisana lehibe ho an'ny rehetra. Toy ny mahazatra, mamela rohy aho amin'ny farany ary manoro hevitra ny hanao ny kajikajy ilaina rehetra amin'ny tontolon'ny asanao.

Callisto: (Attention! Tsy ao amin'ny lahatsoratra tany am-boalohany izany ary ao amin'ny fandikan-teny Rosiana ihany no voarakitra)

Araka ny nolazaiko dia fitaovana malaza be ny Selenium, ary mivoatra haingana ny sehatry ny IT. Raha mbola niasa tamin'ny fandikan-teny aho, dia nisy fitaovana vaovao mampanantena antsoina hoe Callisto niseho tao amin'ny tranonkala (hello Cypress sy ireo mpamono Selenium hafa). Izy io dia miasa miaraka amin'ny K8 ary mamela anao hampandeha ny kaontenera Selenoid ao anaty pods, zaraina manerana ny Nodes. Ny zava-drehetra dia miasa ivelan'ny boaty, anisan'izany ny autoscaling. Fantastic, fa mila andrana. Efa nahavita nampiasa ity fitaovana ity aho ary nanao andrana maromaro. Saingy aloha loatra ny manatsoaka hevitra, rehefa nahazo valiny lavitra, angamba hanao famerenana amin'ny lahatsoratra ho avy aho. Amin'izao fotoana izao dia rohy ho an'ny fikarohana tsy miankina ihany no avelako.  

Fanoharana ny amin’izao fotodrafitrasa izao

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Rohy hojerena

Fitaovana mitovy

7. Fotodrafitrasa toy ny Code (IaC)

Famaritana fohy momba ny teknolojia

Ary tonga amin'ny fizarana farany isika izao. Amin'ny ankapobeny, io teknolojia sy asa mifandraika amin'izany dia tsy andraikitry ny injeniera automatique. Ary misy antony mahatonga izany. Voalohany, ao amin'ny fikambanana maro, ny olan'ny fotodrafitrasa dia eo ambany fifehezan'ny departemanta DevOps ary ny ekipan'ny fampandrosoana dia tsy dia miraharaha izay mahatonga ny fantsona sy ny fomba tokony hanohanana ny zava-drehetra mifandray aminy. Faharoa, tsorina fa mbola tsy eken’ny orinasa maro ny fampiharana ny Infrastructure as Code (IaC). Saingy tena lasa fironana malaza izy io ary zava-dehibe ny manandrana mandray anjara amin'ny dingana, fomba fiasa ary fitaovana mifandraika amin'izany. Na fara faharatsiny, mahareta hatrany.

Andeha isika hanomboka amin'ny antony manosika hampiasa io fomba io. Efa niresaka izahay fa raha te hanao fitsapana ao amin'ny GitlabCI, dia mila farafahakeliny ny loharanon-karena mba hampandehanana ny Gitlab Runner. Ary mba hampandehanana kaontenera misy navigateur/emulators dia mila mamandrika VM na cluster isika. Ho fanampin'ny loharanom-panandramana, dia mila fahaiza-manao lehibe isika hanohanana ny fampandrosoana, ny filaharana, ny tontolon'ny famokarana, izay ahitana ihany koa ny angon-drakitra, ny fandaharam-potoana mandeha ho azy, ny fandrindrana ny tambajotra, ny mpifandanja entana, ny zon'ny mpampiasa, sy ny sisa. Ny olana lehibe dia ny ezaka ilaina hanohanana izany rehetra izany. Misy fomba maro ahafahantsika manova sy mamoaka fanavaozana. Ohatra, ao anatin'ny tontolon'ny GCP, afaka mampiasa ny console UI amin'ny navigateur isika ary manao ny hetsika rehetra amin'ny fipihana bokotra. Ny safidy hafa dia ny fampiasana antso API hifaneraserana amin'ireo sampan-draharaha rahona, na mampiasa ny fampiasa andalana baiko gcloud hanatanterahana ireo fanodinkodinana irina. Saingy miaraka amin'ireo sampana sy singa fotodrafitrasa maro be dia lasa sarotra na tsy azo atao mihitsy ny manao ny asa rehetra amin'ny tanana. Ambonin'izany, tsy voafehy avokoa ireo asa tanana rehetra ireo. Tsy afaka manolotra azy ireo hojerena alohan'ny hamonoana azy izahay, mampiasa rafitra fanaraha-maso ny dikan-teny, ary mamerina haingana ireo fanovana nitarika ny zava-nitranga. Mba hamahana ny olana toy izany, ny injeniera dia namorona sy namorona automatique bash/shell script, izay tsy dia tsara kokoa noho ny fomba teo aloha, satria tsy mora ny mamaky haingana, mahazo, mitazona ary manova amin'ny fomba fiasa.

Amin'ity lahatsoratra ity sy ny fomba fitarihana dia mampiasa fitaovana 2 mifandraika amin'ny fanao IaC aho. Ireo dia Terraform sy Ansible. Ny olona sasany dia mino fa tsy misy dikany ny fampiasana azy ireo amin'ny fotoana mitovy, satria mitovy ny fiasany ary azo ovaina. Saingy ny zava-misy dia ny voalohany dia nomena asa hafa tanteraka izy ireo. Ary ny zava-misy fa tokony hifameno ireo fitaovana ireo dia nohamafisina tamin'ny famelabelarana iombonana nataon'ireo mpamorona misolo tena ny HashiCorp sy RedHat. Ny fahasamihafan'ny foto-kevitra dia ny Terraform dia fitaovana famatsiana hitantana ny lohamilina. Raha ny Ansible dia fitaovana fitantanana fanamafisana izay ny asany dia ny mametraka, manamboatra ary mitantana rindrambaiko amin'ireo lohamilina ireo.

Ny endri-javatra manan-danja iray hafa mampiavaka an'ireo fitaovana ireo dia ny fomba fanoratana. Tsy sahala amin'ny bash sy Ansible, Terraform dia mampiasa fomba fanambarana mifototra amin'ny famaritana ny toetry ny farany tiana ho tratrarina vokatry ny famonoana. Ohatra, raha hamorona VM 10 isika ary hampihatra ny fanovana amin'ny alΓ lan'ny Terraform, dia hahazo VM 10 isika. Raha ataontsika indray ilay script dia tsy hisy na inona na inona hitranga satria efa manana VM 10 isika, ary fantatry ny Terraform izany satria mitahiry ny toetry ny fotodrafitrasa amin'izao fotoana izao ao anaty rakitra fanjakana. Saingy mampiasa fomba fiasa i Ansible ary, raha angatahinao hamorona VM 10, dia amin'ny fandefasana voalohany dia hahazo VM 10 isika, mitovy amin'ny Terraform. Saingy aorian'ny fanombohana indray dia efa manana VM 20 isika. Ity no fahasamihafana lehibe. Amin'ny fomba fiasa, tsy mitahiry ny fanjakana ankehitriny isika ary mamaritra fotsiny ny filaharan'ireo dingana tsy maintsy atao. Mazava ho azy fa afaka miatrika toe-javatra isan-karazany isika, manampy fisavana maromaro momba ny fisian'ny loharanon-karena sy ny fanjakana ankehitriny, saingy tsy misy dikany ny mandany fotoana sy ezaka amin'ny fifehezana io lojika io. Ankoatra izany, izany dia mampitombo ny mety ho fahadisoana. 

Raha fintinina ireo rehetra voalaza etsy ambony ireo dia azontsika atao ny manatsoaka hevitra fa ny Terraform sy ny fanamarihana fanambarana dia fitaovana mety kokoa amin'ny fanomezana serivisy. Saingy tsara kokoa ny manolotra ny asan'ny fitantanana ny fanamafisana amin'ny Ansible. Miaraka amin'izany, andeha hojerentsika ireo tranga fampiasa amin'ny tontolon'ny automatique.

Sanda ho an'ny fotodrafitrasa automatique

Ny hany zava-dehibe tokony ho takatra eto dia ny fotodrafitrasa automatique fitsapana dia tokony hoheverina ho ampahany amin'ny fotodrafitrasa orinasa iray manontolo. Midika izany fa ny fomba IaC rehetra dia tsy maintsy ampiharina maneran-tany amin'ny loharanon'ny fikambanana manontolo. Iza no tompon'andraikitra amin'izany dia miankina amin'ny fizotranao. Ny ekipa DevOps dia efa za-draharaha kokoa amin'ireo olana ireo, hitan'izy ireo ny sary manontolo momba ny zava-mitranga. Na izany aza, ny injeniera QA dia mandray anjara bebe kokoa amin'ny dingan'ny fananganana automation sy ny firafitry ny fantsona, izay ahafahan'izy ireo mahita tsara kokoa ny fanovana rehetra ilaina sy ny fahafahana manatsara. Ny safidy tsara indrindra dia ny miara-miasa, mifanakalo fahalalana sy hevitra mba hahazoana ny vokatra andrasana. 

Ireto misy ohatra vitsivitsy amin'ny fampiasana Terraform sy Ansible amin'ny tontolon'ny automatique fitsapana sy ireo fitaovana noresahinay teo aloha:

1. Farito ny toetra sy ny masontsivana ilaina amin'ny VM sy ny cluster mampiasa Terraform.

2. Ampiasao ny Ansible, apetraho ireo fitaovana ilaina amin'ny fitsapana: docker, Selenoid, Selenium Grid ary alaivo ny dikan-teny ilaina amin'ny navigateur/emulators.

3. Ampiasao ny Terraform, farito ny toetran'ny VM izay hanombohan'ny GitLab Runner.

4. Ampidiro ny GitLab Runner sy ny fitaovana ilaina miaraka amin'ny Ansible, apetraho ny fikandrana sy ny fanamafisana.

Fanoharana ny amin’izao fotodrafitrasa izao

Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Rohy hojerena:

Fitaovana mitovy

Aleo fintinina!

dingana
teknolojia
Tools
Sanda ho an'ny fotodrafitrasa automatique

1
Hazakazaka eo an-toerana
Node.js, Selenium, Appium

  • Ny fitaovana malaza indrindra ho an'ny tranonkala sy finday
  • Manohana fiteny sy sehatra maro (anisan'izany ny Node.js)

2
Rafitra fanaraha-maso version 
git

  • Tombontsoa mitovy amin'ny kaody fampandrosoana

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

  • Mandeha fitsapana mifanitsy
  • Tontolo mitoka-monina
  • Fanavaozana dikan-teny tsotra sy mora azo
  • Atsaharo amin'ny fomba mavitrika ny loharanon-karena tsy ampiasaina
  • Miorina mora

4
CI/CD
Gitlab CI

  • Mitsapa ny ampahany amin'ny fantsona
  • Feedback haingana
  • Fahitana ho an'ny orinasa / ekipa manontolo

5
Sehatra rahona
Google Cloud Platform

  • Loharano amin'ny fangatahana (tsy mandoa raha ilaina)
  • Mora ny mitantana sy manavao
  • Ny fahitana sy ny fanaraha-maso ny loharano rehetra

6
Orchestration
Kubernetes
Ao anatin'ny tontolon'ny container misy navigateur/emulators ao anaty pods:

  • Fanamafisana / fanivanana mandeha ho azy
  • Manasitrana tena
  • Fanavaozana sy famerenana tsy misy fahatapahana

7
Fotodrafitrasa toy ny kaody (IaC)
Terraform, Ansible

  • Tombontsoa mitovy amin'ny fotodrafitrasa fampandrosoana
  • Ny tombony rehetra amin'ny famoahana code
  • Mora ny manao fanovana sy fikojakojana
  • mandeha ho azy tanteraka

Sarintanin'ny sarintany: fivoaran'ny fotodrafitrasa

dingana 1: eo an-toerana
Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

dingana 2: VCS
Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

dingana 3: Containerization 
Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

dingana 4: CI/CD 
Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

dingana5: Cloud Platforms
Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

dingana 6: Orkestra
Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

dingana 7: IaC
Ny fitaovana DevOps dia tsy natao ho an'ny DevOps ihany. Ny dingan'ny fananganana fotodrafitrasa automatique andrana hatrany am-boalohany

Inona ny manaraka?

Noho izany, ity no faran'ny lahatsoratra. Fa ho fehiny dia te-hametraka fifanarahana aminareo aho.

Avy eo anilanao
Araka ny nolazaiko teo am-piandohana, tiako ho azo ampiasaina ny lahatsoratra ary hanampy anao hampihatra ny fahalalana azo amin'ny asa tena izy. ampiako indray rohy mankany amin'ny torolΓ lana azo ampiharina.

Saingy na dia aorian'izany aza, aza mijanona, manao fanazaran-tena, mandalina rohy sy boky mifandraika amin'izany, fantaro ny fomba fiasa ao amin'ny orinasanao, mitadiava toerana azo hatsaraina ary mandray anjara amin'izany. Mirary anao ho tsara vintana!

Avy eo anilako

Hitanao avy amin'ny lohateny fa io no ampahany voalohany. Na dia eo aza ny zava-misy fa tena lehibe, dia mbola tsy voaresaka eto ny lohahevitra manan-danja. Ao amin'ny fizarana faharoa, mikasa ny hijery fotodrafitrasa automatique amin'ny tontolon'ny IOS aho. Noho ny fameperan'i Apple amin'ny fampandehanana simulator iOS amin'ny rafitra macOS ihany, dia tery ny vahaolanay. Ohatra, tsy afaka mampiasa Docker izahay hampandehanana ny simulator na rahona ho an'ny daholobe mba hampandehanana milina virtoaly. Saingy tsy midika izany fa tsy misy safidy hafa. Hiezaka aho hanome anao ny vaovao farany amin'ny vahaolana mandroso sy fitaovana maoderina!

Ary koa, tsy niresaka lohahevitra lehibe mifandraika amin'ny fanaraha-maso aho. Ao amin'ny Fizarana faha-3 aho dia hijery ireo fitaovana fanaraha-maso fotodrafitrasa malaza indrindra sy ny angona sy ny metrika hodinihina.

Ary farany. Amin'ny ho avy dia mikasa ny hamoaka fampianarana video momba ny fananganana fotodrafitrasa fitsapana sy fitaovana malaza aho. Amin'izao fotoana izao dia misy fampianarana sy lahateny vitsivitsy momba ny DevOps amin'ny Internet, fa ny fitaovana rehetra dia aseho amin'ny sehatry ny fampandrosoana, fa tsy ny automatique fitsapana. Amin'ity olana ity dia tena mila valiny aho raha hahaliana sy ho sarobidy ho an'ny vondron'ireo mpanandrana sy injeniera automatique ny fampianarana toy izany. Misaotra mialoha!

Source: www.habr.com

Add a comment