Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Kashi na 1: Yanar Gizo/Android

Примечание: wannan labarin fassara ne zuwa Rashanci na ainihin labarin "Kayan aikin DevOps ba na DevOps ba ne kawai. "Gina gwajin kayan aikin atomatik daga karce." Koyaya, duk zane-zane, hanyoyin haɗin gwiwa, ƙididdiga da sharuɗɗa ana kiyaye su a cikin ainihin yaren don guje wa gurbata ma'anar lokacin da aka fassara su zuwa Rashanci. Ina yi muku farin ciki da karatu!

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

A halin yanzu, ƙwararrun DevOps shine ɗayan mafi yawan buƙata a cikin masana'antar IT. Idan ka buɗe shahararrun wuraren neman aikin kuma ka tace ta albashi, za ka ga cewa ayyukan da ke da alaƙa da DevOps sun kasance a saman jerin. Koyaya, yana da mahimmanci a fahimci cewa wannan galibi yana nufin matsayin 'Babba', wanda ke nuna cewa ɗan takarar yana da babban matakin ƙwarewa, ilimin fasaha da kayan aiki. Wannan kuma ya zo tare da babban nauyin alhakin da ke tattare da aikin samar da kayan aiki ba tare da katsewa ba. Koyaya, mun fara manta menene DevOps. Da farko, ba wani takamaiman mutum ne ko sashe ba. Idan muka nemi ma’anar wannan kalma, za mu sami sunaye masu kyau da madaidaici, kamar su hanya, ayyuka, falsafar al’adu, rukuni na ra’ayoyi, da sauransu.

Ƙwarewa na shine injiniyan sarrafa kansa na gwaji (injinin QA automation), amma na yi imanin cewa bai kamata a haɗa shi ba kawai tare da rubuta gwaje-gwaje na atomatik ko haɓaka tsarin gine-ginen gwaji. A cikin 2020, ilimin kayan aikin sarrafa kansa shima yana da mahimmanci. Wannan yana ba ku damar tsara tsarin sarrafa kansa da kanku, daga gudanar da gwaje-gwaje zuwa samar da sakamako ga duk masu ruwa da tsaki daidai da burin ku. Sakamakon haka, ƙwarewar DevOps dole ne don samun aikin. Kuma duk wannan yana da kyau, amma, rashin alheri, akwai matsala (spoiler: wannan labarin yana ƙoƙarin sauƙaƙa wannan matsala). Ma'anar ita ce DevOps yana da wahala. Kuma wannan a bayyane yake, saboda kamfanoni ba za su biya mai yawa don wani abu mai sauƙi ba ... A cikin DevOps duniya, akwai adadi mai yawa na kayan aiki, sharuɗɗa, da ayyuka waɗanda ke buƙatar ƙwarewa. Wannan yana da wahala musamman a farkon aiki kuma ya dogara da ƙwarewar fasaha da aka tara.

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce
source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Anan tabbas zamu gama da sashin gabatarwa kuma mu mai da hankali kan manufar wannan labarin. 

Menene wannan labarin game da?

A cikin wannan labarin, zan raba gwaninta na gina kayan aikin gwaji ta atomatik. Akwai hanyoyin samun bayanai da yawa a Intanet game da kayan aiki iri-iri da yadda ake amfani da su, amma ina so in kalle su kawai a cikin mahallin sarrafa kansa. Na yi imani cewa yawancin injiniyoyi na atomatik sun san halin da ake ciki lokacin da babu kowa sai dai kuna gudanar da gwaje-gwajen da aka haɓaka ko kuma ku damu da kiyaye su. Sakamakon haka, gwaje-gwajen sun zama tsofaffi kuma dole ne ku kashe lokaci don sabunta su. Bugu da ƙari, a farkon aiki, wannan na iya zama babban aiki mai wuyar gaske: da hikima yanke shawarar abin da kayan aikin ya kamata su taimaka kawar da matsalar da aka ba, yadda za a zaɓa, saita da kuma kula da su. Wasu masu gwadawa sun juya zuwa DevOps (mutane) don taimako kuma, bari mu faɗi gaskiya, wannan hanyar tana aiki. A yawancin lokuta wannan yana iya zama zaɓi ɗaya kawai tunda ba mu da ganuwa cikin duk abin dogaro. Amma kamar yadda muka sani, DevOps mutane ne masu aiki sosai, saboda dole ne su yi tunani game da duk abubuwan more rayuwa na kamfanin, turawa, saka idanu, microservices da sauran ayyuka iri ɗaya dangane da ƙungiyar / ƙungiyar. Kamar yadda aka saba, sarrafa kansa ba fifiko ba ne. A irin wannan yanayin, dole ne mu yi ƙoƙari mu yi duk abin da zai yiwu daga gare mu daga farko zuwa ƙarshe. Wannan zai rage abin dogaro, haɓaka aikin aiki, haɓaka ƙwarewarmu kuma zai ba mu damar ganin babban hoto na abin da ke faruwa.

Labarin yana gabatar da kayan aikin da suka fi shahara da shahara kuma yana nuna yadda ake amfani da su don gina kayan aikin sarrafa kansa mataki-mataki. Kowane rukuni yana wakilta ta kayan aikin da aka gwada ta hanyar gogewa ta sirri. Amma wannan ba yana nufin dole ne ku yi amfani da abu ɗaya ba. Kayan aikin da kansu ba su da mahimmanci, suna bayyana kuma sun zama marasa amfani. Ayyukan injiniyanmu shine fahimtar ka'idodin asali: dalilin da yasa muke buƙatar wannan rukuni na kayan aiki da abin da matsalolin aiki za mu iya magance tare da taimakonsu. Shi ya sa a ƙarshen kowane sashe na bar hanyoyin haɗin kai zuwa makamantan kayan aikin waɗanda za a iya amfani da su a cikin ƙungiyar ku.

Abin da ba a cikin wannan labarin

Na sake maimaita cewa labarin ba game da takamaiman kayan aiki ba ne, don haka ba za a sami abubuwan da aka sanya na lamba daga takaddun bayanai da kwatancen takamaiman umarni ba. Amma a ƙarshen kowane sashe na bar hanyoyin haɗin gwiwa don cikakken nazari.

Ana yin hakan ne saboda: 

  • wannan abu yana da sauƙin samuwa a wurare daban-daban (rubutun, littattafai, darussan bidiyo);
  • idan muka fara zurfafawa, za mu rubuta sassa 10, 20, 30 na wannan labarin (yayin da tsare-tsaren su ne 2-3);
  • Ba na so in ɓata lokacinku tunda kuna iya amfani da wasu kayan aikin don cimma burin iri ɗaya.

Yi aiki

Ina son gaske wannan abu ya zama mai amfani ga kowane mai karatu, ba wai kawai karantawa da mantawa ba. A cikin kowane nazari, yin aiki abu ne mai mahimmanci. Don wannan na shirya Ma'ajiyar GitHub tare da umarnin mataki-mataki kan yadda ake yin komai daga karce. Har ila yau, akwai aikin gida da ke jiran ku don tabbatar da cewa ba ku yi kwafin layukan umarnin da kuke aiwatarwa ba.

Shirin

Mataki
Technology
Kayayyakin aiki,

1
Gudun gida (shirya gwaje-gwajen demo na yanar gizo / android kuma gudanar da shi a gida) 
Node.js, Selenium, Appium

2
Tsarin sarrafa nau'in 
Git

3
Kwantena
Docker, Selenium Grid, Selenoid (Yanar gizo, Android)

4
CI/CD
Gitlab CI

5
Sassan girgije
Google Cloud Platform

6
Orchestration
Kubernetes

7
Kamfanoni a matsayin lambar (IaC)
Terraform, Mai yiwuwa

Tsarin kowane sashe

Don kiyaye bayanin a sarari, kowane sashe an siffanta shi bisa ga shaci mai zuwa:

  • taƙaitaccen bayanin fasaha,
  • darajar kayan aikin atomatik,
  • kwatanta halin yanzu na ababen more rayuwa,
  • links zuwa karatu,
  • makamantan kayan aikin.

1. Gudanar da gwaje-gwaje a gida

Takaitaccen bayanin fasaha

Wannan matakin shiri ne kawai don gudanar da gwaje-gwajen demo a gida da kuma tabbatar da sun ci nasara. A cikin aikace-aikacen, ana amfani da Node.js, amma harshen shirye-shirye da dandamali kuma ba su da mahimmanci kuma kuna iya amfani da waɗanda ake amfani da su a cikin kamfanin ku. 

Koyaya, azaman kayan aikin sarrafa kansa, Ina ba da shawarar yin amfani da Selenium WebDriver don dandamali na yanar gizo da Appium don dandamali na Android, bi da bi, tunda a cikin matakai na gaba za mu yi amfani da hotunan Docker waɗanda aka kera don yin aiki musamman tare da waɗannan kayan aikin. Bugu da ƙari, magana game da buƙatun aikin, waɗannan kayan aikin sune mafi yawan buƙata a kasuwa.

Kamar yadda ƙila kuka lura, muna la'akari ne kawai gwajin yanar gizo da Android. Abin takaici, iOS labari ne mabanbanta (godiya Apple). Ina shirin nuna mafita da ayyuka masu alaƙa da IOS a sassa masu zuwa.

Ƙimar don kayan aikin atomatik

Daga yanayin abubuwan more rayuwa, gudana a cikin gida ba ya samar da wata ƙima. Kuna duba kawai cewa gwaje-gwajen suna gudana akan injin gida a cikin masu binciken gida da na'urar kwaikwayo. Amma a kowane hali, wannan mafari ne na wajibi.

Misalin halin yanzu na abubuwan more rayuwa

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Hanyoyin haɗi don bincika

Makamantan kayan aikin

  • kowane yaren shirye-shirye da kuke so tare da gwajin Selenium/Appium;
  • kowane gwaji;
  • kowane mai gudu na gwaji.

2. Tsarin sarrafa sigar (Git)

Takaitaccen bayanin fasaha

Ba zai zama babban wahayi ga kowa ba idan na ce sarrafa sigar wani muhimmin sashi ne na ci gaba, duka a cikin ƙungiya da ɗaiɗaiku. Dangane da maɓuɓɓuka daban-daban, yana da aminci a faɗi cewa Git shine mashahurin wakilin. Tsarin sarrafa sigar yana ba da fa'idodi da yawa, kamar raba lambar, adana nau'ikan, maidowa zuwa rassan baya, lura da tarihin aikin, da madogara. Ba za mu tattauna kowane batu dalla-dalla ba, domin na tabbata kun saba da shi sosai kuma kuna amfani da shi a cikin ayyukanku na yau da kullun. Amma idan ba zato ba tsammani, to ina ba da shawarar dakatar da karanta wannan labarin kuma a cike wannan gibin da wuri-wuri.

Ƙimar don kayan aikin atomatik

Kuma a nan za ku iya yin tambaya mai ma'ana: "Me ya sa yake gaya mana game da Git? Kowa ya san wannan kuma yana amfani da shi duka don lambar haɓakawa da lambar gwaji ta atomatik. ” Za ku yi daidai, amma a cikin wannan labarin muna magana ne game da abubuwan more rayuwa kuma wannan sashe yana aiki azaman samfoti don sashe na 7: “Kayan Kayayyakin Kaya a matsayin Code (IaC)”. A gare mu, wannan yana nufin cewa gabaɗayan abubuwan more rayuwa, gami da gwaji, an siffanta su a cikin nau'in lamba, don haka za mu iya amfani da tsarin jujjuyawa zuwa gare shi kuma mu sami fa'idodi iri ɗaya kamar na haɓakawa da lambar sarrafa kansa.

Za mu dubi IaC dalla-dalla a Mataki na 7, amma har yanzu kuna iya fara amfani da Git a cikin gida ta hanyar ƙirƙirar ma'ajiyar gida. Za a faɗaɗa babban hoto lokacin da muka ƙara wurin ajiya mai nisa zuwa abubuwan more rayuwa.

Misalin halin yanzu na abubuwan more rayuwa

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Hanyoyin haɗi don bincika

Makamantan kayan aikin

3. Kwantena (Docker)

Takaitaccen bayanin fasaha

Don nuna yadda kwantena ya canza dokokin wasan, bari mu koma baya cikin shekaru ƴan shekaru. A lokacin, mutane sun sayi kuma sun yi amfani da injin sabar don gudanar da aikace-aikace. Amma a mafi yawan lokuta, ba a san albarkatun farawa da ake buƙata a gaba ba. Sakamakon haka, kamfanoni sun kashe kuɗi don siyan sabobin masu tsada, masu ƙarfi, amma wasu daga cikin wannan ƙarfin ba a yi amfani da su gaba ɗaya ba.

Mataki na gaba na juyin halitta shine na'urori masu kama-da-wane (VMs), wadanda suka magance matsalar barnatar da kudi akan albarkatun da ba a yi amfani da su ba. Wannan fasaha ta ba da damar gudanar da aikace-aikace ba tare da juna ba a cikin uwar garken guda ɗaya, tare da ware keɓaɓɓen sarari. Amma, abin takaici, kowace fasaha tana da nata abubuwan. Gudanar da VM yana buƙatar cikakken tsarin aiki, wanda ke cinye CPU, RAM, ajiya kuma, dangane da OS, ana buƙatar la'akari da farashin lasisi. Waɗannan abubuwan suna shafar saurin lodawa kuma suna yin wahalar ɗauka.

Kuma yanzu mun zo kwantena. Har ila yau, wannan fasaha ta warware matsalar da ta gabata, kamar yadda kwantena ba sa amfani da cikakken OS, wanda ke yantar da albarkatu masu yawa kuma yana ba da mafita mai sauri da sauƙi don ɗauka.

Tabbas, fasahar sarrafa kwantena ba sabon abu bane kuma an fara gabatar da ita a ƙarshen 70s. A wancan zamani, an gudanar da bincike da yawa, ci gaba, da yunƙuri. Amma Docker ne ya daidaita wannan fasaha kuma ya sanya ta cikin sauki ga talakawa. A zamanin yau, idan muna magana game da kwantena, a mafi yawan lokuta muna nufin Docker. Lokacin da muke magana game da kwantena Docker, muna nufin kwantena na Linux. Za mu iya amfani da tsarin Windows da macOS don gudanar da kwantena, amma yana da mahimmanci a fahimci cewa a wannan yanayin wani ƙarin Layer ya bayyana. Misali, Docker akan Mac shiru yana gudanar da kwantena a cikin Linux VM mara nauyi. Za mu koma kan wannan batu lokacin da muka tattauna game da gudanar da kwaikwaiyon Android a cikin kwantena, don haka a nan akwai muhimmiyar mahimmanci da ke buƙatar ƙarin bayani.

Ƙimar don kayan aikin atomatik

Mun gano cewa kwantena da Docker suna da kyau. Bari mu kalli wannan a cikin mahallin sarrafa kansa, domin kowane kayan aiki ko fasaha yana buƙatar magance matsala. Bari mu zayyana fitattun matsalolin gwajin sarrafa kansa a cikin mahallin gwajin UI:

  • babban adadin abin dogaro lokacin shigar da Selenium kuma musamman Appium;
  • matsalolin daidaitawa tsakanin nau'ikan masu bincike, na'urar kwaikwayo da direbobi;
  • rashin keɓantaccen sarari don masu bincike / na'urar kwaikwayo, wanda ke da mahimmanci musamman don gudana a layi daya;
  • wuyar sarrafawa da kulawa idan kana buƙatar gudanar da 10, 50, 100 ko ma 1000 browser a lokaci guda.

Amma tunda Selenium shine mashahurin kayan aikin sarrafa kansa kuma Docker shine mafi mashahuri kayan aikin kwantena, bai kamata ba mamaki cewa wani yayi ƙoƙarin haɗa su don ƙirƙirar kayan aiki mai ƙarfi don magance matsalolin da aka ambata a sama. Bari mu yi la'akari da irin waɗannan mafita dalla-dalla. 

Selenium grid a cikin docker

Wannan kayan aiki shine mafi mashahuri a cikin duniyar Selenium don gudanar da bincike da yawa akan injuna da yawa da sarrafa su daga cibiyar tsakiya. Don farawa, kuna buƙatar yin rajista aƙalla sassa 2: Hub da Node(s). Hub shine kumburin tsakiya wanda ke karɓar duk buƙatun daga gwaje-gwaje kuma yana rarraba su zuwa Nodes masu dacewa. Ga kowane Node za mu iya saita takamaiman ƙayyadaddun ƙayyadaddun ƙayyadaddun bayanai, alal misali, ta hanyar tantance mai binciken da ake so da sigar sa. Duk da haka, har yanzu muna buƙatar kula da direbobi masu dacewa da kanmu kuma mu sanya su a kan Nodes da ake so. Saboda wannan dalili, Selenium grid ba a amfani da shi a cikin tsaftataccen tsari, sai dai lokacin da muke buƙatar aiki tare da masu bincike waɗanda ba za a iya shigar da su akan Linux OS ba. Ga duk sauran lamuran, mahimman sassauƙa kuma madaidaiciyar mafita shine amfani da hotunan Docker don gudanar da Selenium grid Hub da Nodes. Wannan hanya tana sauƙaƙa sarrafa kumburi sosai, tunda muna iya zaɓar hoton da muke buƙata tare da nau'ikan masu bincike da direbobi masu jituwa waɗanda aka riga aka shigar.

Duk da sake dubawa mara kyau game da kwanciyar hankali, musamman lokacin gudanar da babban adadin Nodes a layi daya, Selenium grid har yanzu shine mafi mashahuri kayan aiki don gudanar da gwaje-gwajen Selenium a layi daya. Yana da mahimmanci a lura cewa gyare-gyare daban-daban da gyare-gyare na wannan kayan aiki suna ci gaba da bayyana a cikin buɗaɗɗen tushe, wanda ke magance matsalolin ƙulla daban-daban.

Selenoid don Yanar Gizo

Wannan kayan aiki shine ci gaba a cikin duniyar Selenium yayin da yake aiki daidai daga cikin akwatin kuma ya sa rayuwar injiniyoyi da yawa ke da sauƙi. Da farko, wannan ba wani gyara ba ne na Selenium grid. Madadin haka, masu haɓakawa sun ƙirƙiri sabon sigar Selenium Hub a cikin Golang, wanda, haɗe tare da hotunan Docker masu nauyi don masu bincike daban-daban, sun ba da kuzari ga haɓaka injina na gwaji. Haka kuma, a cikin yanayin Selenium Grid, dole ne mu tantance duk masu binciken da ake buƙata da nau'ikan su a gaba, wanda ba shi da matsala yayin aiki tare da burauzar guda ɗaya kawai. Amma idan ya zo ga masu bincike da yawa masu goyan baya, Selenoid shine mafita ta ɗaya godiya ga fasalin 'browser akan buƙata'. Duk abin da ake buƙata a gare mu shine zazzage mahimman hotuna tare da masu bincike a gaba da sabunta fayil ɗin sanyi wanda Selenoid ke hulɗa da shi. Bayan Selenoid ya karɓi buƙatu daga gwaje-gwajen, za ta ƙaddamar da kwandon da ake so ta atomatik tare da mai binciken da ake so. Lokacin da gwajin ya cika, Selenoid zai yi ritaya daga kwandon, ta haka zai ba da albarkatu don buƙatun gaba. Wannan hanya ta kawar da sanannen matsalar 'lalacewar node' da muke yawan cin karo da ita a grid Selenium.

Amma, kash, Selenoid har yanzu ba harsashi na azurfa ba ne. Mun sami fasalin 'browser akan buƙata', amma fasalin 'albarkatun da ake buƙata' har yanzu babu. Don amfani da Selenoid, dole ne mu tura shi akan kayan aiki na zahiri ko akan VM, wanda ke nufin dole ne mu san a gaba nawa albarkatun da ake buƙata a kasaftawa. Ina tsammanin wannan ba matsala ba ce ga ƙananan ayyuka waɗanda ke gudana 10, 20 ko ma 30 browser a layi daya. Amma idan muna buƙatar 100, 500, 1000 ko fiye fa? Ba shi da ma'ana don kula da biyan kuɗi da yawa albarkatun kowane lokaci. A cikin sassan 5 da 6 na wannan labarin, za mu tattauna hanyoyin da za su ba ku damar haɓaka, ta yadda za a rage farashin kamfani.

Selenoid don Android

Bayan nasarar Selenoid azaman kayan aikin sarrafa kansa na yanar gizo, mutane suna son wani abu makamancin haka don Android. Kuma ya faru - An saki Selenoid tare da tallafin Android. Daga babban ra'ayi mai amfani, ka'idar aiki tana kama da aikin sarrafa yanar gizo. Bambancin kawai shine cewa maimakon kwantena masu bincike, Selenoid yana gudanar da kwantena na kwaikwaiyo na Android. A ganina, wannan a halin yanzu shine mafi ƙarfi kayan aiki kyauta don gudanar da gwaje-gwajen Android a layi daya.

Ba zan so in yi magana game da ɓangarori na wannan kayan aiki ba, tun da gaske ina son shi. Amma duk da haka, akwai rashin amfani iri ɗaya waɗanda ke shafi aikin sarrafa gidan yanar gizo kuma suna da alaƙa da ƙima. Baya ga wannan, muna buƙatar yin magana game da ƙayyadaddun ƙayyadaddun ƙayyadaddun abubuwa guda ɗaya wanda zai iya zama abin mamaki idan muna kafa kayan aiki a karon farko. Don gudanar da hotunan Android, muna buƙatar na'ura ta zahiri ko VM tare da goyan bayan kamala. A cikin yadda ake jagora, na nuna yadda ake kunna wannan akan Linux VM. Koyaya, idan kun kasance mai amfani da macOS kuma kuna son tura Selenoid a cikin gida, to wannan ba zai yiwu a gudanar da gwajin Android ba. Amma koyaushe kuna iya gudanar da VM na Linux a cikin gida tare da saita 'nested virtualization' da tura Selenoid a ciki.

Misalin halin yanzu na abubuwan more rayuwa

A cikin mahallin wannan labarin, za mu ƙara kayan aikin 2 don kwatanta kayan aikin. Waɗannan su ne Selenium grid don gwajin yanar gizo da Selenoid don gwaje-gwajen Android. A cikin koyawa ta GitHub, zan kuma nuna muku yadda ake amfani da Selenoid don gudanar da gwajin yanar gizo. 

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Hanyoyin haɗi don bincika

Makamantan kayan aikin

  • Akwai sauran kayan aikin kwantena, amma Docker shine ya fi shahara. Idan kuna son gwada wani abu dabam, ku tuna cewa kayan aikin da muka rufe don gudanar da gwaje-gwajen Selenium a layi daya ba za su yi aiki daga cikin akwatin ba.  
  • Kamar yadda aka riga aka ambata, akwai gyare-gyare da yawa na Selenium Grid, alal misali, Zalenium.

4.CI/CD

Takaitaccen bayanin fasaha

Ayyukan ci gaba da haɗin kai ya shahara sosai a cikin haɓakawa kuma yana kan daidai da tsarin sarrafa sigar. Duk da wannan, ina jin cewa akwai rudani a cikin kalmomi. A cikin wannan sakin layi ina so in bayyana 3 gyare-gyare na wannan fasaha daga ra'ayi na. A kan intanet za ku sami labarai da yawa tare da fassarori daban-daban, kuma yana da cikakkiyar al'ada idan ra'ayin ku ya bambanta. Abu mafi mahimmanci shine cewa kuna kan shafi ɗaya tare da abokan aikin ku.

Don haka, akwai sharuɗɗan guda 3: CI - Ci gaba da Haɗuwa, CD - Ci gaba da Bayarwa da sake CD - Ci gaba da Aiki. (A ƙasa zan yi amfani da waɗannan sharuɗɗan cikin Turanci). Kowane gyare-gyare yana ƙara ƙarin matakai da yawa zuwa bututun haɓaka ku. Amma kalmar Ci gaba (ci gaba) shine abu mafi mahimmanci. A cikin wannan mahallin, muna nufin wani abu da ke faruwa daga farko zuwa ƙarshe, ba tare da tsangwama ko sa hannun hannu ba. Bari mu kalli CI & CD da CD a cikin wannan mahallin.

  • Ci gaba da Haɗuwa wannan shine matakin farko na juyin halitta. Bayan ƙaddamar da sabuwar lamba zuwa uwar garken, muna sa ran samun saurin amsawa cewa canje-canjenmu ba su da kyau. Yawanci, CI ya haɗa da gudanar da kayan aikin bincike na lambar tsaye da gwaje-gwajen API na ɗaya/na ciki. Wannan yana ba mu damar samun bayanai game da lambar mu cikin 'yan daƙiƙa/mintuna.
  • Bayarwa na ci gaba mataki ne mafi ci gaba inda muke gudanar da gwaje-gwajen haɗin kai/UI. Duk da haka, a wannan mataki ba mu samun sakamako da sauri kamar tare da CI. Na farko, waɗannan nau'ikan gwaje-gwajen suna ɗaukar tsawon lokaci don kammalawa. Abu na biyu, kafin ƙaddamarwa, dole ne mu tura canje-canjenmu zuwa yanayin gwaji/tsari. Bugu da ƙari, idan muna magana ne game da ci gaban wayar hannu, to, ƙarin mataki ya bayyana don ƙirƙirar ginin aikace-aikacen mu.
  • Ci gaba da Depaddamar da Ayyuka yana ɗauka cewa muna sakin canje-canjen mu ta atomatik zuwa samarwa idan duk gwaje-gwajen karɓa an wuce su a matakan da suka gabata. Baya ga wannan, bayan matakin sakin, zaku iya saita matakai daban-daban, kamar gudanar da gwajin hayaki akan samarwa da tattara ma'auni na sha'awa. Ci gaba da ƙaddamarwa yana yiwuwa ne kawai tare da kyakkyawan ɗaukar hoto ta gwaje-gwaje na atomatik. Idan ana buƙatar kowane sa hannun hannu, gami da gwaji, to wannan ba ya nan Cigaba da (ci gaba). Sa'an nan za mu iya cewa bututun mu ya bi kawai da al'adar ci gaba da bayarwa.

Ƙimar don kayan aikin atomatik

A cikin wannan sashe, ya kamata in fayyace cewa lokacin da muke magana game da gwaje-gwajen UI na ƙarshe zuwa ƙarshe, yana nufin ya kamata mu tura canje-canjenmu da ayyukan haɗin gwiwa don gwada mahalli. Ci gaba da Haɗuwa - tsarin bai dace da wannan aikin ba kuma dole ne mu kula da aiwatar da aƙalla ayyukan isar da ci gaba. Ci gaba da ƙaddamarwa kuma yana da ma'ana a cikin mahallin gwajin UI idan za mu gudanar da su a cikin samarwa.

Kuma kafin mu kalli kwatancin canjin gine-gine, Ina so in faɗi wasu kalmomi game da GitLab CI. Ba kamar sauran kayan aikin CI/CD ba, GitLab yana ba da wurin ajiya mai nisa da sauran ƙarin fasali. Don haka, GitLab ya fi CI. Ya haɗa da sarrafa lambar tushe, Gudanar da Agile, bututun CI / CD, kayan aikin shiga da tarin ma'auni daga cikin akwatin. GitLab gine ya ƙunshi Gitlab CI/CD da GitLab Runner. Ga taƙaitaccen bayanin daga gidan yanar gizon hukuma:

Gitlab CI/CD shine aikace-aikacen yanar gizo tare da API wanda ke adana yanayinsa a cikin ma'ajin bayanai, sarrafa ayyukan / ginawa da samar da mai amfani. GitLab Runner shine aikace-aikacen da ke ginawa. Ana iya tura shi daban kuma yana aiki tare da GitLab CI/CD ta API. Don gwaje-gwajen da ke gudana kuna buƙatar duka misalin Gitlab da Runner.

Misalin halin yanzu na abubuwan more rayuwa

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Hanyoyin haɗi don bincika

Makamantan kayan aikin

5. Cloud dandamali

Takaitaccen bayanin fasaha

A cikin wannan sashe za mu yi magana game da sanannen yanayin da ake kira 'gizagizai na jama'a'. Duk da fa'idodi masu yawa waɗanda fasahar ƙirƙira da fasahohin kwantena da aka kwatanta a sama suke bayarwa, har yanzu muna buƙatar albarkatun ƙididdiga. Kamfanoni suna siyan sabobin masu tsada ko cibiyoyin bayanan haya, amma a wannan yanayin ya zama dole don yin lissafin (wani lokacin rashin gaskiya) na yawan albarkatun da za mu buƙaci, ko za mu yi amfani da su 24/7 da kuma menene dalilai. Misali, samarwa yana buƙatar uwar garken da ke gudana XNUMX/XNUMX, amma muna buƙatar albarkatun irin wannan don gwaji a waje da lokutan aiki? Hakanan ya danganta da nau'in gwajin da ake yi. Misali zai kasance gwaje-gwajen lodi/danniya da muke shirin gudanarwa a lokutan da ba aiki ba domin samun sakamako a gobe. Amma tabbas ba a buƙatar wadatar uwar garken XNUMX/XNUMX don gwaje-gwaje na atomatik na ƙarshe zuwa ƙarshe kuma musamman ba don mahallin gwajin hannu ba. Don irin waɗannan yanayi, zai yi kyau a sami albarkatu masu yawa gwargwadon buƙata akan buƙata, amfani da su, kuma a daina biyan kuɗi lokacin da ba a buƙatar su. Bugu da ƙari, zai yi kyau a karɓe su nan take ta hanyar danna linzamin kwamfuta kaɗan ko gudanar da rubutun biyu. Wannan shi ne abin da ake amfani da gajimare na jama'a. Bari mu dubi ma'anar:

“An ayyana girgijen jama'a azaman sabis na lissafin da masu ba da sabis na ɓangare na uku ke bayarwa akan Intanet na jama'a, yana sa su samuwa ga duk wanda ke son amfani da su ko siyan su. Za su iya zama kyauta ko sayar da su akan buƙatu, ƙyale abokan ciniki su biya kawai kowane amfani don hawan CPU, ajiya, ko bandwidth da suke cinyewa."

Akwai ra'ayi cewa girgijen jama'a yana da tsada. Amma babban ra'ayinsu shine rage farashin kamfani. Kamar yadda aka ambata a baya, girgijen jama'a yana ba ku damar samun albarkatu akan buƙata kuma ku biya kawai lokacin da kuke amfani da su. Har ila yau, wani lokacin mukan manta cewa ma'aikata suna karɓar albashi, kuma ƙwararrun ma'aikata suna da tsada. Dole ne a yi la'akari da cewa girgijen jama'a yana ba da tallafin kayan aiki da sauƙi, wanda ya ba da damar injiniyoyi su mai da hankali kan ayyuka masu mahimmanci. 

Ƙimar don kayan aikin atomatik

Wadanne takamaiman albarkatu muke buƙata don gwajin UI na ƙarshe zuwa ƙarshen? Ainihin waɗannan injuna ne ko tari (za mu yi magana game da Kubernetes a sashe na gaba) don gudanar da bincike da kwaikwaya. Yawancin browsers da emulators da muke so mu yi aiki a lokaci guda, yawancin CPU da ƙwaƙwalwar ajiya da ake buƙata kuma yawancin kuɗin da za mu biya. Don haka, gajimare na jama'a a cikin mahallin gwajin sarrafa kansa yana ba mu damar gudanar da adadi mai yawa (100, 200, 1000...) na masu bincike/emulators akan buƙata, samun sakamakon gwaji da sauri da kuma dakatar da biyan kuɗi don irin wannan rashin hankali na kayan aiki. iko. 

Shahararrun masu samar da girgije sune Sabis na Yanar Gizo na Amazon (AWS), Microsoft Azure, Google Cloud Platform (GCP). Jagorar yadda ake amfani da shi yana ba da misalan yadda ake amfani da GCP, amma gabaɗaya ba kome ba ne abin da kuke amfani da shi don ayyukan sarrafa kansa. Dukkansu suna ba da kusan ayyuka iri ɗaya. Yawanci, don zaɓar mai bayarwa, gudanarwa yana mai da hankali kan abubuwan more rayuwa na kamfani da buƙatun kasuwanci, wanda ya wuce iyakar wannan labarin. Ga injiniyoyi na atomatik, zai zama mafi ban sha'awa don kwatanta amfani da masu samar da girgije tare da amfani da dandamali na girgije musamman don dalilai na gwaji, irin su Sauce Labs, BrowserStack, BitBar, da sauransu. Don haka mu yi ma! A ra'ayi na, Sauce Labs shine sanannen gonar gwajin girgije, wanda shine dalilin da ya sa na yi amfani da shi don kwatanta. 

GCP vs Labs Sauce don dalilai na atomatik:

Bari mu yi tunanin cewa muna buƙatar gudanar da gwaje-gwajen yanar gizo guda 8 da gwaje-gwajen Android guda 8 a lokaci guda. Don wannan za mu yi amfani da GCP kuma mu gudanar da injunan kama-da-wane 2 tare da Selenoid. A farkon daya za mu tayar da kwantena 8 tare da masu bincike. A na biyu akwai kwantena 8 tare da emulators. Bari mu kalli farashin:  

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce
Don gudanar da akwati ɗaya tare da Chrome, muna buƙata n1-misali-1 mota. A cikin yanayin Android zai kasance n1-misali-4 ga daya kwaikwaya. A zahiri, hanya mafi sauƙi kuma mai arha ita ce saita takamaiman ƙimar mai amfani don CPU/Memory, amma a halin yanzu wannan ba shi da mahimmanci don kwatanta da Labs Sauce.

Kuma ga jadawalin kuɗin fito don amfani da Labs Sauce:

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce
Na yi imani kun riga kun lura da bambanci, amma har yanzu zan samar da tebur tare da ƙididdiga don aikinmu:

Abubuwan da ake buƙata
Monly
Hakan aiki(8 na safe - 8 na yamma)
Hakan aiki+ Mai yiwuwa

GCP don Yanar Gizo
n1-misali-1 x 8 = n1-misali-8
$194.18
Kwanaki 23 * 12h * 0.38 = $ 104.88 
Kwanaki 23 * 12h * 0.08 = $ 22.08

Sauce Labs don Yanar Gizo
Gwaje-gwajen layi daya na Virtual Cloud8
$1.559
-
-

GCP don Android
n1-misali-4 x 8: n1-misali-16
$776.72
Kwanaki 23 * 12h * 1.52 = $ 419.52 
Kwanaki 23 * 12h * 0.32 = $ 88.32

Sauce Labs don Android
Gwaje-gwajen layi daya na Na'urar Cloud 8 na ainihi
$1.999
-
-

Kamar yadda kake gani, bambancin farashi yana da girma, musamman idan kuna gudanar da gwaje-gwaje kawai a lokacin aiki na sa'o'i goma sha biyu. Amma kuna iya rage farashi ko da ƙari idan kun yi amfani da injunan da ba za a iya cirewa ba. Menene?

VM da ba za a iya ɗauka ba misali ne wanda zaku iya ƙirƙira da gudanar da farashi mai yawa fiye da al'amuran yau da kullun. Koyaya, Injin Lissafi na iya ƙarewa (gabatar) waɗannan lokuta idan yana buƙatar samun dama ga waɗannan albarkatun don wasu ayyuka. Abubuwan da za a iya ɗauka sun wuce ƙarfin Injin Lissafi, don haka samuwarsu ya bambanta da amfani.

Idan aikace-aikacenku suna da jure wa kuskure kuma suna iya jure yuwuwar preemption na misali, to abubuwan da ba za a iya tantancewa ba na iya rage farashin Injin ɗin ku sosai. Misali, ayyukan sarrafa batch na iya gudana akan al'amuran da ba a iya tantancewa. Idan wasu daga cikin waɗannan al'amuran sun ƙare yayin sarrafawa, aikin yana raguwa amma ba ya tsayawa gaba ɗaya. Abubuwan da ba za a iya gani ba suna kammala ayyukan sarrafa batch ɗinku ba tare da sanya ƙarin nauyin aiki akan abubuwan da kuke ciki ba kuma ba tare da buƙatar ku biya cikakken farashi don ƙarin al'amuran yau da kullun ba.

Kuma har yanzu bai kare ba! A hakikanin gaskiya, na tabbata ba wanda zai yi gwajin awa 12 ba tare da hutu ba. Idan haka ne, to zaku iya farawa ta atomatik kuma dakatar da injunan kama-da-wane lokacin da ba a buƙatar su. Ana iya rage ainihin lokacin amfani zuwa sa'o'i 6 kowace rana. Sannan biyan kuɗi a yanayin aikinmu zai ragu zuwa $11 a kowane wata don masu bincike 8. Wannan ba abin mamaki bane? Amma tare da injunan da ba za a iya amfani da su ba dole ne mu yi hankali kuma mu shirya don katsewa da rashin kwanciyar hankali, kodayake ana iya samar da waɗannan yanayi kuma a sarrafa su cikin software. Yana da daraja!

Amma ba wata hanya ba na ce 'kada ku yi amfani da gonakin gwajin girgije'. Suna da fa'idodi da yawa. Da farko, wannan ba kawai na'ura mai mahimmanci ba ne, amma cikakken gwajin gwaji na atomatik bayani tare da saitin ayyuka daga cikin akwatin: damar nesa, rajistan ayyukan, hotunan kariyar kwamfuta, rikodin bidiyo, masu bincike daban-daban da na'urorin hannu na jiki. A yawancin yanayi, wannan na iya zama madaidaicin madaidaicin chic. Matakan gwaji suna da amfani musamman don sarrafa kansa na IOS, lokacin da gajimare na jama'a ke iya ba da tsarin Linux/Windows kawai. Amma za mu yi magana game da iOS a cikin wadannan articles. Ina ba da shawarar koyaushe kallon halin da ake ciki da farawa daga ayyuka: a wasu lokuta yana da arha kuma mafi inganci don amfani da gajimare na jama'a, kuma a cikin wasu dandamalin gwajin tabbas sun cancanci kuɗin da aka kashe.

Misalin halin yanzu na abubuwan more rayuwa

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Hanyoyin haɗi don bincika

Makamantan kayan aikin:

6. Makara

Takaitaccen bayanin fasaha

Ina da labari mai kyau - mun kusan ƙarshen labarin! A halin yanzu, kayan aikin mu na atomatik sun ƙunshi gwajin yanar gizo da Android, waɗanda muke gudanar da su ta GitLab CI a layi daya, ta amfani da kayan aikin Docker: Grid Selenium da Selenoid. Haka kuma, muna amfani da injunan kama-da-wane da aka ƙirƙira ta hanyar GCP don ɗaukar nauyin kwantena tare da masu bincike da masu kwaikwaya. Don rage farashi, muna fara waɗannan injunan kama-da-wane ne kawai akan buƙata kuma mu dakatar da su lokacin da ba a aiwatar da gwaji ba. Shin akwai wani abu kuma da zai iya inganta ayyukanmu? Amsar ita ce eh! Haɗu da Kubernetes (K8s)!

Da farko, bari mu kalli yadda kalmomin ƙungiyar kade-kade, cluster, da Kubernetes suke da alaƙa da juna. A babban matakin, ƙungiyar makaɗa shine tsarin da ke turawa da sarrafa aikace-aikace. Don sarrafa kansa na gwaji, irin waɗannan aikace-aikacen kwantena sune Selenium grid da Selenoid. Docker da K8s suna haɗa juna. Ana amfani da na farko don tura aikace-aikacen, na biyu don ƙungiyar makaɗa. Bi da bi, K8s gungu ne. Ayyukan gungu shine amfani da VMs azaman Nodes, wanda ke ba ku damar shigar da ayyuka daban-daban, shirye-shirye da ayyuka a cikin sabar ɗaya (gungu). Idan ɗayan Nodes ɗin ya gaza, wasu Nodes za su ɗauka, wanda ke tabbatar da aikin aikace-aikacenmu ba tare da katsewa ba. Baya ga wannan, K8s yana da mahimman ayyuka masu alaƙa da ƙima, godiya ga wanda muke samun mafi kyawun adadin albarkatun ta atomatik dangane da kaya da saita iyaka.

A gaskiya, tura Kubernetes da hannu daga karce ba ƙaramin aiki bane kwata-kwata. Zan bar hanyar haɗi zuwa sanannen yadda ake shiryar "Kubernetes The Hard Way" kuma idan kuna sha'awar, zaku iya aiwatar da shi. Amma, an yi sa'a, akwai madadin hanyoyin da kayan aiki. Hanya mafi sauƙi ita ce amfani da Google Kubernetes Engine (GKE) a cikin GCP, wanda zai ba ku damar samun gungu da aka shirya a cikin 'yan dannawa. Ina ba da shawarar yin amfani da wannan hanyar don fara koyo, saboda zai ba ku damar mai da hankali kan koyon yadda ake amfani da K8s don ayyukanku maimakon koyon yadda yakamata a haɗa abubuwan ciki da juna. 

Ƙimar don kayan aikin atomatik

Bari mu kalli wasu mahimman abubuwan da K8s ke bayarwa:

  • tura aikace-aikacen: ta amfani da gungu na nodes masu yawa maimakon VMs;
  • haɓaka mai ƙarfi: yana rage farashin albarkatun da ake amfani da su kawai akan buƙata;
  • warkar da kai: farfadowa ta atomatik na kwasfa (saboda haka an dawo da kwantena);
  • fitar da sabuntawa da jujjuyawar canje-canje ba tare da bata lokaci ba: kayan aikin sabunta kayan aiki, masu bincike da kwaikwayi baya katse aikin masu amfani da yanzu.

Amma K8s har yanzu ba harsashi na azurfa ba ne. Don fahimtar duk fa'idodi da iyakancewa a cikin mahallin kayan aikin da muke la'akari da su (Grid Selenium, Selenoid), zamu tattauna a taƙaice tsarin K8s. Cluster ya ƙunshi nau'ikan Nodes guda biyu: Nodes na Master da Nodes na Ma'aikata. Jagora Nodes suna da alhakin gudanarwa, turawa da tsara yanke shawara. Nodes na ma'aikata shine inda ake gudanar da aikace-aikacen. Nodes kuma sun ƙunshi mahalli na lokacin aiki. A cikin yanayinmu, wannan shine Docker, wanda ke da alhakin ayyukan da suka shafi kwantena. Amma akwai kuma madadin mafita, misali kwandon shara. Yana da mahimmanci a fahimci cewa ƙwanƙwasa ko warkar da kai ba ya shafi kai tsaye ga kwantena. Ana aiwatar da wannan ta hanyar ƙara / rage adadin kwasfa, wanda hakan ya ƙunshi kwantena (yawanci akwati ɗaya a kowace kwasfa, amma dangane da aikin ana iya samun ƙari). Babban matsayi ya ƙunshi nodes na ma'aikata, waɗanda a ciki akwai kwasfa, waɗanda a ciki ake ɗaga kwantena.

Siffar sikelin maɓalli ce kuma ana iya amfani da ita zuwa kuɗaɗɗen kuɗaɗen da ke cikin kullin kuli-kuli da tafki a cikin kumburi. Akwai nau'ikan sikelin guda 2 waɗanda ke shafi duka nodes da pods. Nau'in farko shine a kwance - ƙira yana faruwa ta hanyar ƙara yawan nodes/pods. Wannan nau'in ya fi dacewa. Nau'i na biyu shine, bisa ga haka, a tsaye. Ana yin sikeli ta hanyar ƙara girman nodes/pods, kuma ba adadin su ba.

Yanzu bari mu dubi kayan aikin mu a cikin mahallin kalmomin da ke sama.

Selenium grid

Kamar yadda aka ambata a baya, Selenium grid sanannen kayan aiki ne, kuma ba abin mamaki bane cewa an sanya shi cikin kwantena. Saboda haka, ba abin mamaki ba ne cewa ana iya tura grid na Selenium a cikin K8s. Ana iya samun misalin yadda ake yin wannan a cikin ma'ajin K8s na hukuma. Kamar yadda na saba, na haɗa hanyoyin haɗin gwiwa a ƙarshen sashe. Bugu da kari, jagorar yadda ake yin hakan yana nuna yadda ake yin hakan a cikin Terraform. Akwai kuma umarni kan yadda za a auna adadin kwas ɗin da ke ɗauke da kwantena masu bincike. Amma aikin sikelin atomatik a cikin mahallin K8s har yanzu ba aiki ne na zahiri ba. Lokacin da na fara karatu, ban sami jagora ko shawarwari masu amfani ba. Bayan nazari da gwaje-gwaje da yawa tare da goyan bayan ƙungiyar DevOps, mun zaɓi tsarin haɓaka kwantena tare da masu bincike masu mahimmanci a cikin kwasfa ɗaya, wanda ke cikin kullin ma'aikaci ɗaya. Wannan hanya tana ba mu damar yin amfani da dabarun kwancen ƙima na nodes ta hanyar ƙara yawan su. Ina fatan wannan zai canza a nan gaba kuma za mu ga ƙarin bayani game da mafi kyawun hanyoyin da aka shirya da kuma shirye-shiryen mafita, musamman bayan da aka saki Selenium grid 4 tare da canza tsarin gine-gine na ciki.

Selenoid:

Aiwatar da Selenoid a cikin K8s a halin yanzu shine babban abin takaici. Ba su dace ba. A ka'idar, zamu iya tayar da akwati na Selenoid a cikin kwasfa, amma lokacin da Selenoid ya fara ƙaddamar da kwantena tare da masu bincike, har yanzu za su kasance a cikin kwasfa ɗaya. Wannan yana sa ƙima ba zai yiwu ba kuma, a sakamakon haka, aikin Selenoid a cikin gungu ba zai bambanta da aiki a cikin injin kama-da-wane ba. Karshen labari.

Moon:

Sanin wannan ƙwanƙwasa lokacin aiki tare da Selenoid, masu haɓaka sun fito da kayan aiki mafi ƙarfi da ake kira Moon. An tsara wannan kayan aikin asali don yin aiki tare da Kubernetes kuma, a sakamakon haka, fasalin autoscaling zai iya kuma ya kamata a yi amfani da shi. Bugu da ƙari, zan iya cewa a halin yanzu haka ne kadai kayan aiki a cikin duniyar Selenium, wanda ke da tallafin gungu na K8s daga cikin akwatin (babu kuma, duba kayan aiki na gaba ). Muhimman abubuwan da wata ke ba da wannan tallafi sune: 

Gaba ɗaya mara ƙasa. Selenoid yana adanawa a cikin bayanan ƙwaƙwalwar ajiya game da zaman mai lilo a halin yanzu. Idan saboda wasu dalilai tsarinsa ya rushe - to, duk lokutan gudana sun ɓace. Sabanin haka wata ba shi da yanayi na ciki kuma ana iya maimaita shi a cikin cibiyoyin bayanai. Zaman mai lilo yana nan da rai ko da ɗaya ko fiye da kwafin ya ragu.

Don haka, wata babbar mafita ce, amma akwai matsala ɗaya: ba kyauta ba ne. Farashin ya dogara da adadin zaman. Kuna iya gudanar da zaman 0-4 kawai kyauta, wanda bashi da amfani musamman. Amma, farawa daga zama na biyar, za ku biya $5 ga kowane. Halin na iya bambanta daga kamfani zuwa kamfani, amma a yanayinmu, amfani da Moon ba shi da ma'ana. Kamar yadda na bayyana a sama, za mu iya tafiyar da VMs tare da Selenium Grid akan buƙata ko ƙara yawan Nodes a cikin tari. Domin kusan bututu guda ɗaya, muna ƙaddamar da masu bincike 500 kuma muna dakatar da duk albarkatun bayan an kammala gwaje-gwajen. Idan muka yi amfani da wata, dole ne mu biya ƙarin 500 x 5 = $2500 a kowane wata, komai sau nawa muke gudanar da gwaje-gwaje. Har ila yau, ba ina cewa kar a yi amfani da Moon ba. Don ayyukanku, wannan na iya zama mafita mai mahimmanci, misali, idan kuna da ayyuka da ƙungiyoyi da yawa a cikin ƙungiyar ku kuma kuna buƙatar babban tari na kowa ga kowa. Kamar koyaushe, Ina barin hanyar haɗi a ƙarshe kuma ina ba da shawarar yin duk lissafin da ake buƙata a cikin mahallin aikin ku.

Callisto: (Hankali! Wannan baya cikin ainihin labarin kuma yana cikin fassarar Rashanci kawai)

Kamar yadda na ce, Selenium sanannen kayan aiki ne, kuma filin IT yana haɓaka da sauri. Yayin da nake aiki a kan fassarar, wani sabon kayan aiki mai ban sha'awa mai suna Callisto ya bayyana akan gidan yanar gizon (sannu Cypress da sauran masu kashe Selenium). Yana aiki na asali tare da K8s kuma yana ba ku damar gudanar da kwantena na Selenoid a cikin kwasfa, rarraba a cikin Nodes. Komai yana aiki daidai daga cikin akwatin, gami da autoscaling. Abin mamaki, amma yana buƙatar gwadawa. Na riga na yi nasarar tura wannan kayan aikin kuma na gudanar da gwaje-gwaje da yawa. Amma ya yi da wuri don yanke shawara, bayan samun sakamako a nesa mai nisa, watakila zan yi bita a cikin labarai na gaba. A yanzu ina barin hanyoyin haɗi kawai don bincike mai zaman kansa.  

Misalin halin yanzu na abubuwan more rayuwa

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Hanyoyin haɗi don bincika

Makamantan kayan aikin

7. Kamfanoni a matsayin Code (IaC)

Takaitaccen bayanin fasaha

Yanzu kuma mun zo kashi na karshe. Yawanci, wannan fasaha da ayyuka masu alaƙa ba alhakin injiniyoyin kera ba ne. Kuma akwai dalilai na wannan. Da farko, a cikin kungiyoyi da yawa, abubuwan da suka shafi abubuwan more rayuwa suna ƙarƙashin kulawar sashen DevOps kuma ƙungiyoyin ci gaba ba su damu da abin da ke sa bututun ya yi aiki ba da kuma yadda duk abin da ke da alaƙa da shi ke buƙatar tallafi. Abu na biyu, mu faɗi gaskiya, har yanzu ba a karɓi aikin Infrastructure as Code (IaC) a cikin kamfanoni da yawa. Amma tabbas ya zama sanannen yanayin kuma yana da mahimmanci a yi ƙoƙarin shiga cikin matakai, hanyoyin da kayan aikin da ke tattare da shi. Ko aƙalla ci gaba da sabuntawa.

Bari mu fara da dalilin yin amfani da wannan hanyar. Mun riga mun tattauna cewa don gudanar da gwaje-gwaje a GitlabCI, za mu buƙaci aƙalla albarkatun don gudanar da Gitlab Runner. Kuma don gudanar da kwantena tare da masu bincike/emulators, muna buƙatar tanadin VM ko tari. Baya ga kayan gwaji, muna buƙatar babban adadin ƙarfin don tallafawa haɓakawa, tsarawa, yanayin samarwa, wanda ya haɗa da bayanan bayanai, jadawalin atomatik, saitunan cibiyar sadarwa, ma'aunin nauyi, haƙƙin mai amfani, da sauransu. Babban batu shine ƙoƙarin da ake buƙata don tallafawa duka. Akwai hanyoyi da yawa da za mu iya yin canje-canje da fitar da sabuntawa. Misali, a cikin mahallin GCP, za mu iya amfani da na'urar wasan bidiyo ta UI a cikin mai lilo kuma mu yi duk ayyuka ta danna maɓalli. Wani madadin shine yin amfani da kiran API don yin hulɗa tare da abubuwan girgije, ko amfani da mai amfani da layin umarni na gcloud don aiwatar da magudin da ake so. Amma tare da ɗimbin yawa na ƙungiyoyi daban-daban da abubuwan abubuwan more rayuwa, yana zama da wahala ko ma ba zai yiwu a yi duk ayyuka da hannu ba. Bugu da ƙari, duk waɗannan ayyukan hannu ba za a iya sarrafa su ba. Ba za mu iya ƙaddamar da su don dubawa kafin aiwatarwa ba, yi amfani da tsarin sarrafa sigar, kuma da sauri mirgine canje-canjen da suka haifar da lamarin. Don magance irin waɗannan matsalolin, injiniyoyi sun ƙirƙira da ƙirƙirar rubutun bash / harsashi ta atomatik, waɗanda ba su da kyau fiye da hanyoyin da suka gabata, tunda ba su da sauƙin karantawa, fahimta, kulawa da gyarawa cikin salon tsari.

A cikin wannan labarin da yadda za a jagoranta, Ina amfani da kayan aikin 2 masu alaƙa da aikin IaC. Waɗannan su ne Terraform kuma Mai yiwuwa. Wasu mutane sun gaskata cewa ba shi da ma'ana don amfani da su a lokaci guda, tun da aikin su yana kama da juna kuma suna canzawa. Amma gaskiyar magana ita ce da farko ana ba su ayyuka daban-daban. Kuma gaskiyar cewa waɗannan kayan aikin yakamata su dace da juna an tabbatar da su a cikin gabatarwar haɗin gwiwa ta masu haɓakawa waɗanda ke wakiltar HashiCorp da RedHat. Bambancin ra'ayi shine cewa Terraform kayan aiki ne na samarwa don sarrafa sabobin da kansu. Yayin da Mai yiwuwa shine kayan aikin gudanarwa na daidaitawa wanda aikinsa shine shigar, daidaitawa da sarrafa software akan waɗannan sabobin.

Wani mahimmin fasalin waɗannan kayan aikin shine salon coding. Ba kamar bash da Mai yiwuwa ba, Terraform yana amfani da salon bayyanawa dangane da bayanin yanayin ƙarshen da ake so a cimma sakamakon kisa. Misali, idan za mu ƙirƙiri VM 10 kuma mu yi amfani da canje-canje ta hanyar Terraform, to za mu sami VMs 10. Idan muka sake gudanar da rubutun, babu abin da zai faru tunda muna da 10 VMs, kuma Terraform ya san game da wannan saboda yana adana halin yanzu na abubuwan more rayuwa a cikin fayil ɗin jihar. Amma Ansible yana amfani da tsarin tsari kuma, idan ka tambaye shi don ƙirƙirar VMs 10, to a farkon ƙaddamarwa za mu sami 10 VMs, kama da Terraform. Amma bayan sake farawa za mu riga mun sami VMs 20. Wannan shine muhimmin bambanci. A cikin salon tsari, ba ma adana yanayin halin yanzu kuma muna bayyana jerin matakan da dole ne a yi. Tabbas, muna iya magance yanayi daban-daban, mu ƙara bincike da yawa don wanzuwar albarkatu da kuma halin da ake ciki yanzu, amma babu ma'ana a ɓata lokacinmu da yin ƙoƙari don sarrafa wannan tunani. Bugu da ƙari, wannan yana ƙara haɗarin yin kuskure. 

Taƙaice duk abubuwan da ke sama, za mu iya ƙarasa da cewa Terraform da bayanin sanarwa sune mafi dacewa kayan aiki don samar da sabobin. Amma yana da kyau a ba da aikin gudanarwar daidaitawa ga Mai yiwuwa. Tare da wannan daga hanyar, bari mu kalli shari'ar amfani a cikin mahallin atomatik.

Ƙimar don kayan aikin atomatik

Abinda kawai ya kamata a fahimta anan shine yakamata a yi la'akari da kayan aikin sarrafa kansa a matsayin wani bangare na dukkan kayayyakin aikin kamfanin. Wannan yana nufin cewa dole ne a yi amfani da duk ayyukan IaC a duk duniya ga albarkatun ƙungiyar gaba ɗaya. Wanene ke da alhakin wannan ya dogara da ayyukanku. Ƙungiyar DevOps sun fi kwarewa a cikin waɗannan batutuwa, suna ganin dukan hoton abin da ke faruwa. Duk da haka, injiniyoyin QA sun fi shiga cikin tsarin gine-ginen gine-gine da tsarin tsarin bututun, wanda ya ba su damar ganin duk canje-canjen da ake bukata da damar ingantawa. Mafi kyawun zaɓi shine yin aiki tare, musayar ilimi da ra'ayoyi don cimma sakamakon da ake sa ran. 

Ga 'yan misalan amfani da Terraform da Mai yiwuwa a cikin mahallin gwajin sarrafa kansa da kayan aikin da muka tattauna a baya:

1. Bayyana mahimman halaye da sigogin VMs da gungu ta amfani da Terraform.

2. Yin amfani da Mai yiwuwa, shigar da kayan aikin da ake buƙata don gwaji: docker, Selenoid, Selenium Grid kuma zazzage nau'ikan masu bincike/emulators da ake buƙata.

3. Yin amfani da Terraform, bayyana halaye na VM wanda GitLab Runner za a ƙaddamar da shi.

4. Shigar GitLab Runner da kayan aikin da suka dace ta amfani da Mai yiwuwa, saita saiti da daidaitawa.

Misalin halin yanzu na abubuwan more rayuwa

Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Hanyoyin haɗi don bincika:

Makamantan kayan aikin

Bari mu taƙaita shi!

Mataki
Technology
Kayayyakin aiki,
Ƙimar don kayan aikin atomatik

1
Gudun gida
Node.js, Selenium, Appium

  • Shahararrun kayan aikin yanar gizo da wayar hannu
  • Yana goyan bayan yaruka da dandamali da yawa (ciki har da Node.js)

2
Tsarin sarrafa nau'in 
Git

  • Irin wannan fa'idodi tare da lambar haɓakawa

3
Kwantena
Docker, Selenium Grid, Selenoid (Yanar gizo, Android)

  • Gudun gwaje-gwaje a layi daya
  • Wuraren keɓe
  • Sauƙaƙe, haɓaka sigar sassauƙa
  • Tsayar da albarkatun da ba a yi amfani da su ba
  • Sauki don saita

4
CI/CD
Gitlab CI

  • Gwaji wani ɓangare na bututun
  • Gaggauta Amsa
  • Ganuwa ga duka kamfani/ƙungiyar

5
Sassan girgije
Google Cloud Platform

  • Abubuwan da ake buƙata (muna biya kawai lokacin da ake buƙata)
  • Sauƙi don sarrafawa da sabuntawa
  • Ganuwa da sarrafa duk albarkatun

6
Orchestration
Kubernetes
A cikin mahallin kwantena tare da masu bincike/emulators a cikin kwasfa:

  • Scaling / auto scaling
  • Warkar da kai
  • Sabuntawa da juyawa ba tare da katsewa ba

7
Kamfanoni a matsayin lambar (IaC)
Terraform, Mai yiwuwa

  • Irin wannan fa'ida tare da abubuwan ci gaba
  • Duk amfanin sigar code
  • Sauƙi don yin canje-canje da kiyayewa
  • Cikakken sarrafa kansa

Taswirar taswirar hankali: juyin halitta na abubuwan more rayuwa

mataki 1: Local
Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Mataki 2: VCS
Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

mataki 3: Kwantena 
Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Mataki na 4: CI/CD 
Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

mataki 5: Cloud Platform
Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

mataki 6: Orchestration
Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

mataki 7: ic
Kayan aikin DevOps ba na DevOps bane kawai. Tsarin gina kayan aikin gwaji na atomatik daga karce

Abin da ke gaba?

Don haka, wannan shine ƙarshen labarin. Amma a ƙarshe, Ina so in kafa wasu yarjejeniyoyin tare da ku.

Daga gefen ku
Kamar yadda na fada a farkon, Ina so labarin ya kasance mai amfani kuma ya taimaka muku amfani da ilimin da aka samu a cikin aiki na gaske. Ina kara kuma hanyar haɗi zuwa jagora mai amfani.

Amma ko da bayan haka, kada ku daina, yin aiki, nazarin hanyoyin haɗin gwiwa da littattafai masu dacewa, gano yadda yake aiki a cikin kamfanin ku, nemo wuraren da za a iya ingantawa kuma ku shiga ciki. Sa'a!

Daga gefena

Daga taken za ku ga cewa wannan shi ne kawai kashi na farko. Duk da cewa ya juya ya zama babba, har yanzu ba a rufe batutuwa masu mahimmanci a nan. A kashi na biyu, na yi shirin duba abubuwan more rayuwa ta atomatik a cikin mahallin IOS. Saboda ƙuntatawa na Apple akan gudanar da na'urar kwaikwayo ta iOS kawai akan tsarin macOS, an rage kewayon hanyoyin mu. Misali, ba za mu iya amfani da Docker don gudanar da na'urar kwaikwayo ko gajimare na jama'a don gudanar da injunan kama-da-wane ba. Amma wannan baya nufin cewa babu wasu hanyoyin. Zan yi ƙoƙarin ci gaba da sabunta ku tare da ci-gaba mafita da kayan aikin zamani!

Har ila yau, ban ambaci manyan batutuwan da suka shafi sa ido ba. A cikin Sashe na 3, zan duba shahararrun kayan aikin sa ido kan ababen more rayuwa da waɗanne bayanai da ma'auni don yin la'akari da su.

Kuma a karshe. A nan gaba, na yi shirin saki wani kwas na bidiyo game da gina kayan aikin gwaji da kayan aiki masu shahara. A halin yanzu, akwai ƴan darussa da laccoci akan DevOps akan Intanet, amma duk kayan ana gabatar dasu a cikin mahallin ci gaba, ba injina na gwaji ba. A kan wannan batu, ina buƙatar ra'ayi da gaske kan ko irin wannan karatun zai kasance mai ban sha'awa da kuma daraja ga al'ummar masu gwadawa da injiniyoyi masu sarrafa kansa. Na gode a gaba!

source: www.habr.com

Add a comment