Omume nnyefe na-aga n'ihu na Docker (nyocha na vidiyo)

Anyị ga-eji akwụkwọ bido blọọgụ dabere na okwu kachasị ọhụrụ nke onye isi ọrụ nka anyị distol (Dmitry Stolyarov). Ha niile mere na 2016 na mmemme ọkachamara dị iche iche ma raara onwe ha nye isiokwu nke DevOps na Docker. Otu vidiyo sitere na nzukọ Docker Moscow na ụlọ ọrụ Badoo, anyị enweelarị bipụtara Online. Ndị ọhụrụ ga-esonyere ya na akụkọ na-ebupụta isi akụkọ ndị ahụ. Yabụ…

Mee 31 na ogbako RootConf 2016, Emere dị ka akụkụ nke ememme "Russian Internet Teknụzụ" (RIT ++ 2016), ngalaba "Ntugharị na-aga n'ihu na ntinye" meghere na akụkọ "Ụdị Omume kachasị mma nke Nnyefe Na-aga n'ihu na Docker". Ọ chịkọtara na hazie usoro kachasị mma maka iwulite usoro nnyefe na-aga n'ihu (CD) site na iji Docker na ngwaahịa mepere emepe ndị ọzọ. Anyị na-arụ ọrụ na ngwọta ndị a na mmepụta, nke na-enye anyị ohere ịdabere na ahụmahụ bara uru.

Omume nnyefe na-aga n'ihu na Docker (nyocha na vidiyo)

Ọ bụrụ na ị nwere ohere iji otu awa vidiyo nke akụkọ, anyị na-akwado ikiri ya n'uju. Ma ọ bụghị ya, n'okpuru bụ nchịkọta isi n'ụdị ederede.

Nnyefe na-aga n'ihu na Docker

N'okpuru Nzipu Na-aga n'ihu anyị ghọtara usoro ihe omume n'ihi nke koodu ngwa sitere na ebe nchekwa Git na-ebu ụzọ pụta na mmepụta, wee mechie na ebe nchekwa. Ọ dị ka nke a: Git → Mee → Nwale → Mwepụta → rụọ ọrụ.

Omume nnyefe na-aga n'ihu na Docker (nyocha na vidiyo)
Ọtụtụ n'ime akụkọ a na-etinye aka na nhazi ihe nrụpụta (mgbakọ ngwa), a na-emetụkwa isiokwu ndị a na-ewepụta na arụ ọrụ na nkenke. Anyị ga-ekwu maka nsogbu na usoro ndị na-enye gị ohere idozi ha, na mmejuputa a kapịrị ọnụ nke usoro ndị a nwere ike ịdị iche.

Kedu ihe kpatara achọrọ Docker ebe a ma ọlị? Ọ bụghị n'efu ka anyị kpebiri ikwu maka omume nnyefe na-aga n'ihu n'ọnọdụ nke ngwa isi mmalite a. Agbanyeghị na etinyere akụkọ ahụ dum maka iji ya, a na-ekpughe ọtụtụ ihe mgbe a na-atụle usoro ntinye koodu ngwa.

Ụkpụrụ mbugharị isi

Yabụ, mgbe anyị wepụtara ụdị ngwa ọhụrụ, anyị na-eche ihu nsogbu downtime, emepụtara n'oge ngbanwe nke ihe nkesa mmepụta. Traffic si na ngwa ochie nke ngwa gaa na nke ọhụrụ enweghị ike ịgbanwe ozugbo: nke mbụ anyị ga-emerịrị na ọ bụghị naanị nbudata ụdị ọhụrụ ahụ nke ọma, kamakwa “na-ekpo ọkụ” (ya bụ, dị njikere kpamkpam iji nye arịrịọ).

Omume nnyefe na-aga n'ihu na Docker (nyocha na vidiyo)
Ya mere, ruo oge ụfọdụ ụdị ngwa ahụ (nke ochie na nke ọhụrụ) ga-arụ ọrụ n'otu oge. Nke na-eduga na-akpaghị aka òkè akụ esemokwu: netwọk, usoro faịlụ, IPC, wdg. Site na Docker, a na-edozi nsogbu a ngwa ngwa site na iji ụdị ngwa dị iche iche n'ime akpa dị iche iche, nke a na-ekwe nkwa ichebe ihe onwunwe n'ime otu onye ọbịa (ihe nkesa / igwe ihe). N'ezie, ị nwere ike nweta ụfọdụ aghụghọ na-enweghị mkpuchi ma ọlị, ma ọ bụrụ na e nwere ngwá ọrụ dị njikere ma dị mma, mgbe ahụ enwere ihe na-abụghị nke - ịghara ileghara ya anya.

Ngwakọta na-enye ọtụtụ uru ndị ọzọ mgbe ebugara ya. Ngwa ọ bụla dabere na ụdịdị akọwapụtara (ma ọ bụ oke ụdị) onye ntụgharị okwu, nnweta modul / ndọtị, wdg, yana nsụgharị ha. Ma nke a na-emetụta ọ bụghị naanị na gburugburu ebe obibi ozugbo, kamakwa na gburugburu ebe obibi, gụnyere usoro software na ụdị ya (ruo na nkesa Linux ejiri). N'ihi n'eziokwu na arịa nwere ọ bụghị naanị koodu ngwa, kamakwa usoro etinyere na ngwa ngwa nke nsụgharị achọrọ, ị nwere ike ichefu nsogbu na ịdabere.

Ka anyị chịkọta ụkpụrụ mbugharị isi ụdị ọhụrụ na-eburu n'uche ihe ndị a:

  1. Na mbụ, ngwa ochie nke ngwa na-agba na akpa akpa.
  2. A na-atụgharị ụdị ọhụrụ ahụ wee "na-ekpo ọkụ" n'ime akpa nke abụọ. Ọ bụ ihe kwesịrị ịrịba ama na ụdị ọhụrụ a n'onwe ya nwere ike iburu ọ bụghị naanị koodu ngwa emelitere, kamakwa nke ọ bụla dabere na ya, yana akụrụngwa sistemụ (dịka ọmụmaatụ, ụdị OpenSSL ọhụrụ ma ọ bụ nkesa dum).
  3. Mgbe ụdị ọhụrụ ahụ dị njikere nke ọma iji nye arịrịọ, okporo ụzọ na-agbanwe site na akpa nke mbụ gaa na nke abụọ.
  4. Ụdị ochie nwere ike ịkwụsị ugbu a.

Ụzọ a nke ibuga ụdị ngwa dị iche iche n'ime akpa dị iche iche na-enye mma ọzọ - ngwa ngwa mpịakọta na ụdị ochie (mgbe niile, o zuru ezu iji gbanwee okporo ụzọ gaa na akpa a chọrọ).

Omume nnyefe na-aga n'ihu na Docker (nyocha na vidiyo)
Ndụmọdụ ikpeazụ nke mbụ dị ka ihe ọbụna Captain enweghị ike ịhụ mmejọ ya: "[mgbe ị na-ahazi nnyefe na-aga n'ihu na Docker] Jiri Docker [ma ghọta ihe ọ na-enye]" Cheta, nke a abụghị mgbọ ọlaọcha nke ga-edozi nsogbu ọ bụla, kama ọ bụ ngwá ọrụ na-enye ntọala dị ebube.

Mmụgharị

Site na “mmegharị” anyị na-apụta ụdị nsogbu a na-ezute mgbe ị na-arụ ọrụ. Anyị na-ekwu maka ụdị ikpe ndị a:

  • Ekwesịrị imepụtagharị script nke ngalaba ịdị mma na-enyocha ya nke ọma na mmepụta.
  • A na-ebipụta ngwa na sava ndị nwere ike ịnweta ngwugwu sitere na enyo nchekwa dị iche iche (ka oge na-aga, a na-emelite ha, yana ya na nsụgharị nke ngwa arụnyere).
  • "Ihe niile na-arụ ọrụ maka m na mpaghara!" (...na ndị mmepe anaghị ekwe ka ha mepụta.)
  • Ịkwesịrị ịlele ihe dị na ụdị ochie (nke echekwara).
  • ...

Ebumnuche ha n'ozuzu gbadara n'eziokwu ahụ bụ na nrubeisi zuru oke nke gburugburu ebe a na-eji (yana enweghị ihe kpatara mmadụ) dị mkpa. Olee otú anyị ga-esi kwe nkwa reproducibility? Mepụta onyonyo Docker dabere na koodu sitere na Git, wee jiri ha rụọ ọrụ ọ bụla: na saịtị ule, na mmepụta, na igwe mpaghara nke ndị mmemme ... N'otu oge ahụ, ọ dị mkpa ibelata omume ndị a na-eme. после na-achịkọta ihe oyiyi ahụ: ka ọ dị mfe, ọ ga-abụ na ọ ga-abụ na e nwere njehie.

Akụrụngwa bụ koodu

Ọ bụrụ na ewepụtaghị akụrụngwa chọrọ (ịnwe ngwanrọ nkesa, ụdị ya, wdg) ahazighị ya na “emebere ya,” mgbe ahụ iwepụta mmelite ngwa ọ bụla nwere ike ibute nsonaazụ jọgburu onwe ya. Dịka ọmụmaatụ, na nhazi, ị gbanweela na PHP 7.0 wee degharịa koodu ahụ - mgbe ahụ ọdịdị ya na mmepụta ya na ụfọdụ PHP ochie (5.5) ga-eju mmadụ anya. Ị nwere ike ghara ichefu banyere nnukwu mgbanwe na nsụgharị nsụgharị, ma "ekwensu nọ na nkọwa": ihe ijuanya nwere ike ịbụ na obere mmelite nke ndabere ọ bụla.

A maara ụzọ iji dozie nsogbu a IaC (Ihe akụrụngwa dị ka Koodu, “akụrụngwa dị ka koodu”) ma gụnyere ịchekwa ihe akụrụngwa chọrọ yana koodu ngwa. Iji ya, ndị mmepe na ndị ọkachamara DevOps nwere ike iji otu ebe nchekwa ngwa Git rụọ ọrụ, mana n'akụkụ ya dị iche iche. Site na koodu a, a na-emepụta onyonyo Docker na Git, nke etinyere ngwa a na-eburu n'uche nkọwapụta akụrụngwa niile. N'ikwu ya n'ụzọ dị mfe, scripts (iwu) maka ịchịkọta ihe oyiyi kwesịrị ịdị n'otu ebe nchekwa na koodu isi iyi ma jikọta ọnụ.

Omume nnyefe na-aga n'ihu na Docker (nyocha na vidiyo)

N'ihe banyere nhazi ngwa ngwa ọtụtụ - dịka ọmụmaatụ, enwere nginx, nke na-eguzo n'ihu ngwa na-agba ọsọ n'ime akpa Docker - A ghaghị ịmepụta ihe oyiyi Docker site na koodu na Git maka oyi akwa ọ bụla. Mgbe ahụ onyonyo nke mbụ ga-enwe ngwa nwere onye ntụgharị na ihe ndị ọzọ dabere na “nsochi”, onyonyo nke abụọ ga-enwe nginx elu.

Onyonyo Docker, nkwurịta okwu na Git

Anyị na-ekewa onyonyo Docker niile anakọtara na Git ụzọ abụọ: nwa oge na ntọhapụ. Onyonyo nwa oge akara n'aha alaka ụlọ ọrụ dị na Git, enwere ike degharịa ya site na ntinye na-esote ma bugharịa ya naanị maka nlele (ọ bụghị maka mmepụta). Nke a bụ isi ihe dị iche na nke ntọhapụ: ị maghị nke a kapịrị ọnụ nke dị n'ime ha.

Ọ na-eme ka uche na-anakọta n'ime nwa oge oyiyi: nna ukwu alaka ụlọ ọrụ (ị nwere ike na-akpaghị aka tụgharịa ya a iche iche saịtị mgbe niile ịhụ ugbu a version nke nna ukwu), alaka na releases, alaka nke kpọmkwem innovations.

Omume nnyefe na-aga n'ihu na Docker (nyocha na vidiyo)
Mgbe nlele nke onyonyo nwa oge bịara na mkpa ntụgharị asụsụ n'ime mmepụta, ndị mmepe na-etinye mkpado ụfọdụ. Eji mkpado anakọtara na-akpaghị aka ntọhapụ oyiyi (mkpado ya dabara na mkpado sitere na Git) wee tụgharịa na nhazi. Ọ bụrụ na a kwadoro ya nke ọma site na ngalaba àgwà, ọ na-aga mmepụta.

dap

Ihe niile akọwara (iwepụ, mkpokọta onyonyo, nrụzi na-esote) nwere ike mejuputa ya n'onwe ya site na iji script Bash na ngwaọrụ ndị ọzọ “mmara”. Ma ọ bụrụ na ị na-eme nke a, mgbe ahụ, n'oge ụfọdụ mmejuputa iwu ga-eduga na nnukwu mgbagwoju anya na njikwa na-adịghị mma. N'ịghọta nke a, anyị bịara ịmepụta ngwa ọrụ ọrụ pụrụ iche maka iwu CI/CD - dap.

Edere koodu isi mmalite ya na Ruby, mepere emepe ma bipụta ya GitHub. N'ụzọ dị mwute, akwụkwọ ugbu a bụ ebe kachasị ike nke ngwá ọrụ ahụ, ma anyị na-arụ ọrụ na ya. Na anyị ga-ede na-ekwu maka dapp ihe karịrị otu ugboro, n'ihi na ... Anyị enweghị ike ichere ịkekọrịta ikike ya na obodo niile nwere mmasị, mana ka ọ dị ugbu a, ziga okwu gị wee dọpụta arịrịọ na / ma ọ bụ soro mmepe nke ọrụ ahụ na GitHub.

Emelitere Ọgọstụ 13, 2019: ugbu a oru ngo dap akpọgharịrị aha ya werf, edegharịla koodu ya kpamkpam na Go, ma emeziwanyela akwụkwọ ya nke ọma.

Kubernetes

Ngwá ọrụ Open Source ọzọ emebere nke enwetalarị nkwanye ùgwù dị ukwuu na gburugburu ọkachamara bụ Kubernetes, ụyọkọ njikwa Docker. Isiokwu nke iji ya na-arụ ọrụ nke a rụrụ na Docker karịrị akarị nke akụkọ, ya mere ngosi na-ejedebeghị na nchịkọta nke ụfọdụ na-akpali atụmatụ.

Maka mbughari, Kubernetes na-enye:

  • Nyocha njikere - ịlele ịdị njikere nke ụdị ngwa ọhụrụ (ịgbanwe okporo ụzọ na ya);
  • mmelite mpịakọta - nwelite onyonyo usoro n'usoro n'ime ụyọkọ arịa (mmechi, mmelite, nkwadebe maka mmalite, mgbanwe okporo ụzọ);
  • Mmelite mmekọrịta - imelite onyonyo na ụyọkọ nwere ụzọ dị iche iche: nke mbụ na ọkara nke arịa, mgbe ahụ na ndị ọzọ;
  • mwepụta canary - na-ewepụta onyonyo ọhụrụ na ọnụ ọgụgụ arịa pere mpe (obere) iji nyochaa ihe adịghị mma.

Ebe ọ bụ na Nnyefe na-aga n'ihu abụghị naanị ntọhapụ nke ụdị ọhụrụ, Kubernetes nwere ọtụtụ ikike maka mmezi akụrụngwa na-esote: nleba anya na-arụ ọrụ na ịbanye maka arịa niile, scaling akpaka, wdg. Ihe niile a na-arụ ọrụ ugbu a ma na-echere maka kwesịrị ekwesị. mmejuputa iwu na usoro gị.

Ndụmọdụ ikpeazụ

  1. Jiri Docker.
  2. Mepụta onyonyo Docker nke ngwa maka mkpa gị niile.
  3. Soro ụkpụrụ "Ihe akụrụngwa bụ koodu."
  4. Jikọọ Git na Docker.
  5. Hazie usoro mbughari.
  6. Jiri ikpo okwu emebere (Kubernetes ma ọ bụ ọzọ).

Vidiyo na slide

Vidiyo sitere na arụmọrụ (ihe dị ka otu elekere) bipụtara na YouTube (akụkọ ahụ n'onwe ya na-amalite site na nkeji nke ise - soro njikọ iji kpọọ site na oge a).

Ngosipụta akụkọ a:

PS

Akụkọ ndị ọzọ gbasara isiokwu a na blọọgụ anyị:

isi: www.habr.com

Tinye a comment