Cleachdaidhean Lìbhrigeadh Leantainneach le Docker (lèirmheas agus bhidio)

Tòisichidh sinn ar blog le foillseachaidhean stèidhichte air na h-òraidean as ùire bhon stiùiriche teignigeach againn sgioblachadh (Dmitry Stolyarov). Thachair iad uile ann an 2016 aig diofar thachartasan proifeasanta agus bha iad coisrigte don chuspair DevOps agus Docker. Aon bhidio bho choinneamh Docker Moscow aig oifis Badoo, tha sinn mar-thà foillsichte Air-loidhne. An cois feadhainn ùra bidh artaigilean a’ nochdadh brìgh nan aithisgean. Mar sin…

31 Cèitean aig a’ cho-labhairt RootConf 2016, a chaidh a chumail mar phàirt den fhèis “Russian Internet Technologies” (RIT ++ 2016), dh’ fhosgail an earrann “Cleachdadh is Cleachdadh Leantainneach” leis an aithisg “Cleachdaidhean as Fheàrr airson Lìbhrigeadh Leantainneach le Docker”. Thug e geàrr-chunntas agus siostamachadh air na cleachdaidhean as fheàrr airson pròiseas Lìbhrigeadh Leantainneach (CD) a thogail a’ cleachdadh Docker agus toraidhean Open Source eile. Bidh sinn ag obair leis na fuasglaidhean sin ann an cinneasachadh, a leigeas leinn a bhith an urra ri eòlas practaigeach.

Cleachdaidhean Lìbhrigeadh Leantainneach le Docker (lèirmheas agus bhidio)

Ma tha cothrom agad uair a thìde a chaitheamh bhidio den aithisg, tha sinn a 'moladh coimhead air gu h-iomlan. Rud eile, gu h-ìosal tha am prìomh gheàrr-chunntas ann an cruth teacsa.

Lìbhrigeadh leantainneach le Docker

Le Lìbhrigeadh leantainneach tha sinn a’ tuigsinn an t-sreath thachartasan mar thoradh air an tig an còd tagraidh bho stòr Git gu cinneasachadh an toiseach, agus an uairsin thig e gu crìch san tasglann. Tha i a’ coimhead mar seo: Git → Tog → Deuchainn → Sgaoileadh → Obraich.

Cleachdaidhean Lìbhrigeadh Leantainneach le Docker (lèirmheas agus bhidio)
Tha a’ mhòr-chuid den aithisg ag amas air an ìre togail (co-chruinneachadh tagraidh), agus thathas a’ bruidhinn gu h-aithghearr air na cuspairean a thèid fhoillseachadh agus obrachadh. Bruidhnidh sinn mu dhuilgheadasan agus phàtranan a leigeas leat am fuasgladh, agus faodaidh gnìomhachd sònraichte nam pàtrain sin a bhith eadar-dhealaichte.

Carson a tha feum air Docker an seo idir? Chan ann airson dad a chuir sinn romhainn bruidhinn mu chleachdaidhean Lìbhrigeadh Leantainneach ann an co-theacsa an inneal Open Source seo. Ged a tha an aithisg gu lèir air a choisrigeadh airson a cleachdadh, tha mòran adhbharan air am foillseachadh nuair a thathar a’ beachdachadh air a’ phrìomh phàtran de sgaoileadh còd tagraidh.

Prìomh mhodail sgaoileadh

Mar sin, nuair a bhios sinn a’ sgaoileadh dreachan ùra den tagradh, tha sinn gu cinnteach nar n-aghaidh duilgheadas ùine downt, air a chruthachadh nuair a chaidh an t-seirbheisiche riochdachaidh atharrachadh. Chan urrainn trafaic bhon t-seann dreach den tagradh chun fhear ùr atharrachadh sa bhad: an toiseach feumaidh sinn dèanamh cinnteach nach e a-mhàin gu bheil an dreach ùr air a luchdachadh sìos gu soirbheachail, ach cuideachd “blàthachadh” (ie, gu tur deiseil airson iarrtasan a fhrithealadh).

Cleachdaidhean Lìbhrigeadh Leantainneach le Docker (lèirmheas agus bhidio)
Mar sin, airson ùine bidh an dà dhreach den tagradh (seann agus ùr) ag obair aig an aon àm. A tha a 'leantainn gu fèin-obrachail còmhstri goireasan co-roinnte: lìonra, siostam faidhle, IPC, msaa. Le Docker, tha an duilgheadas seo air fhuasgladh gu furasta le bhith a’ ruith diofar dhreachan den tagradh ann an soithichean fa leth, airson a bheil aonaranachd stòrais air a ghealltainn taobh a-staigh an aon aoigh (frithealaiche / inneal mas-fhìor). Gu dearbh, faodaidh tu faighinn seachad air cuid de chleasan gun insulation idir, ach ma tha inneal deiseil agus goireasach ann, tha adhbhar eile ann - gun a bhith ga dearmad.

Bheir gleidheadh ​​​​mòran bhuannachdan eile nuair a thèid a chleachdadh. Bidh tagradh sam bith an urra dreach sònraichte (no raon dreach) eadar-theangair, cothrom air modalan/leudachain, msaa, a bharrachd air na dreachan aca. Agus tha seo a 'buntainn chan ann a-mhàin ris an àrainneachd a ghabhas coileanadh, ach cuideachd ris an àrainneachd gu lèir, a' gabhail a-steach bathar-bog siostam agus an dreach aige (suas ris an sgaoileadh Linux a chaidh a chleachdadh). Leis gu bheil chan e a-mhàin còd tagraidh ann an soithichean, ach cuideachd siostam ro-stàlaichte agus bathar-bog tagraidh de na dreachan riatanach, faodaidh tu dìochuimhneachadh mu dhuilgheadasan le eisimeileachd.

Dèan geàrr-chunntas prìomh mhodail sgaoileadh dreachan ùra a’ toirt aire do na factaran a leanas:

  1. An toiseach, bidh an seann dreach den tagradh a ’ruith anns a’ chiad container.
  2. Tha an dreach ùr an uairsin air a sgaoileadh agus air a “bhlàthachadh” ann an dàrna soitheach. Bu chòir a thoirt fa-near gur dòcha gu bheil an dreach ùr seo fhèin a’ giùlan chan e a-mhàin còd tagraidh ùraichte, ach cuideachd gin de na eisimeileachd aige, a bharrachd air co-phàirtean siostam (mar eisimpleir, dreach ùr de OpenSSL no an sgaoileadh gu lèir).
  3. Nuair a bhios an dreach ùr làn deiseil airson iarrtasan a fhrithealadh, bidh trafaic ag atharrachadh bhon chiad shoitheach chun dàrna fear.
  4. Faodar stad a chur air an t-seann dreach a-nis.

Tha an dòigh-obrach seo airson a bhith a’ cleachdadh diofar dhreachan den tagradh ann an soithichean fa-leth a’ toirt goireasachd eile - tilleadh luath chun an t-seann dreach (às deidh a h-uile càil, tha e gu leòr airson trafaic atharrachadh chun ghobhar a tha thu ag iarraidh).

Cleachdaidhean Lìbhrigeadh Leantainneach le Docker (lèirmheas agus bhidio)
Tha a’ chiad mholadh mu dheireadh coltach ri rudeigin nach b’ urrainn eadhon an Caiptean coire a lorg: “[nuair a bhios tu a’ cur air dòigh Lìbhrigeadh Leantainneach le Docker] Cleachd Docker [agus tuig dè tha e a’ toirt seachad]" Cuimhnich, chan e peilear airgid a tha seo a dh ’fhuasglas a h-uile duilgheadas, ach inneal a bheir bunait iongantach.

Ath-riochdachadh

Le “ath-riochdachadh” tha sinn a’ ciallachadh seata coitcheann de dhuilgheadasan a thig orra nuair a bhios sinn ag obrachadh thagraidhean. Tha sinn a 'bruidhinn mu na cùisean sin:

  • Feumaidh sgriobtaichean air an sgrùdadh leis an roinn càileachd airson an àrd-ùrlar a bhith air an ath-riochdachadh gu ceart ann an cinneasachadh.
  • Bidh tagraidhean air am foillseachadh air frithealaichean a gheibh pasganan bho dhiofar sgàthan tasgaidh (thar ùine thèid an ùrachadh, agus còmhla riutha na dreachan de thagraidhean stàlaichte).
  • “Bidh a h-uile dad ag obair dhòmhsa gu h-ionadail!” (...agus chan eil cead aig luchd-leasachaidh a dhol a-steach gu cinneasachadh.)
  • Feumaidh tu sgrùdadh a dhèanamh air rudeigin san t-seann dreach (tasglann).
  • ...

Tha an bunait choitcheann aca a 'dol sìos chun na fìrinn gu bheil feum air làn ghèilleadh ris na h-àrainneachdan a thathar a' cleachdadh (a bharrachd air neo-làthaireachd a 'bhàillidh daonna). Ciamar as urrainn dhuinn gealltainn ath-riochdachadh? Dèan dealbhan Docker stèidhichte air còd bho Git, agus an uairsin cleachd iad airson gnìomh sam bith: air làraich deuchainn, ann an cinneasachadh, air innealan prògramadairean ionadail ... Aig an aon àm, tha e cudromach na gnìomhan a thèid a choileanadh a lughdachadh после a’ cruinneachadh na h-ìomhaigh: mar as sìmplidh a tha e, is ann as dualtaiche a bhios mearachdan.

Tha bun-structair na chòd

Mura h-eil na riatanasan bun-structair (ruigsinneachd bathar-bog frithealaiche, an dreach aige, msaa) air an foirmeil agus “prògramadh,” faodaidh sgaoileadh ùrachadh tagraidh sam bith leantainn gu buaidhean tubaisteach. Mar eisimpleir, ann an àrd-ùrlar tha thu air tionndadh gu PHP 7.0 mu thràth agus air an còd ath-sgrìobhadh a rèir sin - an uairsin bidh a choltas ann an riochdachadh le cuid de sheann PHP (5.5) gu cinnteach a ’cur iongnadh air cuideigin. Is dòcha nach dìochuimhnich thu mu atharrachadh mòr anns an dreach eadar-mhìneachaidh, ach “tha an diabhal anns a’ mhion-fhiosrachadh”: faodaidh an t-iongnadh a bhith ann an ùrachadh beag air eisimeileachd sam bith.

Canar dòigh-obrach airson fuasgladh fhaighinn air an duilgheadas seo IaC (Bun-structar mar Chòd, “bun-structar mar chòd”) agus a’ toirt a-steach stòradh riatanasan bun-structair còmhla ris a’ chòd tagraidh. Le bhith ga chleachdadh, faodaidh luchd-leasachaidh agus eòlaichean DevOps obrachadh leis an aon stòr tagraidh Git, ach air diofar phàirtean dheth. Bhon chòd seo, tha ìomhaigh Docker air a chruthachadh ann an Git, anns a bheil an tagradh air a chleachdadh a ’toirt aire do mhion-fhiosrachadh a’ bhun-structair. Gu sìmplidh, bu chòir na sgriobtaichean (riaghailtean) airson a bhith a’ cruinneachadh ìomhaighean a bhith san aon stòr leis a’ chòd stòr agus air an cur còmhla.

Cleachdaidhean Lìbhrigeadh Leantainneach le Docker (lèirmheas agus bhidio)

A thaobh ailtireachd tagraidh ioma-fhilleadh - mar eisimpleir, tha nginx ann, a tha na sheasamh air beulaibh tagradh a tha a ’ruith taobh a-staigh soitheach Docker mu thràth - feumar ìomhaighean Docker a chruthachadh bhon chòd ann an Git airson gach còmhdach. An uairsin bidh tagradh anns a’ chiad ìomhaigh le eadar-theangair agus eisimeileachd “dlùth” eile, agus bidh an nginx shuas an abhainn anns an dàrna ìomhaigh.

Ìomhaighean docker, conaltradh le Git

Bidh sinn a’ roinn a h-uile dealbh Docker a chaidh a chruinneachadh bho Git ann an dà roinn: sealach agus saor. Ìomhaighean sealach air an tagadh le ainm a’ mheur ann an Git, faodar ath-sgrìobhadh leis an ath ghealladh agus an sgaoileadh a-mach a-mhàin airson ro-shealladh (chan ann airson cinneasachadh). Is e seo am prìomh eadar-dhealachadh aca bhon fheadhainn fuasglaidh: chan eil fios agad a-riamh dè an gealladh sònraichte a tha annta.

Tha e ciallach cruinneachadh ann an ìomhaighean sealach: am prìomh mheur (faodaidh tu a chuir a-mach gu fèin-ghluasadach gu làrach air leth gus an dreach gnàthach de mhaighstir fhaicinn gu cunbhalach), meuran le fiosan, meuran de innleachdan sònraichte.

Cleachdaidhean Lìbhrigeadh Leantainneach le Docker (lèirmheas agus bhidio)
Às deidh ro-shealladh ìomhaighean sealach a thighinn chun fheum air eadar-theangachadh gu cinneasachadh, chuir an luchd-leasachaidh tag sònraichte. Air a chruinneachadh gu fèin-ghluasadach le tag dealbh a leigeil ma sgaoil (tha an taga aige a’ freagairt ris an taga bho Git) agus ga sgaoileadh a-mach gu àrd-ùrlar. Ma thèid a dhearbhadh gu soirbheachail leis an roinn càileachd, thèid e gu cinneasachadh.

dap

Faodar a h-uile dad a chaidh a mhìneachadh (sgaoileadh, co-chruinneachadh ìomhaighean, cumail suas às deidh sin) a chuir an gnìomh gu neo-eisimeileach a’ cleachdadh sgriobtaichean Bash agus innealan “gun ullachadh” eile. Ach ma nì thu seo, an uairsin aig àm air choreigin bidh am buileachadh a’ leantainn gu iom-fhillteachd mòr agus droch smachd. A’ tuigsinn seo, thàinig sinn gu bhith a’ cruthachadh ar goireas sruth-obrach sònraichte fhèin airson CI/CD a thogail - dap.

Tha an còd stòr aige sgrìobhte ann an Ruby, stòr fosgailte agus air fhoillseachadh air GitHub. Gu mì-fhortanach, is e sgrìobhainnean an ìre as laige den inneal an-dràsta, ach tha sinn ag obair air. Agus sgrìobhaidh sinn agus bruidhnidh sinn mun dapp barrachd air aon uair, oir ... Chan urrainn dhuinn gu dùrachdach feitheamh gus na comasan aige a cho-roinn leis a’ choimhearsnachd le ùidh gu lèir, ach san eadar-ama, cuir do chùisean agus tarraing iarrtasan agus / no lean leasachadh a ’phròiseict air GitHub.

Air ùrachadh air 13 Lùnastal, 2019: an-dràsta na phròiseact dap air ath-ainmeachadh gu gaoir, chaidh a chòd ath-sgrìobhadh gu tur ann an Go, agus chaidh na sgrìobhainnean aige a leasachadh gu mòr.

Kubernetes

Is e inneal Open Source deiseil eile a tha mar-thà air aithne chudromach fhaighinn san àrainneachd proifeasanta Kubernetes, buidheann riaghlaidh Docker. Tha cuspair a chleachdadh ann an obrachadh phròiseactan a chaidh a thogail air Docker taobh a-muigh raon na h-aithisg, agus mar sin tha an taisbeanadh cuingealaichte ri sealladh farsaing air cuid de fheartan inntinneach.

Airson sgaoileadh a-mach, tha Kubernetes a’ tabhann:

  • probe ullachaidh - a’ dèanamh cinnteach dè cho deiseil ‘s a tha dreach ùr den tagradh (gus trafaic a thionndadh thuige);
  • ùrachadh leantainneach - ùrachadh ìomhaigh sreath ann am buidheann de shoithichean (dùnadh, ùrachadh, ullachadh airson cur air bhog, atharrachadh trafaic);
  • ùrachadh sioncronaich - ag ùrachadh ìomhaigh ann am brabhsair le dòigh-obrach eadar-dhealaichte: an toiseach air leth de na soithichean, an uairsin air a ’chòrr;
  • fiosan canary - a’ cur air bhog ìomhaigh ùr air àireamh cuibhrichte (beag) de shoithichean gus sùil a chumail air neo-riaghailteachdan.

Leis nach e a-mhàin dreach ùr a th’ ann an Lìbhrigeadh Leantainneach, tha grunn chomasan aig Kubernetes airson cumail suas bun-structair às deidh sin: sgrùdadh agus logadh a-steach airson a h-uile soitheach, sgèileadh fèin-ghluasadach, msaa. buileachadh anns na pròiseasan agad.

Molaidhean deireannach

  1. Cleachd Docker.
  2. Cruthaich ìomhaighean Docker de thagraidhean airson na feumalachdan agad.
  3. Lean am prionnsapal “Is e còd a th’ ann am bun-structar. ”
  4. Ceangal Git gu Docker.
  5. Riaghladh an òrdugh sgaoileadh.
  6. Cleachd àrd-ùrlar deiseil (Kubernetes no fear eile).

Bhidiothan agus slides

Bhidio bhon taisbeanadh (timcheall air uair a thìde) fhoillseachadh air YouTube (tha an aithisg fhèin a’ tòiseachadh bhon 5mh mionaid - lean an ceangal airson cluich bhon mhionaid seo).

Taisbeanadh na h-aithisg:

PS

Aithisgean eile air a’ chuspair air a’ bhlog againn:

Source: www.habr.com

Cuir beachd ann