Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Pàirt 1: Lìn / Android

thuirt: tha an artaigil seo na eadar-theangachadh gu Ruisis den artaigil thùsail “Chan ann a-mhàin airson DevOps a tha innealan DevOps. “A’ togail bun-structar fèin-ghluasaid deuchainn bhon fhìor thoiseach. ” Ach, tha a h-uile dealbh, ceangal, cuòt agus teirm air an gleidheadh ​​​​anns a’ chànan thùsail gus saobhadh ciall a sheachnadh nuair a thèid eadar-theangachadh gu Ruisis. Tha mi a 'guidhe gum bi thu toilichte a bhith ag ionnsachadh!

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

An-dràsta, is e speisealachd DevOps aon den fheadhainn as motha a tha ag iarraidh anns a’ ghnìomhachas IT. Ma dh’fhosglas tu làraich sgrùdaidh obrach mòr-chòrdte agus sìoladh a rèir tuarastal, chì thu gu bheil obraichean co-cheangailte ri DevOps aig mullach na liosta. Ach, tha e cudromach tuigsinn gu bheil seo gu ìre mhòr a’ toirt iomradh air suidheachadh ‘Sinsearach’, a tha a’ ciallachadh gu bheil ìre àrd de sgilean, eòlas air teicneòlas agus innealan aig an tagraiche. Tha seo cuideachd a 'tighinn le ìre àrd de dhleastanas co-cheangailte ri gnìomhachd riochdachaidh gun bhriseadh. Ach, thòisich sinn a’ dìochuimhneachadh dè a th’ ann an DevOps. An toiseach, cha b' e neach no roinn shònraichte a bh' ann. Ma choimheadas sinn airson mìneachaidhean air an teirm seo, lorgaidh sinn mòran ainmearan brèagha agus ceart, leithid modh-obrach, cleachdaidhean, feallsanachd cultarach, buidheann bhun-bheachdan, agus mar sin air adhart.

Tha an speisealachadh agam mar innleadair fèin-ghluasaid deuchainn (innleadair fèin-ghluasaid QA), ach tha mi den bheachd nach bu chòir a bhith co-cheangailte ri bhith a’ sgrìobhadh fèin-dheuchainnean a-mhàin no a ’leasachadh ailtireachd frèam deuchainn. Ann an 2020, tha eòlas air bun-structar fèin-ghluasaid riatanach cuideachd. Leigidh seo leat am pròiseas fèin-ghluasaid a chuir air dòigh thu fhèin, bho bhith a’ ruith dheuchainnean gu bhith a’ toirt seachad toraidhean don h-uile neach-ùidh a rèir na h-amasan agad. Mar thoradh air an sin, tha sgilean DevOps riatanach gus an obair a dhèanamh. Agus tha seo uile math, ach, gu mì-fhortanach, tha duilgheadas ann (spoiler: tha an artaigil seo a 'feuchainn ris an duilgheadas seo a dhèanamh nas sìmplidhe). Is e a’ phuing gu bheil DevOps cruaidh. Agus tha seo follaiseach, leis nach bi companaidhean a’ pàigheadh ​​mòran airson rudeigin a tha furasta a dhèanamh... Ann an saoghal DevOps, tha àireamh mhòr de dh’ innealan, teirmean is cleachdaidhean a dh’ fheumar a mhaighstireachd. Tha seo gu sònraichte duilich aig toiseach dreuchd agus an urra ris an eòlas theicnigeach cruinnichte.

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach
Source: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

An seo is dòcha gun crìochnaich sinn leis a’ phàirt tòiseachaidh agus gun cuir sinn fòcas air adhbhar an artaigil seo. 

Cò mu dheidhinn a tha an artaigil seo?

San artaigil seo, tha mi a’ dol a cho-roinn m ’eòlas air togail bun-structar fèin-ghluasaid deuchainn. Tha mòran stòran fiosrachaidh air an eadar-lìn mu dhiofar innealan agus mar a chleachdas iad iad, ach bu mhath leam coimhead orra dìreach ann an co-theacsa fèin-ghluasaid. Tha mi a’ creidsinn gu bheil mòran innleadairean fèin-ghluasaid eòlach air an t-suidheachadh nuair nach eil duine ach thusa a’ ruith nan deuchainnean leasaichte no a’ gabhail cùram mu bhith gan cumail. Mar thoradh air an sin, bidh deuchainnean a’ fàs seann-fhasanta agus feumaidh tu ùine a chaitheamh gan ùrachadh. A-rithist, aig toiseach dreuchd, faodaidh seo a bhith gu math doirbh obair: gu glic co-dhùnadh dè na h-innealan a bu chòir cuideachadh a 'cur às do dhuilgheadas sònraichte, mar a thaghadh, a rèiteachadh agus a chumail suas. Bidh cuid de luchd-dearbhaidh a’ tionndadh gu DevOps (daoine) airson cuideachadh agus, leig leinn a bhith onarach, tha an dòigh-obrach seo ag obair. Ann an iomadh cùis is dòcha gur e seo an aon roghainn leis nach eil faicsinneachd againn anns a h-uile eisimeileachd. Ach mar a tha fios againn, tha DevOps nan daoine gu math trang, oir feumaidh iad smaoineachadh air bun-structar, cleachdadh, sgrùdadh, microservices agus gnìomhan eile den aon seòrsa a rèir na buidhne / sgioba. Mar as àbhaist, chan eil fèin-ghluasad na phrìomhachas. Ann an leithid de chùis, feumaidh sinn feuchainn ris a h-uile rud as urrainn dhuinn a dhèanamh nar pàirt bho thoiseach gu deireadh. Lùghdaichidh seo eisimeileachd, luathaichidh seo sruth-obrach, leasaichidh sinn ar sgilean agus bheir e cothrom dhuinn dealbh nas motha fhaicinn de na tha a’ tachairt.

Tha an artaigil a’ taisbeanadh na h-innealan as mòr-chòrdte agus as mòr-chòrdte agus a ’sealltainn mar a chleachdas tu iad gus bun-structar fèin-ghluasaid a thogail ceum air cheum. Tha gach buidheann air a riochdachadh le innealan a chaidh a dhearbhadh tro eòlas pearsanta. Ach chan eil sin a 'ciallachadh gum feum thu an aon rud a chleachdadh. Chan eil na h-innealan fhèin cudromach, bidh iad a 'nochdadh agus a' dol à bith. Is e an obair innleadaireachd againn na prionnsapalan bunaiteach a thuigsinn: carson a tha feum againn air a’ bhuidheann innealan seo agus dè na duilgheadasan obrach as urrainn dhuinn fhuasgladh leis an cuideachadh. Sin as coireach aig deireadh gach earrann bidh mi a’ fàgail cheanglaichean gu innealan coltach ris a dh’fhaodar a chleachdadh sa bhuidheann agad.

Dè nach eil san artaigil seo

Bidh mi ag ràdh a-rithist nach eil an artaigil mu dheidhinn innealan sònraichte, agus mar sin cha bhith cuir a-steach còd bho na sgrìobhainnean agus tuairisgeul air òrdughan sònraichte. Ach aig deireadh gach earrann bidh mi a’ fàgail cheanglaichean airson sgrùdadh mionaideach.

Tha seo air a dhèanamh air sgàth: 

  • Tha an stuth seo gu math furasta a lorg ann an diofar stòran (sgrìobhainnean, leabhraichean, cùrsaichean bhidio);
  • ma thòisicheas sinn a 'dol nas doimhne, feumaidh sinn 10, 20, 30 pàirtean den artaigil seo a sgrìobhadh (fhad's a tha na planaichean 2-3);
  • Chan eil mi dìreach airson do chuid ùine a chaitheamh oir is dòcha gum biodh tu airson innealan eile a chleachdadh gus na h-aon amasan a choileanadh.

Cleachdaich

Bu mhath leam gu mòr gum biodh an stuth seo feumail don h-uile leughadair, agus gun a bhith dìreach air a leughadh agus air a dhìochuimhneachadh. Ann an sgrùdadh sam bith, tha cleachdadh na phàirt glè chudromach. Airson seo tha mi air ullachadh Stòr GitHub le stiùireadh ceum air cheum air mar a nì thu a h-uile càil bhon toiseach. Tha obair-dachaigh ann cuideachd gus dèanamh cinnteach nach dèan thu leth-bhreac de loidhnichean nan òrduighean a tha thu a’ cur an gnìomh.

Plana

ceum
Teicneòlas
innealan

1
Ruith ionadail (ullaich deuchainnean demo lìn / android agus ruith e gu h-ionadail) 
Node.js, Selenium, Appium

2
Tionndadh siostaman smachd 
dhol

3
Containerization
Docker, cliath Selenium, Selenoid (Lìon, Android)

4
CI/CD
Gitlab CI

5
Àrd-ùrlaran sgòthan
Google geala Àrd-chabhsair

6
Orcastra
Kubernetes

7
Bun-structair mar chòd (IaC)
Cruth-tìre, freagarrach

Structar gach earrann

Gus an aithris a chumail soilleir, tha gach earrann air a mhìneachadh a rèir an fhiosrachaidh a leanas:

  • tuairisgeul goirid air an teicneòlas,
  • luach airson bun-structar fèin-ghluasaid,
  • dealbh de staid làithreach a’ bhun-structair,
  • ceanglaichean gu ionnsachadh,
  • innealan coltach ris.

1. Ruith deuchainnean gu h-ionadail

Tuairisgeul goirid air an teicneòlas

Is e seo dìreach ceum ullachaidh airson na deuchainnean demo a ruith gu h-ionadail agus dearbhadh gu bheil iad seachad. Anns a 'phàirt phractaigeach, tha Node.js air a chleachdadh, ach chan eil an cànan prògramadh agus an àrd-ùrlar cudromach cuideachd agus faodaidh tu an fheadhainn a tha air an cleachdadh sa chompanaidh agad a chleachdadh. 

Ach, mar innealan fèin-ghluasaid, tha mi a ’moladh a bhith a’ cleachdadh Selenium WebDriver airson àrd-ùrlaran lìn agus Appium airson an àrd-ùrlar Android, fa leth, oir anns na h-ath cheumannan cleachdaidh sinn ìomhaighean Docker a tha air an dealbhadh gus obrachadh gu sònraichte leis na h-innealan sin. A bharrachd air an sin, a ’toirt iomradh air riatanasan obrach, is e na h-innealan sin an fheadhainn as motha a tha ag iarraidh air a’ mhargaidh.

Mar is dòcha gu bheil thu air mothachadh, cha bhith sinn a’ beachdachadh ach air deuchainnean lìn is Android. Gu mì-fhortanach, tha iOS na sgeulachd gu tur eadar-dhealaichte (taing Apple). Tha mi an dùil fuasglaidhean agus cleachdaidhean co-cheangailte ri IOS a thaisbeanadh anns na pàirtean ri thighinn.

Luach airson bun-structar fèin-ghluasaid

Bho shealladh bun-structair, chan eil ruith gu h-ionadail a’ toirt luach sam bith. Cha dèan thu cinnteach ach gu bheil na deuchainnean a’ ruith air an inneal ionadail ann am brobhsairean ionadail agus simuladairean. Ach ann an suidheachadh sam bith, tha seo na thoiseach tòiseachaidh riatanach.

Dealbh de staid a’ bhun-structair an-dràsta

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceanglaichean ri rannsachadh

Innealan coltach ris

  • cànan prògramadh sam bith a thogras tu an co-bhonn ri deuchainnean Selenium / Appium;
  • deuchainnean sam bith;
  • ruitheadair deuchainn sam bith.

2. Tionndadh siostaman smachd (Git)

Tuairisgeul goirid air an teicneòlas

Cha bhith e na fhoillseachadh mòr do dhuine sam bith ma chanas mi gu bheil smachd dreach na phàirt air leth cudromach de leasachadh, an dà chuid ann an sgioba agus leotha fhèin. Stèidhichte air diofar stòran, tha e sàbhailte a ràdh gur e Git an riochdaire as mòr-chòrdte. Tha siostam smachd dreach a’ toirt seachad mòran bhuannachdan, leithid roinneadh chòd, stòradh dhreachan, ath-nuadhachadh gu meuran roimhe, cumail sùil air eachdraidh pròiseict, agus cùl-taic. Cha bhith sinn a’ bruidhinn gu mionaideach air gach puing, oir tha mi cinnteach gu bheil thu gu math eòlach air agus a chleachdadh nad obair làitheil. Ach mura h-eil gu h-obann, tha mi a’ moladh stad a bhith a’ leughadh an artaigil seo agus a’ lìonadh a’ bheàrn seo cho luath ‘s a ghabhas.

Luach airson bun-structar fèin-ghluasaid

Agus an seo faodaidh tu ceist reusanta fhaighneachd: “Carson a tha e ag innse dhuinn mu Git? Tha fios aig a h-uile duine air seo agus bidh iad ga chleachdadh an dà chuid airson còd leasachaidh agus airson còd deuchainn fèin-ghluasadach.” Bidh thu gu tur ceart, ach san artaigil seo tha sinn a’ bruidhinn mu bhun-structar agus tha an roinn seo ag obair mar ro-shealladh airson earrann 7: “Bun-structair mar Chòd (IaC)”. Dhuinne, tha seo a’ ciallachadh gu bheil am bun-structar gu lèir, a’ toirt a-steach deuchainn, air a mhìneachadh ann an cruth còd, gus an urrainn dhuinn cuideachd siostaman dreach a chuir an sàs ann agus buannachdan co-chosmhail fhaighinn ri còd leasachaidh agus fèin-ghluasaid.

Bheir sinn sùil nas mionaidiche air IaC ann an Ceum 7, ach eadhon a-nis faodaidh tu tòiseachadh air Git a chleachdadh gu h-ionadail le bhith a’ cruthachadh stòr ionadail. Thèid an dealbh mhòr a leudachadh nuair a chuireas sinn stòr iomallach ris a’ bhun-structar.

Dealbh de staid a’ bhun-structair an-dràsta

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceanglaichean ri rannsachadh

Innealan coltach ris

3. Containerization (Docker)

Tuairisgeul goirid air an teicneòlas

Gus sealltainn mar a tha containerization air riaghailtean a’ gheama atharrachadh, rachamaid air ais ann an tìm beagan dheicheadan. Air ais an uairsin, cheannaich agus chleachd daoine innealan frithealaiche gus tagraidhean a ruith. Ach sa mhòr-chuid de chùisean, cha robh fios ro-làimh dè na goireasan tòiseachaidh a bha a dhìth. Mar thoradh air an sin, chosg companaidhean airgead air ceannach frithealaichean daor, cumhachdach, ach cha deach cuid den chomas seo a chleachdadh gu tur.

B 'e an ath ìre de mean-fhàs innealan mas-fhìor (VMan), a dh' fhuasgail an duilgheadas a thaobh a bhith a 'caitheamh airgead air goireasan nach deach a chleachdadh. Rinn an teicneòlas seo e comasach tagraidhean a ruith gu neo-eisimeileach bho chèile taobh a-staigh an aon fhrithealaiche, a’ riarachadh àite gu tur iomallach. Ach, gu mì-fhortanach, tha na h-eas-bhuannachdan aig teicneòlas sam bith. Feumaidh ruith VM siostam obrachaidh slàn, a bhios ag ithe CPU, RAM, stòradh agus, a rèir an OS, feumar suim a ghabhail de chosgaisean ceadachais. Bidh na factaran sin a’ toirt buaidh air astar luchdachadh agus ga dhèanamh duilich comas giùlain.

Agus a-nis tha sinn a 'tighinn gu containerization. A-rithist, bidh an teicneòlas seo a ’fuasgladh na duilgheadas a bh’ ann roimhe, leis nach bi soithichean a ’cleachdadh làn OS, a bhios a’ saoradh mòran ghoireasan agus a bheir seachad fuasgladh luath is sùbailte airson comas giùlain.

Gu dearbh, chan eil teicneòlas containerization dad ùr agus chaidh a thoirt a-steach an toiseach aig deireadh na 70n. Anns na làithean sin, chaidh tòrr rannsachaidh, leasachaidhean agus oidhirpean a dhèanamh. Ach b 'e Docker a dh' atharraich an teicneòlas seo agus a rinn e furasta dha na daoine mòra. An-diugh, nuair a bhios sinn a’ bruidhinn mu dheidhinn soithichean, sa mhòr-chuid tha sinn a’ ciallachadh Docker. Nuair a bhios sinn a’ bruidhinn mu dheidhinn soithichean Docker, tha sinn a’ ciallachadh soithichean Linux. Is urrainn dhuinn siostaman Windows agus macOS a chleachdadh gus soithichean a ruith, ach tha e cudromach tuigsinn gu bheil còmhdach a bharrachd a’ nochdadh sa chùis seo. Mar eisimpleir, bidh Docker on Mac gu sàmhach a’ ruith shoithichean taobh a-staigh Linux VM aotrom. Tillidh sinn chun chuspair seo nuair a bhios sinn a ’bruidhinn mu bhith a’ ruith emuladairean Android taobh a-staigh soithichean, agus mar sin an seo tha nuance glè chudromach a dh ’fheumar a dheasbad nas mionaidiche.

Luach airson bun-structar fèin-ghluasaid

Fhuair sinn a-mach gu bheil containerization agus Docker fionnar. Bheir sinn sùil air seo ann an co-theacsa fèin-ghluasad, oir feumaidh gach inneal no teicneòlas fuasgladh fhaighinn air duilgheadas. Bheir sinn cunntas air na duilgheadasan follaiseach a tha aig fèin-ghluasad deuchainn ann an co-theacsa deuchainnean UI:

  • àireamh mhòr de eisimeileachd nuair a bhios tu a 'stàladh Selenium agus gu sònraichte Appium;
  • duilgheadasan co-chòrdalachd eadar dreachan de bhrobhsairean, simuladairean agus draibhearan;
  • dìth àite iomallach airson brobhsairean / simuladairean, a tha gu sònraichte deatamach airson ruith co-shìnte;
  • duilich a riaghladh agus a chumail suas ma dh’ fheumas tu 10, 50, 100 no eadhon 1000 brobhsair a ruith aig an aon àm.

Ach leis gur e Selenium an inneal fèin-ghluasaid as mòr-chòrdte agus gur e Docker an inneal gleidhidh as mòr-chòrdte, cha bu chòir dha a bhith na iongnadh gu bheil cuideigin air feuchainn rin cur còmhla gus inneal cumhachdach a chruthachadh gus fuasgladh fhaighinn air na duilgheadasan a chaidh ainmeachadh gu h-àrd. Beachdaichidh sinn air fuasglaidhean mar sin ann am barrachd mionaideachd. 

Grid selenium ann an docker

Is e an inneal seo am fear as mòr-chòrdte ann an saoghal Selenium airson a bhith a’ ruith grunn bhrobhsairean air ioma-inneal agus gan riaghladh bho phrìomh ionad. Gus tòiseachadh, feumaidh tu co-dhiù 2 phàirt a chlàradh: Hub agus Node(s). Tha Hub na ionad meadhanach a gheibh gach iarrtas bho dheuchainnean agus gan sgaoileadh gu na Nodes iomchaidh. Airson gach Node is urrainn dhuinn rèiteachadh sònraichte a rèiteachadh, mar eisimpleir, le bhith a’ sònrachadh am brabhsair a tha thu ag iarraidh agus an dreach aige. Ach, feumaidh sinn fhathast aire a thoirt do dhraibhearan brabhsair co-fhreagarrach sinn fhìn agus an stàladh air na Nodes a tha thu ag iarraidh. Air an adhbhar seo, chan eilear a’ cleachdadh cliath Selenium anns a’ chruth fhìor aige, ach a-mhàin nuair a dh’ fheumas sinn a bhith ag obair le brobhsairean nach gabh a chuir a-steach air Linux OS. Airson a h-uile cùis eile, bhiodh fuasgladh gu math sùbailte agus ceart ann a bhith a’ cleachdadh ìomhaighean Docker gus Hub Grid Selenium agus Nodes a ruith. Tha an dòigh-obrach seo gu mòr a’ sìmpleachadh riaghladh nodan, oir is urrainn dhuinn an ìomhaigh a tha a dhìth oirnn a thaghadh le dreachan co-chosmhail de bhrobhsairean agus draibhearan a chaidh a chuir a-steach mu thràth.

A dh ’aindeoin lèirmheasan àicheil mu sheasmhachd, gu sònraichte nuair a bhios tu a’ ruith àireamh mhòr de Nodes aig an aon àm, is e griod Selenium fhathast an inneal as mòr-chòrdte airson deuchainnean Selenium a ruith aig an aon àm. Tha e cudromach a bhith mothachail gu bheil diofar leasachaidhean agus atharrachaidhean air an inneal seo an-còmhnaidh a’ nochdadh ann an stòr fosgailte, a bhios a’ sabaid diofar bhotail.

Selenoid airson lìn a

Tha an inneal seo na adhartas mòr ann an saoghal Selenium oir tha e ag obair a-mach às a’ bhogsa agus tha e air beatha mòran innleadairean fèin-ghluasaid a dhèanamh gu math nas fhasa. An toiseach, chan e atharrachadh eile a tha seo air cliath Selenium. An àite sin, chruthaich an luchd-leasachaidh dreach gu tur ùr de Selenium Hub ann an Golang, a thug, còmhla ri ìomhaighean aotrom Docker airson diofar brobhsairean, spionnadh do leasachadh fèin-ghluasad deuchainn. A bharrachd air an sin, a thaobh Selenium Grid, feumaidh sinn na brobhsairean riatanach agus na dreachan aca a dhearbhadh ro-làimh, rud nach eil na dhuilgheadas nuair a bhios tu ag obair le dìreach aon bhrobhsair. Ach nuair a thig e gu grunn bhrobhsairean le taic, is e Selenoid am prìomh fhuasgladh le taing don fheart ‘brabhsair air iarrtas’ aige. Chan eil a dhìth oirnn ach na h-ìomhaighean riatanach a luchdachadh sìos le brobhsairean ro-làimh agus am faidhle rèiteachaidh leis a bheil Selenoid ag eadar-obrachadh ùrachadh. Às deidh dha Selenoid iarrtas fhaighinn bho na deuchainnean, cuiridh e air bhog gu fèin-ghluasadach an soitheach a tha thu ag iarraidh leis a ’bhrobhsair a tha thu ag iarraidh. Nuair a bhios an deuchainn deiseil, leigidh Selenoid an soitheach air falbh, agus mar sin a’ saoradh ghoireasan airson iarrtasan san àm ri teachd. Tha an dòigh-obrach seo gu tur a’ cur às don duilgheadas ainmeil a thaobh ‘lobhadh nod’ a choinnicheas sinn gu tric ann an cliath Selenium.

Ach, mo thruaighe, chan e peilear airgid a th’ ann an Selenoid fhathast. Fhuair sinn am feart ‘brabhsair air iarrtas’, ach chan eil am feart ‘goireasan air iarrtas’ fhathast ri fhaighinn. Gus Selenoid a chleachdadh, feumaidh sinn a chuir a-steach air bathar-cruaidh corporra no air VM, a tha a ’ciallachadh gum feum fios a bhith againn ro-làimh cia mheud goireas a dh’ fheumar a riarachadh. Tha mi creidsinn nach e duilgheadas a tha seo airson pròiseactan beaga a bhios a’ ruith 10, 20 no eadhon brobhsairean 30 aig an aon àm. Ach dè ma tha feum againn air 100, 500, 1000 no barrachd? Chan eil e ciallach a bhith a’ cumail suas agus a’ pàigheadh ​​airson uimhir de ghoireasan fad na h-ùine. Ann an earrannan 5 agus 6 den artaigil seo, bruidhnidh sinn air fuasglaidhean a leigeas leat sgèile, agus mar sin a’ lughdachadh cosgaisean companaidh gu mòr.

Selenoid airson Android

Às deidh soirbheachas Selenoid mar inneal fèin-ghluasaid lìn, bha daoine ag iarraidh rudeigin coltach ris airson Android. Agus thachair e - chaidh Selenoid a leigeil ma sgaoil le taic Android. Bho shealladh neach-cleachdaidh àrd-ìre, tha am prionnsapal obrachaidh coltach ri fèin-ghluasad lìn. Is e an aon eadar-dhealachadh, an àite soithichean brobhsair, gu bheil Selenoid a’ ruith soithichean emuladair Android. Nam bheachd-sa, is e seo an-dràsta an inneal an-asgaidh as cumhachdaiche airson deuchainnean Android a ruith aig an aon àm.

Cha bu toil leam gu mòr bruidhinn mu na taobhan àicheil den inneal seo, oir tha e a’ còrdadh rium gu mòr. Ach fhathast, tha na h-aon eas-bhuannachdan ann a tha a’ buntainn ri fèin-ghluasad lìn agus a tha co-cheangailte ri sgèileadh. A bharrachd air an seo, feumaidh sinn bruidhinn mu aon chuingealachadh eile a dh’ fhaodadh a bhith na iongnadh ma tha sinn a’ stèidheachadh an inneal airson a’ chiad uair. Gus dealbhan Android a ruith, feumaidh sinn inneal corporra no VM le taic virtualization neadachaidh. Anns an stiùireadh ciamar, tha mi a’ sealltainn mar a chuireas mi seo an comas air Linux VM. Ach, ma tha thu nad neach-cleachdaidh macOS agus gu bheil thu airson Selenoid a chleachdadh gu h-ionadail, cha bhith e comasach seo deuchainnean Android a ruith. Ach faodaidh tu an-còmhnaidh Linux VM a ruith gu h-ionadail le ‘neadachadh virtualization’ air a rèiteachadh agus a chuir a-steach Selenoid a-staigh.

Dealbh de staid a’ bhun-structair an-dràsta

Ann an co-theacsa an artaigil seo, cuiridh sinn innealan 2 ris gus am bun-structar a nochdadh. Is iad sin cliath Selenium airson deuchainnean lìn agus Selenoid airson deuchainnean Android. Anns an oideachadh GitHub, seallaidh mi dhut cuideachd mar a chleachdas tu Selenoid gus deuchainnean lìn a ruith. 

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceanglaichean ri rannsachadh

Innealan coltach ris

  • Tha innealan gleidhidh eile ann, ach is e Docker am fear as mòr-chòrdte. Ma tha thu airson rudeigin eile fheuchainn, cumaibh cuimhne nach obraich na h-innealan a tha sinn air a chòmhdach airson deuchainnean Selenium a ruith aig an aon àm a-mach às a’ bhogsa.  
  • Mar a chaidh a ràdh roimhe, tha mòran atharrachaidhean air a 'ghriod Selenium, mar eisimpleir, Zalenium.

4.CI/CD

Tuairisgeul goirid air an teicneòlas

Tha fèill mhòr air cleachdadh amalachadh leantainneach ann an leasachadh agus tha e co-ionann ri siostaman smachd dreach. A dh’aindeoin sin, tha mi a’ faireachdainn gu bheil troimh-chèile ann am briathrachas. Anns a’ pharagraf seo bu mhath leam cunntas a thoirt air atharrachaidhean 3 air an teicneòlas seo bho mo shealladh. Air an eadar-lìon gheibh thu mòran artaigilean le diofar mhìneachaidhean, agus tha e gu tur àbhaisteach ma tha do bheachd eadar-dhealaichte. Is e an rud as cudromaiche gu bheil thu air an aon duilleag le do cho-obraichean.

Mar sin, tha 3 teirmean ann: CI - Amalachadh Leantainneach, CD - Lìbhrigeadh Leantainneach agus a-rithist CD - Cleachdadh Leantainneach. (Gu h-ìosal cleachdaidh mi na briathran seo sa Bheurla). Bidh gach atharrachadh a’ cur grunn cheumannan a bharrachd ris an loidhne-phìoban leasachaidh agad. Ach am facal leantainneach (leanmhainn) an rud as cudromaiche. Anns a’ cho-theacsa seo, tha sinn a’ ciallachadh rudeigin a thachras bho thoiseach gu deireadh, gun bhriseadh no eadar-theachd làimhe. Bheir sinn sùil air CI & CD agus CD sa cho-theacsa seo.

  • Amalachadh leantainneach 's e seo a' chiad cheum de mean-fhàs. Às deidh dhuinn còd ùr a chuir a-steach don t-seirbheisiche, tha sinn an dùil fios air ais sgiobalta fhaighinn gu bheil na h-atharrachaidhean againn ceart gu leòr. Mar as trice, bidh CI a’ toirt a-steach a bhith a’ ruith innealan sgrùdaidh còd statach agus deuchainnean API aonad/a-staigh.Leigidh seo leinn fiosrachadh fhaighinn mun chòd againn taobh a-staigh beagan dhiog/mionaidean.
  • Lìbhrigeadh leantainneach na cheum nas adhartaiche far am bi sinn a’ ruith deuchainnean amalachaidh/UI. Ach, aig an ìre seo chan eil sinn a’ faighinn toraidhean cho luath ’s a tha iad le CI. An toiseach, bheir an seòrsa deuchainnean seo nas fhaide airson a chrìochnachadh. San dàrna h-àite, mus tèid a chuir air bhog, feumaidh sinn na h-atharrachaidhean againn a chuir an sàs san àrainneachd deuchainn / àrd-ùrlar. A bharrachd air an sin, ma tha sinn a’ bruidhinn mu leasachadh gluasadach, tha coltas ann gu bheil ceum a bharrachd ann gus togail den tagradh againn a chruthachadh.
  • Cleachdadh leantainneach a’ gabhail ris gun leig sinn a-mach na h-atharrachaidhean againn gu cinneasachadh gu fèin-ghluasadach ma chaidh a h-uile deuchainn gabhail seachad anns na h-ìrean roimhe. A bharrachd air an seo, às deidh an ìre fuasglaidh, faodaidh tu diofar ìrean a rèiteachadh, leithid ruith deuchainnean ceò air cinneasachadh agus cruinneachadh meatrach inntinneach. Chan eil cleachdadh leantainneach comasach ach le deagh chòmhdach le deuchainnean fèin-ghluasadach. Ma tha feum air eadar-theachdan làimhe, a’ toirt a-steach deuchainn, chan eil seo ann tuilleadh Leantainneach (leanmhainn). An uairsin faodaidh sinn a ràdh gu bheil an loidhne-phìoban againn a’ gèilleadh a-mhàin ri cleachdadh Lìbhrigeadh Leantainneach.

Luach airson bun-structar fèin-ghluasaid

Anns an earrainn seo, bu chòir dhomh soilleireachadh nuair a bhios sinn a’ bruidhinn mu dheuchainnean UI deireadh-gu-deireadh, gu bheil e a’ ciallachadh gum bu chòir dhuinn na h-atharrachaidhean agus na seirbheisean co-cheangailte againn a chuir an sàs ann an àrainneachdan deuchainn. Amalachadh Leantainneach - chan eil am pròiseas iomchaidh airson na h-obrach seo agus feumaidh sinn aire a thoirt do bhith a’ buileachadh co-dhiù cleachdaidhean Lìbhrigeadh Leantainneach. Bidh cleachdadh leantainneach cuideachd a’ dèanamh ciall ann an co-theacsa deuchainnean UI ma tha sinn gu bhith gan ruith ann an cinneasachadh.

Agus mus coimhead sinn air an dealbh den atharrachadh ailtireachd, tha mi airson beagan fhaclan a ràdh mu GitLab CI. Eu-coltach ri innealan CI / CD eile, tha GitLab a 'toirt seachad stòras iomallach agus mòran fheartan a bharrachd. Mar sin, tha GitLab nas motha na CI. Tha e a’ toirt a-steach riaghladh còd stòr, riaghladh Agile, pìoban CI / CD, innealan logaidh agus cruinneachadh meatrach a-mach às a’ bhogsa. Tha ailtireachd GitLab air a dhèanamh suas de Gitlab CI / CD agus GitLab Runner. Seo tuairisgeul goirid bhon làrach-lìn oifigeil:

Is e aplacaid lìn a th’ ann an Gitlab CI/CD le API a bhios a’ stòradh a staid ann an stòr-dàta, a’ riaghladh phròiseactan/togail agus a’ toirt seachad eadar-aghaidh cleachdaiche. Is e tagradh a th’ ann an GitLab Runner a bhios a’ togail pròiseas. Faodar a chleachdadh air leth agus bidh e ag obair le GitLab CI / CD tro API. Airson deuchainnean ruith feumaidh tu an dà chuid eisimpleir Gitlab agus Runner.

Dealbh de staid a’ bhun-structair an-dràsta

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceanglaichean ri rannsachadh

Innealan coltach ris

5. Àrd-ùrlaran sgòthan

Tuairisgeul goirid air an teicneòlas

Anns an earrainn seo bruidhnidh sinn mu ghluasad mòr-chòrdte ris an canar 'neòil phoblach'. A dh’ aindeoin na buannachdan mòra a tha na teicneòlasan virtualization agus container a tha air am mìneachadh gu h-àrd a’ toirt seachad, tha feum againn fhathast air goireasan coimpiutaireachd. Bidh companaidhean a’ ceannach frithealaichean daor no a’ faighinn ionadan dàta air màl, ach sa chùis seo feumar àireamhachadh a dhèanamh (uaireannan neo-phractaigeach) air cia mheud goireas a dh’ fheumas sinn, am bi sinn gan cleachdadh 24/7 agus airson na h-adhbharan. Mar eisimpleir, feumaidh cinneasachadh frithealaiche a tha a’ ruith XNUMX/XNUMX, ach a bheil feum againn air goireasan coltach ris airson deuchainn taobh a-muigh uairean obrach? Tha e cuideachd an urra ris an t-seòrsa deuchainn a thathar a’ dèanamh. Mar eisimpleir bhiodh deuchainnean luchdan / cuideam a tha sinn an dùil a ruith rè uairean neo-obrach gus toraidhean fhaighinn an ath latha. Ach gu cinnteach chan eil feum air frithealaiche XNUMX/XNUMX airson deuchainnean fèin-ghluasadach deireadh-gu-deireadh agus gu sònraichte chan ann airson àrainneachdan deuchainn làimhe. Airson leithid de shuidheachaidhean, bhiodh e math na h-uimhir de ghoireasan fhaighinn air iarrtas, an cleachdadh, agus stad a phàigheadh ​​​​nuair nach eil feum orra tuilleadh. A bharrachd air an sin, bhiodh e math am faighinn sa bhad le bhith a’ dèanamh beagan chlican luchag no a’ ruith sgriobt no dhà. Is ann airson seo a thathas a’ cleachdadh sgòthan poblach. Bheir sinn sùil air a’ mhìneachadh:

“Tha an sgòth poblach air a mhìneachadh mar sheirbheisean coimpiutaireachd a tha solaraichean treas-phàrtaidh a’ tabhann thairis air an eadar-lìn poblach, gan toirt seachad do dhuine sam bith a tha airson an cleachdadh no an ceannach. Faodaidh iad a bhith an-asgaidh no air an reic air iarrtas, a’ leigeil le luchd-ceannach pàigheadh ​​​​a-mhàin airson gach cleachdadh airson na cuairtean CPU, stòradh, no leud-bann a bhios iad ag ithe. ”

Tha beachd ann gu bheil sgòthan poblach daor. Ach is e am prìomh bheachd aca cosgaisean companaidh a lughdachadh. Mar a chaidh ainmeachadh roimhe, leigidh sgòthan poblach leat goireasan fhaighinn air iarrtas agus pàigheadh ​​​​dìreach airson na h-ùine a chleachdas tu iad. Cuideachd, uaireannan bidh sinn a 'dìochuimhneachadh gu bheil luchd-obrach a' faighinn tuarastalan, agus tha eòlaichean cuideachd daor goireas. Feumar a bhith mothachail gu bheil sgòthan poblach a 'dèanamh taic bun-structair gu math nas fhasa, a leigeas le innleadairean fòcas a chur air gnìomhan nas cudromaiche. 

Luach airson bun-structar fèin-ghluasaid

Dè na goireasan sònraichte a tha a dhìth oirnn airson deuchainnean UI deireadh-gu-deireadh? Gu bunaiteach is e innealan brìgheil no cruinneachaidhean a tha seo (bruidhnidh sinn mu Kubernetes san ath earrann) airson brobhsairean agus emuladairean a ruith. Mar as motha de bhrabhsairean agus de luchd-aithris a tha sinn airson a ruith aig an aon àm, is ann as motha de CPU agus cuimhne a bhios a dhìth agus mar as motha de dh’ airgead a dh’ fheumas sinn pàigheadh ​​air a shon. Mar sin, tha sgòthan poblach ann an co-theacsa fèin-ghluasad deuchainn a’ leigeil leinn àireamh mhòr (100, 200, 1000...) de bhrobhsairean / emuladairean a ruith air iarrtas, toraidhean deuchainn fhaighinn cho luath ‘s a ghabhas agus stad a bhith a’ pàigheadh ​​​​airson a leithid de dhian-ghoireasan. cumhachd. 

Is e na solaraichean sgòthan as mòr-chòrdte Seirbheisean Lìn Amazon (AWS), Microsoft Azure, Google Cloud Platform (GCP). Tha an stiùireadh mar a nì thu a’ toirt seachad eisimpleirean air mar a chleachdas tu GCP, ach san fharsaingeachd chan eil e gu diofar dè a chleachdas tu airson gnìomhan fèin-ghluasaid. Bidh iad uile a’ toirt seachad timcheall air an aon ghnìomhachd. Mar as trice, gus solaraiche a thaghadh, bidh riaghladh a’ cuimseachadh air bun-structar iomlan agus riatanasan gnìomhachais a ’chompanaidh, a tha taobh a-muigh raon an artaigil seo. Airson innleadairean fèin-ghluasaid, bidh e nas inntinniche coimeas a dhèanamh eadar cleachdadh solaraichean sgòthan agus cleachdadh àrd-ùrlaran sgòthan gu sònraichte airson adhbharan deuchainn, leithid Sauce Labs, BrowserStack, BitBar, agus mar sin air adhart. Mar sin dèanamaid e cuideachd! Nam bheachd-sa, is e Sauce Labs an tuathanas deuchainn sgòthan as ainmeil, agus is e sin as coireach gun do chleachd mi e airson coimeas. 

GCP vs Sauce Labs airson adhbharan fèin-ghluasaid:

Smaoinichidh sinn gum feum sinn 8 deuchainnean lìn agus 8 deuchainnean Android a ruith aig an aon àm. Airson seo cleachdaidh sinn GCP agus ruithidh sinn 2 inneal brìgheil le Selenoid. Air a’ chiad fhear togaidh sinn 8 soithichean le brobhsairean. Air an dàrna fear tha 8 soithichean le emulators. Bheir sinn sùil air na prìsean:  

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach
Gus aon ghobhar a ruith le Chrome, feumaidh sinn n1-inbhe-1 càr. Ann an cùis Android bidh e n1-inbhe-4 Airson aon emulator. Gu dearbh, is e dòigh nas sùbailte agus nas saoire luachan cleachdaiche sònraichte a shuidheachadh airson CPU / Cuimhne, ach aig an àm seo chan eil seo cudromach airson coimeas ri Sauce Labs.

Agus seo na cìsean airson a bhith a’ cleachdadh Sauce Labs:

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach
Tha mi a 'creidsinn gu bheil thu air mothachadh a dhèanamh air an eadar-dhealachadh mar-thà, ach bheir mi fhathast clàr le àireamhachadh airson ar gnìomh:

Goireasan a tha a dhìth
Montly
Uairean obrach(8m - 8f)
Uairean obrach+ Ro-shealladh

GCP airson lìn a
n1-inbhe-1 x 8 = n1-inbhe-8
$194.18
23 latha * 12h * 0.38 = $104.88 
23 latha * 12h * 0.08 = $22.08

Sauce Labs airson Lìon
Deuchainnean co-shìnte Virtual Cloud8
$1.559
-
-

GCP airson Android
n1-àbhaisteach-4 x 8: n1-standard-16
$776.72
23 latha * 12h * 1.52 = $419.52 
23 latha * 12h * 0.32 = $88.32

Sauce labs airson Android
Real Device Cloud 8 deuchainnean co-shìnte
$1.999
-
-

Mar a chì thu, tha an eadar-dhealachadh ann an cosgais gu math mòr, gu sònraichte ma ruitheas tu deuchainnean dìreach rè ùine obrach dusan uair a thìde. Ach faodaidh tu cosgaisean a ghearradh eadhon nas fhaide ma chleachdas tu innealan preemptible. Dè a th’ ann?

Tha VM preemptible na eisimpleir as urrainn dhut a chruthachadh agus a ruith aig prìs nas àirde na suidheachaidhean àbhaisteach. Ach, dh’ fhaodadh Einnsean Coimpiutaireachd crìoch a chuir air (preempt) na suidheachaidhean sin ma tha feum air cothrom air na goireasan sin airson gnìomhan eile. Tha suidheachaidhean preemptible nas àirde na comas Einnsean Coimpiutaireachd, agus mar sin bidh iad rim faighinn ag atharrachadh a rèir cleachdadh.

Ma tha na h-aplacaidean agad a’ fulang le lochdan agus gun urrainn dhaibh seasamh an aghaidh ro-aithrisean a dh’ fhaodadh a bhith ann, faodaidh suidheachaidhean ro-shuidhichte do chosgaisean Einnsean Coimpiutaireachd a lughdachadh gu mòr. Mar eisimpleir, faodaidh obraichean giollachd baidse ruith air suidheachaidhean preemptible. Ma thig cuid de na cùisean sin gu crìch aig àm giollachd, bidh an obair a’ slaodadh ach chan eil e a’ stad gu tur. Bidh suidheachaidhean preemptible a’ crìochnachadh na gnìomhan giullachd baidse agad gun a bhith a’ cur uallach obrach a bharrachd air na suidheachaidhean a th’ agad mu thràth agus gun a bhith ag iarraidh ort làn phrìs a phàigheadh ​​​​airson suidheachaidhean àbhaisteach a bharrachd.

Agus chan eil e seachad fhathast! Gu fìrinneach, tha mi cinnteach nach bi duine a’ ruith dheuchainnean airson 12 uair gun bhriseadh. Agus ma tha, faodaidh tu tòiseachadh gu fèin-ghluasadach agus stad air innealan brìgheil nuair nach eil feum orra. Faodar an fhìor ùine cleachdaidh a lughdachadh gu 6 uairean san latha. An uairsin thèid am pàigheadh ​​​​ann an co-theacsa ar gnìomh sìos gu $ 11 gach mìos airson 8 brobhsairean. Nach eil seo mìorbhaileach? Ach le innealan preemptible feumaidh sinn a bhith faiceallach agus ullaichte airson brisidhean agus neo-sheasmhachd, ged a dh’ fhaodar solar a thoirt dha na suidheachaidhean sin agus an làimhseachadh ann am bathar-bog. Is fhiach e!

Ach chan eil mi idir ag ràdh ‘na cleachd tuathanasan deuchainn sgòthan gu bràth’. Tha grunn bhuannachdan aca. An toiseach, chan e dìreach inneal brìgheil a tha seo, ach fuasgladh fèin-ghluasaid deuchainn làn-chuimsichte le seata de ghnìomhachd a-mach às a’ bhogsa: ruigsinneachd iomallach, logaichean, seallaidhean-sgrìn, clàradh bhidio, diofar bhrobhsairean agus innealan gluasadach fiosaigeach. Ann an iomadh suidheachadh, faodaidh seo a bhith na roghainn chic riatanach. Tha àrd-ùrlaran deuchainn gu sònraichte feumail airson fèin-ghluasad IOS, nuair nach urrainn do sgòthan poblach ach siostaman Linux / Windows a thabhann. Ach bruidhnidh sinn mu iOS anns na h-artaigilean a leanas. Tha mi a 'moladh an-còmhnaidh a bhith a' coimhead air an t-suidheachadh agus a 'tòiseachadh bho na gnìomhan: ann an cuid de chùisean tha e nas saoire agus nas èifeachdaiche sgòthan poblach a chleachdadh, agus ann an cuid eile is fhiach na h-àrd-ùrlaran deuchainn an airgead a chaidh a chosg.

Dealbh de staid a’ bhun-structair an-dràsta

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceanglaichean ri rannsachadh

Innealan coltach ris:

6. Orcaireachd

Tuairisgeul goirid air an teicneòlas

Tha deagh naidheachd agam - tha sinn cha mhòr aig deireadh an artaigil! Aig an àm seo, tha ar bun-structar fèin-ghluasaid air a dhèanamh suas de dheuchainnean lìn agus Android, a bhios sinn a’ ruith tro GitLab CI aig an aon àm, a’ cleachdadh innealan le comas Docker: Grid Selenium agus Selenoid. A bharrachd air an sin, bidh sinn a’ cleachdadh innealan brìgheil a chaidh a chruthachadh tro GCP gus soithichean a chumail le brobhsairean agus emuladairean. Gus cosgaisean a lughdachadh, bidh sinn a’ tòiseachadh na h-innealan brìgheil sin a-mhàin air iarrtas agus gan stad nuair nach eil deuchainnean gan dèanamh. A bheil dad eile ann a leasaicheas ar bun-structar? Is e am freagairt tha! Coinnich ri Kubernetes (K8s)!

An toiseach, leig dhuinn sùil a thoirt air mar a tha na faclan orchestration, cluster, agus Kubernetes càirdeach dha chèile. Aig ìre àrd, is e orchestration an siostam a bhios a’ cleachdadh agus a’ riaghladh thagraidhean. Airson fèin-ghluasad deuchainn, is e griod Selenium agus Selenoid a th’ ann an tagraidhean container mar sin. Bidh Docker agus K8n a’ cur ri chèile. Tha a’ chiad fhear air a chleachdadh airson cleachdadh thagraidhean, an dàrna fear airson orchestration. Ann an tionndadh, tha K8s na bhuidheann. Is e obair a’ bhraisle VMs a chleachdadh mar Nodes, a leigeas leat diofar fheartan, phrògraman agus sheirbheisean a chuir a-steach taobh a-staigh aon fhrithealaiche (cnuasach). Ma dh’ fhailicheas gin de na Nodes, togaidh Nodes eile, a nì cinnteach gum bi an tagradh againn ag obair gun bhriseadh. A bharrachd air an seo, tha comas-gnìomh cudromach aig K8n co-cheangailte ri sgèileadh, leis gu bheil sinn gu fèin-ghluasadach a’ faighinn an ìre as fheàrr de ghoireasan stèidhichte air an luchd agus crìochan stèidhichte.

Gu fìrinneach, chan e obair bheag a th’ ann a bhith a’ cleachdadh Kubernetes le làimh bhon fhìor thoiseach. Fàgaidh mi ceangal ris an stiùireadh ainmeil “Kubernetes The Hard Way” agus ma tha ùidh agad, faodaidh tu a chleachdadh. Ach, gu fortanach, tha dòighean agus innealan eile ann. Is e an dòigh as fhasa Google Kubernetes Engine (GKE) a chleachdadh ann an GCP, a leigeas leat cruinneachadh deiseil fhaighinn ann am beagan chlican. Tha mi a’ moladh an dòigh-obrach seo a chleachdadh airson tòiseachadh air ionnsachadh, oir leigidh e leat fòcas a chuir air ionnsachadh mar a chleachdas tu na K8n airson do ghnìomhan an àite a bhith ag ionnsachadh mar a bu chòir na pàirtean a-staigh a bhith air am filleadh a-steach còmhla. 

Luach airson bun-structar fèin-ghluasaid

Bheir sinn sùil air beagan fheartan cudromach a tha na K8n a’ toirt seachad:

  • cleachdadh tagraidh: a 'cleachdadh brabhsair ioma-nòtaichean an àite VMs;
  • fiùghantach sgèileadh: a 'lùghdachadh na cosgais goireasan a tha gan cleachdadh a-mhàin air iarrtas;
  • fèin-slànachadh: faighinn air ais gu fèin-ghluasadach de pods (mar thoradh air an sin bidh soithichean air an toirt air ais cuideachd);
  • sgaoileadh ùrachaidhean agus toirt air ais atharrachaidhean gun ùine downt: cha bhith ùrachadh innealan, brobhsairean agus emuladairean a’ cur bacadh air obair luchd-cleachdaidh gnàthach

Ach chan e peilear airgid a th’ anns na K8n fhathast. Gus na buannachdan agus na crìochan uile a thuigsinn ann an co-theacsa nan innealan air a bheil sinn a 'beachdachadh (ghriod Selenium, Selenoid), bruidhnidh sinn goirid mu structar K8s. Ann an cruinneachadh tha dà sheòrsa Nodes: Master Nodes agus Workers Nodes. Tha uallach air Master Nodes airson riaghladh, cleachdadh agus co-dhùnaidhean clàraidh. Is e nodan luchd-obrach far an tèid tagraidhean a chuir air bhog. Ann an nodan cuideachd tha àrainneachd runtime container. Anns a ’chùis againn, is e seo Docker, a tha an urra ri gnìomhachd co-cheangailte ri soithichean. Ach tha fuasglaidhean eile ann cuideachd, mar eisimpleir gleidhidh. Tha e cudromach tuigsinn nach eil sgèileadh no fèin-slànachadh a’ buntainn gu dìreach ri soithichean. Tha seo air a chuir an gnìomh le bhith a’ cur ris / a’ lughdachadh na h-àireamh de pods, anns a bheil soithichean an uair sin (mar as trice aon soitheach airson gach pod, ach a rèir na h-obrach dh’ fhaodadh barrachd a bhith ann). Tha an rangachd àrd-ìre air a dhèanamh suas de nodan luchd-obrach, anns a bheil pods a-staigh, anns a bheil soithichean air an togail.

Tha am feart sgèileadh cudromach agus faodar a chuir an sàs anns an dà nod taobh a-staigh amar-nòd brabhsair agus pods taobh a-staigh nód. Tha dà sheòrsa sgèileadh ann a tha a’ buntainn ris an dà chuid nodan agus pods. Tha a’ chiad sheòrsa còmhnard - bidh sgèileadh a’ tachairt le bhith a’ meudachadh àireamh nan nodan/pods. Tha an seòrsa seo nas fheàrr. Tha an dàrna seòrsa, a rèir sin, dìreach. Bithear a’ sgèileadh le bhith a’ meudachadh meud nodan/pods, agus chan e an àireamh aca.

A-nis leig dhuinn sùil a thoirt air na h-innealan againn ann an co-theacsa nan teirmean gu h-àrd.

Grid selenium

Mar a chaidh a ràdh na bu tràithe, tha griod Selenium na inneal mòr-chòrdte, agus chan eil e na iongnadh gu bheil e air a stòradh. Mar sin, chan eil e na iongnadh sam bith gum faodar cliath Selenium a chleachdadh ann an K8n. Tha eisimpleir de mar a nì thu seo ri fhaighinn ann an stòr oifigeil K8s. Mar as àbhaist, bidh mi a 'ceangal cheanglaichean aig deireadh na h-earrainn. A bharrachd air an sin, tha an stiùireadh mar a nì thu a’ sealltainn mar a nì thu seo ann an Terraform. Tha stiùireadh ann cuideachd air mar a nì thu sgèile air an àireamh de pods anns a bheil soithichean brabhsair. Ach chan e gnìomh gu tur follaiseach a th’ ann an gnìomh sgèileadh fèin-ghluasadach ann an co-theacsa K8n. Nuair a thòisich mi ag ionnsachadh, cha do lorg mi stiùireadh practaigeach no molaidhean. Às deidh grunn sgrùdaidhean agus deuchainnean le taic bhon sgioba DevOps, thagh sinn an dòigh-obrach airson soithichean a thogail leis na brobhsairean riatanach taobh a-staigh aon pod, a tha suidhichte taobh a-staigh aon nód neach-obrach. Tha an dòigh seo a 'toirt cothrom dhuinn an ro-innleachd a bhith a' sgèileadh nodan gu còmhnard le bhith a 'meudachadh an àireamh. Tha mi an dòchas gun atharraich seo san àm ri teachd agus chì sinn barrachd is barrachd thuairisgeulan air dòighean-obrach nas fheàrr agus fuasglaidhean deiseil, gu sònraichte às deidh griod Selenium 4 a leigeil ma sgaoil le ailtireachd taobh a-staigh atharraichte.

Selenoid:

Is e cleachdadh selenoid ann an K8n an briseadh-dùil as motha an-dràsta. Chan eil iad co-chòrdail. Gu teòiridheach, is urrainn dhuinn inneal Selenoid a thogail am broinn pod, ach nuair a thòisicheas Selenoid a’ cur air bhog soithichean le brobhsairean, bidh iad fhathast taobh a-staigh an aon pod. Tha seo ga dhèanamh do-dhèanta sgèileadh agus, mar thoradh air an sin, cha bhith obair Selenoid taobh a-staigh brabhsair eadar-dhealaichte bho obair taobh a-staigh inneal brìgheil. Deireadh na sgeòil.

Moon:

Le eòlas air a’ bhotail seo nuair a bha iad ag obair le Selenoid, leig an luchd-leasachaidh a-mach inneal nas cumhachdaiche leis an t-ainm Moon. Chaidh an inneal seo a dhealbhadh an toiseach gus obrachadh le Kubernetes agus, mar thoradh air an sin, faodar agus bu chòir am feart fèin-sgèile a chleachdadh. A bharrachd air an sin, chanainn gu bheil e an-dràsta an aon fhear a-mhàin inneal ann an saoghal Selenium, aig a bheil taic cnuasachaidh dùthchasach K8s a-mach às a’ bhogsa (chan eil e ri fhaighinn tuilleadh, faic an ath inneal ). Is iad na prìomh fheartan aig Moon a bheir seachad an taic seo: 

Gu tur gun stàit. Bidh Selenoid a’ stòradh fiosrachadh cuimhne mu sheiseanan brabhsair a tha a’ ruith an-dràsta. Ma thuiteas am pròiseas aige airson adhbhar air choireigin - bidh a h-uile seisean ruith air chall. Air an làimh eile, chan eil staid a-staigh aig Moon agus faodar ath-aithris thar ionadan dàta. Bidh seiseanan brabhsair fhathast beò eadhon ged a thèid mac-samhail no barrachd sìos.

Mar sin, tha Moon na fhuasgladh math, ach tha aon dhuilgheadas ann: chan eil e an-asgaidh. Tha a’ phrìs an urra ris an àireamh de sheiseanan. Chan urrainn dhut ach seiseanan 0-4 a ruith an-asgaidh, rud nach eil gu sònraichte feumail. Ach, a’ tòiseachadh bhon chòigeamh seisean, feumaidh tu $5 a phàigheadh ​​airson gach fear. Faodaidh an suidheachadh a bhith eadar-dhealaichte bho chompanaidh gu companaidh, ach anns a 'chùis againn, tha cleachdadh Moon gun fheum. Mar a mhìnich mi gu h-àrd, is urrainn dhuinn VMan a ruith le Selenium Grid air iarrtas no àrdachadh a thoirt air an àireamh de Nodes anns a’ bhuidheann. Airson timcheall air aon loidhne-phìoban, bidh sinn a’ cur 500 brobhsair air bhog agus a’ stad a h-uile goireas às deidh na deuchainnean a chrìochnachadh. Nan cleachdadh sinn Moon, dh'fheumamaid 500 x 5 = $2500 a bharrachd a phàigheadh ​​gach mìos, ge bith dè cho tric 's a ruitheas sinn deuchainnean. A-rithist, chan eil mi ag ràdh na cleachd Moon. Airson do ghnìomhan, faodaidh seo a bhith na fhuasgladh riatanach, mar eisimpleir, ma tha mòran phròiseactan / sgiobaidhean sa bhuidheann agad agus gu bheil feum agad air cruinneachadh mòr cumanta airson a h-uile duine. Mar as àbhaist, bidh mi a’ fàgail ceangal aig an deireadh agus a’ moladh a h-uile àireamhachadh riatanach a dhèanamh ann an co-theacs do ghnìomh.

Callisto: (Thoir an aire! Chan eil seo anns an artaigil thùsail agus chan eil ann ach eadar-theangachadh Ruiseanach)

Mar a thuirt mi, tha Selenium na inneal mòr-chòrdte, agus tha an raon IT a’ leasachadh gu math luath. Fhad ‘s a bha mi ag obair air an eadar-theangachadh, nochd inneal gealltanach ùr leis an t-ainm Callisto air an lìon (hello Cypress agus luchd-marbhadh Selenium eile). Bidh e ag obair gu dùthchasach le K8n agus leigidh e leat soithichean Selenoid a ruith ann am pods, air an cuairteachadh thairis air Nodes. Bidh a h-uile dad ag obair dìreach a-mach às a’ bhogsa, a ’toirt a-steach fèin-sgèileadh. Sgoinneil, ach feumar deuchainn a dhèanamh. Tha mi air a bhith comasach air an inneal seo a chleachdadh mar-thà agus grunn dheuchainnean a ruith. Ach tha e ro thràth airson co-dhùnaidhean a dhèanamh, às deidh dhomh toraidhean fhaighinn thar astar fada, is dòcha gun dèan mi lèirmheas ann an artaigilean san àm ri teachd. Airson a-nis chan eil mi a’ fàgail ach ceanglaichean airson rannsachadh neo-eisimeileach.  

Dealbh de staid a’ bhun-structair an-dràsta

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceanglaichean ri rannsachadh

Innealan coltach ris

7. Bun-structair mar Chòd (IaC)

Tuairisgeul goirid air an teicneòlas

Agus a-nis tha sinn a 'tighinn chun an earrann mu dheireadh. Mar as trice, chan eil an teicneòlas seo agus gnìomhan co-cheangailte ris an urra ri innleadairean fèin-ghluasaid. Agus tha adhbharan ann airson seo. An toiseach, ann am mòran bhuidhnean, tha cùisean bun-structair fo smachd roinn DevOps agus chan eil dragh mòr aig na sgiobaidhean leasachaidh air dè a bheir air an loidhne-phìoban obrachadh agus mar a dh’ fheumar taic a thoirt don h-uile càil co-cheangailte ris. San dàrna h-àite, leig leinn a bhith onarach, chan eil mòran chompanaidhean fhathast a’ gabhail ri cleachdadh Bun-structair mar Chòd (IaC). Ach tha e gu cinnteach air fàs gu bhith na ghluasad mòr-chòrdte agus tha e cudromach feuchainn ri bhith an sàs anns na pròiseasan, na dòighean-obrach agus na h-innealan co-cheangailte ris. No co-dhiù cùm suas ris.

Feuch an tòisich sinn leis a’ bhrosnachadh airson an dòigh-obrach seo a chleachdadh. Tha sinn air bruidhinn mu thràth airson deuchainnean a ruith ann an GitlabCI, gum feum sinn aig a’ char as lugha na goireasan gus Gitlab Runner a ruith. Agus airson soithichean a ruith le brobhsairean / emuladairean, feumaidh sinn VM no brabhsair a ghlèidheadh. A bharrachd air goireasan deuchainn, feumaidh sinn mòran comas gus taic a thoirt do leasachadh, àrd-ùrlar, àrainneachdan cinneasachaidh, a tha cuideachd a’ toirt a-steach stòran-dàta, clàran fèin-ghluasadach, rèiteachadh lìonra, luchd-cothromachaidh luchdan, còraichean luchd-cleachdaidh, agus mar sin air adhart. Is e am prìomh chuspair an oidhirp a tha a dhìth gus taic a thoirt dha uile. Tha grunn dhòighean ann air an urrainn dhuinn atharrachaidhean a dhèanamh agus ùrachaidhean a sgaoileadh. Mar eisimpleir, ann an co-theacsa GCP, is urrainn dhuinn an consol UI a chleachdadh sa bhrobhsair agus a h-uile gnìomh a dhèanamh le bhith a’ cliogadh air putanan. Is e roghainn eile gairmean API a chleachdadh gus eadar-obrachadh le buidhnean sgòthan, no goireas loidhne-àithne glcloud a chleachdadh gus na h-atharrachaidhean a tha thu ag iarraidh a dhèanamh. Ach le àireamh mhòr de bhuidhnean eadar-dhealaichte agus eileamaidean bun-structair, bidh e duilich no eadhon do-dhèanta a h-uile gnìomh a dhèanamh le làimh. A bharrachd air an sin, tha na gnìomhan làimhe sin uile neo-riaghlaidh. Chan urrainn dhuinn an cur a-steach airson ath-sgrùdadh mus tèid an cur an gnìomh, siostam smachd dreach a chleachdadh, agus na h-atharrachaidhean a lean gu na thachair a thoirt air ais gu sgiobalta. Gus fuasgladh fhaighinn air duilgheadasan mar sin, chruthaich agus cruthaich innleadairean sgriobtaichean bash / slige fèin-ghluasadach, nach eil mòran nas fheàrr na dòighean roimhe, leis nach eil iad cho furasta an leughadh, an tuigsinn, an cumail suas agus an atharrachadh gu sgiobalta ann an stoidhle modh-obrach.

San artaigil seo agus mar a stiùireas tu, bidh mi a’ cleachdadh 2 inneal co-cheangailte ri cleachdadh IaC. Is iad sin Terraform and Ansible. Tha cuid den bheachd nach eil e ciallach an cleachdadh aig an aon àm, leis gu bheil an comas-gnìomh aca coltach agus gu bheil iad eadar-ghluasadach. Ach is e an fhìrinn gu bheil iad an toiseach a 'faighinn gnìomhan gu tur eadar-dhealaichte. Agus chaidh an fhìrinn gum bu chòir na h-innealan sin a bhith còmhla ri chèile a dhearbhadh aig co-thaisbeanadh le luchd-leasachaidh a’ riochdachadh HashiCorp agus RedHat. Is e an eadar-dhealachadh bun-bheachdail gur e inneal solarachaidh a th’ ann an Terraform airson na frithealaichean fhèin a riaghladh. Fhad ‘s a tha Ansible na inneal riaghlaidh rèiteachaidh aig a bheil e mar dhleastanas bathar-bog a chuir a-steach, a rèiteachadh agus a riaghladh air na frithealaichean sin.

Is e prìomh fheart sònraichte eile de na h-innealan sin an stoidhle còdaidh. Eu-coltach ri bash agus Ansible, bidh Terraform a’ cleachdadh stoidhle dearbhach stèidhichte air tuairisgeul air an staid crìochnachaidh a tha thu ag iarraidh a choileanadh mar thoradh air coileanadh. Mar eisimpleir, ma tha sinn gu bhith a’ cruthachadh 10 VMs agus a’ cur na h-atharrachaidhean an sàs tro Terraform, gheibh sinn 10 VMs. Ma ruitheas sinn an sgriobt a-rithist, cha tachair dad leis gu bheil 10 VM againn mu thràth, agus tha fios aig Terraform mu dheidhinn seo leis gu bheil e a’ stòradh staid làithreach a’ bhun-structair ann am faidhle stàite. Ach tha Ansible a’ cleachdadh dòigh-obrach mhodhan-obrach agus, ma dh’ iarras tu air 10 VM a chruthachadh, an uairsin air a’ chiad fhoillseachadh gheibh sinn 10 VM, coltach ri Terraform. Ach às deidh dhuinn ath-thòiseachadh bidh 20 VM againn mu thràth. Is e seo an eadar-dhealachadh cudromach. Ann an stoidhle modh-obrach, chan eil sinn a 'stòradh an staid làithreach agus dìreach a' toirt cunntas air sreath de cheumannan a dh'fheumar a choileanadh. Gu dearbh, is urrainn dhuinn diofar shuidheachaidhean a làimhseachadh, grunn sgrùdaidhean a chuir a-steach airson gu bheil goireasan ann agus an staid làithreach, ach chan eil feum air ar n-ùine a chaitheamh agus oidhirp a dhèanamh gus smachd a chumail air an loidsig seo. A bharrachd air an sin, tha seo a 'meudachadh chunnart mearachdan a dhèanamh. 

A’ toirt geàrr-chunntas air na tha gu h-àrd, faodaidh sinn a cho-dhùnadh gu bheil Terraform agus comharradh dearbhach nan inneal nas freagarraiche airson a bhith a’ toirt seachad frithealaichean. Ach tha e nas fheàrr obair riaghladh rèiteachaidh a thiomnadh gu Ansible. Le sin a-mach às an rathad, leig dhuinn sùil a thoirt air cùisean cleachdaidh ann an co-theacsa fèin-ghluasaid.

Luach airson bun-structar fèin-ghluasaid

Is e an aon rud cudromach ri thuigsinn an seo gum bu chòir beachdachadh air bun-structar fèin-ghluasaid deuchainn mar phàirt de bhun-structar iomlan a ’chompanaidh. Tha seo a’ ciallachadh gum feumar a h-uile cleachdadh IaC a chuir an sàs air feadh na cruinne air goireasan na buidhne air fad. Bidh cò a tha cunntachail airson seo an urra ris na pròiseasan agad. Tha sgioba DevOps nas eòlaiche air na cùisean sin, chì iad an dealbh iomlan de na tha a’ tachairt. Ach, tha innleadairean QA nas motha an sàs ann am pròiseas togail fèin-ghluasaid agus structar na loidhne-phìoban, a leigeas leotha na h-atharrachaidhean agus na cothroman leasachaidh a tha a dhìth fhaicinn nas fheàrr. Is e an roghainn as fheàrr a bhith ag obair còmhla, ag iomlaid eòlas agus beachdan gus an toradh ris a bheil dùil a choileanadh. 

Seo beagan eisimpleirean de bhith a’ cleachdadh Terraform and Ansible ann an co-theacsa fèin-ghluasad deuchainn agus na h-innealan air an do bhruidhinn sinn roimhe:

1. Thoir cunntas air feartan agus crìochan riatanach VMs agus cruinneachaidhean a' cleachdadh Terraform.

2. A' cleachdadh Ansible, stàlaich na h-innealan a tha riatanach airson deuchainn: docker, Selenoid, Selenium Grid agus luchdaich sìos na dreachan riatanach de bhrobhsairean / emuladairean.

3. A' cleachdadh Terraform, thoir cunntas air feartan an VM anns an tèid GitLab Runner a chur air bhog.

4. Stàlaich GitLab Runner agus na h-innealan riatanach a tha nan cois a 'cleachdadh Ansible, suidheachaidhean suidhichte agus rèiteachadh.

Dealbh de staid a’ bhun-structair an-dràsta

Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceanglaichean ri rannsachadh:

Innealan coltach ris

Leig dhuinn geàrr-chunntas!

ceum
Teicneòlas
innealan
Luach airson bun-structar fèin-ghluasaid

1
A 'ruith ionadail
Node.js, Selenium, Appium

  • Na h-innealan as mòr-chòrdte airson lìn agus gluasadach
  • A’ toirt taic do dh’iomadh cànan agus àrd-ùrlar (Node.js nam measg)

2
Tionndadh siostaman smachd 
dhol

  • Buannachdan coltach ri còd leasachaidh

3
Containerization
Docker, cliath Selenium, Selenoid (Lìon, Android)

  • A 'ruith deuchainnean aig an aon àm
  • Àrainneachdan iomallach
  • Ùrachadh dreach sìmplidh, sùbailte
  • Cuir stad gu dinamach air goireasan nach eilear a’ cleachdadh
  • Furasta a stèidheachadh

4
CI/CD
Gitlab CI

  • Dèan deuchainn air pàirt den loidhne-phìoban
  • Fios air ais luath
  • Faicsinneachd don chompanaidh / sgioba gu lèir

5
Àrd-ùrlaran sgòthan
Google geala Àrd-chabhsair

  • Goireasan air iarrtas (bidh sinn a’ pàigheadh ​​ach nuair a bhios feum orra)
  • Furasta a riaghladh agus ùrachadh
  • Faicsinneachd agus smachd air a h-uile goireas

6
Orcastra
Kubernetes
Ann an co-theacsa shoithichean le brobhsairean / emuladairean taobh a-staigh pods:

  • Sgèileadh / sgèileadh fèin-ghluasadach
  • Fèin-slànachadh
  • Ùrachaidhean agus roll air ais gun bhriseadh sam bith

7
Bun-structair mar chòd (IaC)
Cruth-tìre, freagarrach

  • Buannachdan coltach ri bun-structair leasachaidh
  • A h-uile buannachdan dreach còd
  • Furasta atharrachaidhean a dhèanamh agus a chumail suas
  • Gu tur fèin-ghluasadach

Diagraman mapa inntinn: mean-fhàs de bhun-structair

Ceum 1: Ionadail
Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceum 2: VCS
Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceum 3: Containerization 
Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceum 4: CI / CD 
Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

step5: Àrd-ùrlaran Cloud
Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Ceum 6: Orcastra
Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

ceum 7: IaC
Chan eil innealan DevOps dìreach airson DevOps. Am pròiseas airson bun-structar deuchainn fèin-ghluasaid a thogail bhon fhìor thoiseach

Dè a-nis?

Mar sin, is e seo deireadh an artaigil. Ach gu crìch, bu mhath leam beagan aontaidhean a stèidheachadh leat.

Bho do thaobh
Mar a thuirt mi aig an toiseach, bu mhath leam gum biodh an artaigil gu feum practaigeach agus gun cuidich e thu gus an eòlas a fhuaireadh ann an obair fhìor a chleachdadh. Bidh mi a 'cur ris a-rithist ceangal gu stiùireadh practaigeach.

Ach eadhon às deidh sin, na stad, cleachd, dèan sgrùdadh air ceanglaichean agus leabhraichean buntainneach, faigh a-mach mar a tha e ag obair sa chompanaidh agad, lorg àiteachan a ghabhas leasachadh agus gabh pàirt ann. Beannachd leat

Bho mo thaobh

Bhon tiotal chì thu nach robh seo ach a’ chiad phàirt. A dh 'aindeoin gu robh e gu math mòr, chan eil cuspairean cudromach fhathast air an còmhdach an seo. Anns an dàrna pàirt, tha mi an dùil coimhead air bun-structar fèin-ghluasaid ann an co-theacsa IOS. Air sgàth cuingealachaidhean Apple air a bhith a’ ruith simuladairean iOS a-mhàin air siostaman macOS, tha an raon de fhuasglaidhean againn air a lughdachadh. Mar eisimpleir, chan urrainn dhuinn Docker a chleachdadh gus an simuladair no sgòthan poblach a ruith gus innealan brìgheil a ruith. Ach chan eil seo a 'ciallachadh nach eil roghainnean eile ann. Feuchaidh mi ri fios a chumail riut mu fhuasglaidhean adhartach agus innealan ùr-nodha!

Cuideachd, chan eil mi air iomradh a thoirt air cuspairean mòra co-cheangailte ri sgrùdadh. Ann am Pàirt 3, tha mi a’ dol a thoirt sùil air na h-innealan sgrùdaidh bun-structair as mòr-chòrdte agus dè an dàta agus na meatrach air am bu chòir beachdachadh.

Agus mu dheireadh. Anns an àm ri teachd, tha mi an dùil cùrsa bhidio a leigeil ma sgaoil air bun-structar deuchainn togail agus innealan mòr-chòrdte. An-dràsta, tha grunn chùrsaichean agus òraidean air DevOps air an eadar-lìn, ach tha a h-uile stuth air a thaisbeanadh ann an co-theacsa leasachaidh, chan e fèin-ghluasad deuchainn. Air a’ chùis seo, tha fìor fheum agam air fios air ais a thaobh am bi a leithid de chùrsa inntinneach agus luachmhor don choimhearsnachd luchd-dearbhaidh agus innleadairean fèin-ghluasaid. Tapadh leibh ro làimh!

Source: www.habr.com

Cuir beachd ann