Cleachtais Seachadta Leanúnacha le Docker (athbhreithniú agus físeán)

Cuirfimid tús lenár mblag le foilseacháin bunaithe ar na hóráidí is déanaí ónár stiúrthóir teicniúil distol (Dmitry Stolyarov). Bhí gach ceann acu ar siúl i 2016 ag imeachtaí gairmiúla éagsúla agus bhí siad tiomanta don ábhar DevOps agus Docker. Físeán amháin ó chruinniú Docker Moscow ag oifig Badoo, atá againn cheana féin foilsithe Ar líne. In éineacht le cinn nua beidh ailt ag cur bunbhrí na dtuarascálacha in iúl. Mar sin…

31 Bealtaine ag an gcomhdháil RootConf 2016, a tionóladh mar chuid den fhéile “Russian Internet Technologies” (RIT++ 2016), osclaíodh an rannóg “Imscaradh agus Imscaradh Leanúnach” leis an tuarascáil “Cleachtais is Fearr maidir le Seachadadh Leanúnach le Docker”. Rinne sé achoimre agus córasú ar na cleachtais is fearr chun próiseas Seachadta Leanúnach (CD) a thógáil ag baint úsáide as Docker agus táirgí Foinse Oscailte eile. Oibrímid leis na réitigh seo i dtáirgeadh, rud a ligeann dúinn brath ar thaithí phraiticiúil.

Cleachtais Seachadta Leanúnacha le Docker (athbhreithniú agus físeán)

Má tá an deis agat uair an chloig a chaitheamh físeán den tuarascáil, molaimid féachaint air go hiomlán. Seachas sin, thíos tá an príomh achoimre i bhfoirm téacs.

Seachadadh Leanúnach le Docker

Faoi Seachadadh Leanúnach tuigimid an slabhra imeachtaí as a dtagann an cód iarratais ó stór Git go dtí an táirgeadh ar dtús, agus ansin a chríochnaíonn sé sa chartlann. Breathnaíonn sé mar seo: Git → Tógáil → Tástáil → Scaoileadh → Oibriú.

Cleachtais Seachadta Leanúnacha le Docker (athbhreithniú agus físeán)
Tá an chuid is mó den tuarascáil dírithe ar an gcéim thógála (tionól iarratais), agus déantar teagmháil go hachomair leis na topaicí a scaoiltear agus a fheidhmítear. Déanfaimid labhairt faoi fhadhbanna agus patrúin a ligeann duit iad a réiteach, agus d'fhéadfadh feidhmiú sonrach na bpatrún seo a bheith difriúil.

Cén fáth a bhfuil gá le Docker anseo ar chor ar bith? Ní haon rud é gur shocraigh muid labhairt faoi chleachtais um Sheachadadh Leanúnach i gcomhthéacs na huirlise Foinse Oscailte seo. Cé go bhfuil an tuarascáil ar fad dírithe ar a húsáid, nochtar go leor cúiseanna agus príomhphatrún rolladh amach an chóid iarratais á bhreithniú.

Príomh-patrún rolladh amach

Mar sin, nuair a rollaimid amach leaganacha nua den fheidhmchlár, is cinnte go bhfuil muid ag tabhairt aghaidhe fadhb downtime, a ghintear le linn an fhreastalaí táirgeachta a athrú. Ní féidir le trácht ón seanleagan den fheidhmchlár go dtí an ceann nua aistriú láithreach: ar dtús ní mór dúinn a chinntiú, ní hamháin go n-íoslódáiltear an leagan nua go rathúil, ach go bhfuil sé “téamh” freisin (ie, go hiomlán réidh chun iarratais a sheirbheáil).

Cleachtais Seachadta Leanúnacha le Docker (athbhreithniú agus físeán)
Mar sin, ar feadh tamaill oibreoidh an dá leagan den fheidhmchlár (sean agus nua) ag an am céanna. A eascraíonn go huathoibríoch chuig coinbhleacht acmhainní roinnte: líonra, córas comhaid, IPC, etc. Le Docker, is furasta an fhadhb seo a réiteach trí leaganacha éagsúla den fheidhmchlár a reáchtáil i gcoimeádáin ar leith, a bhfuil aonrú acmhainne ráthaithe laistigh den óstach céanna (freastalaí / meaisín fíorúil). Ar ndóigh, is féidir leat dul tríd le roinnt cleasanna gan insliú ar chor ar bith, ach má tá uirlis réidh agus áisiúil ann, ansin tá a mhalairt de chúis ann - gan é a fhaillí.

Soláthraíonn coimeádán go leor buntáistí eile nuair a úsáidtear é. Braitheann aon iarratas ar leagan ar leith (nó raon leagan) ateangaire, infhaighteacht modúl/síntí, etc., chomh maith lena leaganacha. Agus baineann sé seo ní hamháin leis an timpeallacht inrite láithreach, ach freisin leis an gcomhshaol ar fad, lena n-áirítear bogearraí córais agus a leagan (suas go dtí an dáileadh Linux a úsáidtear). Mar gheall ar an bhfíric go bhfuil coimeádáin nach bhfuil ach cód iarratais, ach freisin córais réamh-suiteáilte agus bogearraí a chur i bhfeidhm na leaganacha riachtanacha, is féidir leat dearmad a dhéanamh ar fhadhbanna le spleáchais.

Déanaimis ginearálú patrún rollta is mó leaganacha nua ag cur na fachtóirí seo a leanas san áireamh:

  1. Ar dtús, ritheann an seanleagan den iarratas sa chéad choimeádán.
  2. Ansin déantar an leagan nua a rolladh amach agus a “théamh suas” i gcoimeádán eile. Is fiú a thabhairt faoi deara go bhféadfadh an leagan nua féin ní hamháin cód feidhmchláir nuashonraithe a iompar, ach freisin aon cheann dá spleáchais, chomh maith le comhpháirteanna córais (mar shampla, leagan nua de OpenSSL nó an dáileadh iomlán).
  3. Nuair a bhíonn an leagan nua réidh go hiomlán le freastal ar iarratais, aistríonn an trácht ón gcéad choimeádán go dtí an dara ceann.
  4. Is féidir an seanleagan a stopadh anois.

Soláthraíonn an cur chuige seo maidir le leaganacha éagsúla den fheidhmchlár a imscaradh i gcoimeádáin ar leith áis eile - aischur tapa go dtí an seanleagan (tar éis an tsaoil, is leor trácht a aistriú chuig an gcoimeádán atá ag teastáil).

Cleachtais Seachadta Leanúnacha le Docker (athbhreithniú agus físeán)
Is cosúil gur rud é an chéad mholadh deiridh nach raibh fiú an Captaen in ann locht a fháil air: “[agus Seachadadh Leanúnach le Docker á eagrú] Úsáid Docker [agus tuig cad a thugann sé]" Cuimhnigh, ní piléar airgid é seo a réiteoidh gach fadhb, ach uirlis a sholáthraíonn bunús iontach.

In-atáirgtheacht

Is éard atá i gceist againn le “atáirgtheacht” sraith fadhbanna ginearálaithe a bhíonn le sárú agus feidhmchláir á n-oibriú againn. Táimid ag caint faoi chásanna den sórt sin:

  • Ní mór na scripteanna atá seiceáilte ag an roinn cáilíochta le haghaidh stáitse a atáirgeadh go cruinn i dtáirgeadh.
  • Foilsítear feidhmchláir ar fhreastalaithe ar féidir leo pacáistí a fháil ó scátháin stórtha éagsúla (le himeacht ama déantar iad a nuashonrú, agus na leaganacha d’fheidhmchláir suiteáilte leo).
  • “Oibríonn gach rud domsa go háitiúil!” (...agus ní cheadaítear d'fhorbróirí dul i mbun táirgeachta.)
  • Ní mór duit rud éigin a sheiceáil sa seanleagan (cartlannaithe).
  • ...

Is é an bunús atá leo ná go bhfuil gá leis na timpeallachtaí a úsáidtear (chomh maith le heaspa fachtóir an duine) a chomhlíonadh go hiomlán. Conas is féidir linn in-atáirgtheacht a ráthú? Déan íomhánna Docker bunaithe ar chód ó Git, agus ansin iad a úsáid le haghaidh aon tasc: ar láithreáin tástála, i dtáirgeadh, ar mheaisíní áitiúla ríomhchláraitheoirí ... Ag an am céanna, tá sé tábhachtach na gníomhartha a dhéantar a íoslaghdú tar éis an íomhá a chur le chéile: dá simplí atá sé, is lú an seans go mbeidh earráidí ann.

Is cód é an bonneagar

Mura ndéantar na ceanglais bhonneagair (infhaighteacht bogearraí freastalaí, a leagan, etc.) a fhoirmiú agus a “ríomhchlárú,” is féidir iarmhairtí tubaisteacha a bheith mar thoradh ar fheidhmiú céimneach aon nuashonraithe feidhmchláir. Mar shampla, le linn stáitse a dhéanamh tá tú tar éis aistriú go PHP 7.0 cheana féin agus an cód a athscríobh dá réir sin - ansin is cinnte go gcuirfidh a chuma i dtáirgeadh le roinnt sean PHP (5.5) iontas ar dhuine. B’fhéidir nach ndéanann tú dearmad ar athrú mór ar an leagan ateangaire, ach “tá an diabhal sna sonraí”: d’fhéadfadh an t-iontas a bheith i nuashonrú beag ar aon spleáchas.

Tugtar cur chuige chun an fhadhb seo a réiteach IaC (Bonneagar mar Chód, “bonneagar mar chód”) agus baineann sé le riachtanais bhonneagair a stóráil in éineacht leis an gcód iarratais. Agus é á úsáid, is féidir le forbróirí agus speisialtóirí DevOps oibriú leis an stór iarratais Git céanna, ach ar chodanna éagsúla de. Ón gcód seo, cruthaítear íomhá Docker i Git, ina n-imlonnaítear an feidhmchlár agus sonraí uile an bhonneagair á gcur san áireamh. Go simplí, ba chóir go mbeadh na scripteanna (rialacha) chun íomhánna a chur le chéile sa stór céanna leis an gcód foinse agus go ndéanfaí iad a chumasc le chéile.

Cleachtais Seachadta Leanúnacha le Docker (athbhreithniú agus físeán)

I gcás ailtireacht iarratais ilchiseal - mar shampla, tá nginx, a sheasann os comhair iarratas atá ag rith cheana féin taobh istigh de choimeádán Docker - ní mór íomhánna Docker a chruthú ó chód i Git do gach ciseal. Ansin beidh feidhmchlár le ateangaire agus spleáchais “gar” eile sa chéad íomhá, agus beidh an nginx in aghaidh an tsrutha sa dara íomhá.

Íomhánna docker, cumarsáid le Git

Roinnimid gach íomhá Docker a bhailítear ó Git ina dhá chatagóir: sealadach agus scaoileadh. Íomhánna sealadacha clibáilte faoi ainm an bhrainse i Git, is féidir iad a fhorscríobh ag an gcéad ghealltanas eile agus iad a rolladh amach le haghaidh réamhamhairc amháin (ní le haghaidh táirgeadh). Is é seo a bpríomhdhifríocht idir na cinn eisithe: ní bhíonn a fhios agat cén tiomantas ar leith atá iontu.

Déanann sé ciall íomhánna sealadacha a bhailiú: an brainse máistir (is féidir leat é a rolladh amach go huathoibríoch chuig suíomh ar leith chun an leagan reatha de mháistir a fheiceáil i gcónaí), brainsí le heisiúintí, brainsí de nuálaíochtaí sonracha.

Cleachtais Seachadta Leanúnacha le Docker (athbhreithniú agus físeán)
Tar éis don réamhamharc ar íomhánna sealadacha teacht ar an ngá atá le haistriúchán isteach i dtáirgeadh, chuir na forbróirí clib áirithe. Bailítear go huathoibríoch trí chlib íomhá a scaoileadh (comhfhreagraíonn a chlib don chlib ó Git) agus déantar é a rolladh amach chuig stáitse. Má dhéantar é a fhíorú go rathúil ag an roinn cáilíochta, téann sé chuig táirgeadh.

Dapp

Is féidir gach rud a thuairiscítear (rolladh amach, cóimeáil íomhánna, cothabháil ina dhiaidh sin) a chur i bhfeidhm go neamhspleách ag baint úsáide as scripteanna Bash agus uirlisí “seiftithe” eile. Ach má dhéanann tú é seo, ansin ag pointe éigin beidh an cur i bhfeidhm mar thoradh ar chastacht mhór agus inrialaitheacht lag. Agus é seo á thuiscint, tháinig muid chun ár n-áiseanna Sreabhadh Oibre speisialaithe féin a chruthú chun CI/CD a thógáil - Dapp.

Tá a cód foinse scríofa i Ruby, foinse oscailte agus foilsithe ar GitHub. Ar an drochuair, is é an doiciméadú an pointe is laige den uirlis faoi láthair, ach táimid ag obair air. Agus beidh muid ag scríobh agus ag caint faoin dapp níos mó ná uair amháin, mar gheall ar ... Ní féidir linn fanacht ó chroí lena chumais a roinnt leis an bpobal leasmhara ar fad, ach idir an dá linn, seol do cheisteanna agus iarratais tarraingthe agus / nó lean forbairt an tionscadail ar GitHub.

Nuashonraithe 13 Lúnasa, 2019: tionscadal faoi láthair Dapp athainmnithe go caoirigh, athscríobhadh a chód go hiomlán i Go, agus tá feabhas suntasach tagtha ar a dhoiciméadú.

Kubernetes

Uirlis Foinse Oscailte réidh eile a fuair aitheantas suntasach cheana féin sa timpeallacht ghairmiúil Kubernetes, braisle bainistíochta Docker. Tá ábhar a úsáide in oibriú na dtionscadal a tógadh ar Docker lasmuigh de raon feidhme na tuarascála, agus mar sin tá an cur i láthair teoranta d'fhorbhreathnú ar roinnt gnéithe suimiúla.

Le haghaidh rolladh amach, tairgeann Kubernetes:

  • taiscéalaí ullmhachta - seiceáil a dhéanamh ar ullmhacht leagan nua den fheidhmchlár (chun trácht a aistriú chuige);
  • nuashonrú rollta - nuashonrú íomhá seicheamhach i mbraisle coimeádán (múchadh, nuashonrú, ullmhúchán don seoladh, aistriú tráchta);
  • nuashonrú sioncrónach - íomhá a nuashonrú i mbraisle le cur chuige difriúil: an chéad ar leath de na coimeádáin, ansin ar an gcuid eile;
  • eisiúintí canáraí - ag seoladh íomhá nua ar líon teoranta (beag) coimeádán chun monatóireacht a dhéanamh ar aimhrialtachtaí.

Ós rud é nach bhfuil Seachadadh Leanúnach ach scaoileadh leagan nua, tá roinnt cumais ag Kubernetes le haghaidh cothabhála bonneagair ina dhiaidh sin: monatóireacht agus logáil ionsuite do gach coimeádán, scálaithe uathoibríoch, etc. Tá sé seo go léir ag obair cheana féin agus tá sé ag fanacht go díreach le haghaidh cur i bhfeidhm i do phróisis.

Moltaí deiridh

  1. Úsáid Docker.
  2. Cruthaigh íomhánna Docker d'fheidhmchláir do do chuid riachtanas go léir.
  3. Lean an prionsabal "Is cód é an bonneagar."
  4. Nasc Git le Docker.
  5. Ord an rolladh amach a rialáil.
  6. Bain úsáid as ardán réamhdhéanta (Kubernetes nó ceann eile).

Físeáin agus sleamhnáin

Físeán ón léiriú (thart ar uair an chloig) foilsithe ar YouTube (tosaíonn an tuairisc féin ón 5ú nóiméad - lean an nasc le himirt ón nóiméad seo).

Cur i láthair na tuarascála:

PS

Tuarascálacha eile ar an ábhar ar ár mblag:

Foinse: will.com

Add a comment