Ár gcur i bhfeidhm Imscaradh Leanúnach ar ardán an chustaiméara

Táimid ag True Engineering tar éis próiseas a bhunú chun nuashonruithe a sheachadadh go leanúnach do fhreastalaithe custaiméirí agus ba mhaith linn an t-eispéireas seo a roinnt.

Ar dtús, d’fhorbraíomar córas ar líne don chustaiméir agus d’imlonníomar é inár mbraisle Kubernetes féin. Anois tá ár réiteach ard-ualaigh tar éis bogadh go dtí ardán an chustaiméara, agus tá próiseas Imlonnaithe Leanúnach go hiomlán uathoibríoch bunaithe againn. A bhuíochas leis seo, chuireamar dlús leis an am go dtí an margadh - seachadadh athruithe ar thimpeallacht an táirge.

San Airteagal seo labhróimid faoi gach céim den phróiseas Imlonnaithe Leanúnach (CD) nó seachadadh nuashonruithe ar ardán an chustaiméara:

  1. Conas a thosaíonn an próiseas seo?
  2. sioncrónú le stór Git an chustaiméara,
  3. comhthionól an t-inneall agus an t-éadan,
  4. imscaradh feidhmchláir uathoibríoch i dtimpeallacht tástála,
  5. imscaradh uathoibríoch chuig Prod.

Roinnfimid na sonraí socraithe ar an mbealach.

Ár gcur i bhfeidhm Imscaradh Leanúnach ar ardán an chustaiméara

1. Tosaigh CD

Tosaíonn Imscaradh Leanúnach agus an forbróir ag brú athruithe ar bhrainse scaoileadh ár stór Git.

Ritheann ár bhfeidhmchlár ar ailtireacht microservice agus stóráiltear a chuid comhpháirteanna go léir in aon stór amháin. Buíochas leis seo, bailítear agus suiteáiltear na microservices go léir, fiú má tá athrú ar cheann acu.

D’eagraíomar obair trí stór amháin ar chúiseanna éagsúla:

  • Éasca le forbairt - tá an feidhmchlár ag forbairt go gníomhach, ionas gur féidir leat oibriú leis an gcód go léir ag an am céanna.
  • Píblíne CI/CD amháin a ráthaíonn go n-éiríonn leis an iarratas mar chóras aonair na tástálacha go léir agus go seachadtar é chuig timpeallacht táirgthe an chustaiméara.
  • Cuirimid deireadh le mearbhall i leaganacha - ní gá dúinn léarscáil leagan de microservices a stóráil agus cur síos a dhéanamh ar a chumraíocht do gach microservice i scripteanna Helm.

2. Sioncrónú le stór Git de chód foinse an chustaiméara

Déantar na hathruithe a dhéantar a shioncronú go huathoibríoch le stór Git an chustaiméara. Tá an tionól feidhmchlár cumraithe ansin, a sheoltar tar éis an brainse a nuashonrú, agus a imscaradh go dtí an leanúint. Eascraíonn an dá phróiseas as a dtimpeallacht ó stór Git.

Ní féidir linn oibriú go díreach le stór an chustaiméara toisc go dteastaíonn ár dtimpeallachtaí féin uainn le haghaidh forbartha agus tástála. Bainimid úsáid as ár stór Git chun na gcríoch sin - déantar é a shioncronú lena stór Git. Chomh luath agus a phostálann forbróir athruithe ar an mbrainse cuí dár stór, cuireann GitLab na hathruithe seo ar an gcustaiméir láithreach.

Ár gcur i bhfeidhm Imscaradh Leanúnach ar ardán an chustaiméara

Tar éis seo ní mór duit an tionól a dhéanamh. Tá roinnt céimeanna ann: tionól inneall agus aghaidh, tástáil agus seachadadh chuig táirgeadh.

3. An t-innill agus an t-éadanas a chur le chéile

Dhá thasc chomhthreomhara a dhéantar sa chóras GitLab Runner is ea tógáil an t-innill agus an t-éadanas. Tá a chumraíocht tionóil bhunaidh suite sa stór céanna.

Teagaisc chun script YAML a scríobh le tógáil i GitLab.

Tógann GitLab Runner an cód ón stór riachtanach, cóimeálann sé é leis an ordú tógála feidhmchláir Java agus cuireann sé chuig an gclár Docker é. Anseo cuirimid an t-innill agus an t-éadan le chéile, faigh íomhánna Docker, a chuirimid isteach i stór ar thaobh an chustaiméara. Bainimid úsáid as íomhánna Docker a bhainistiú Breiseán Gradle.

Déanaimid na leaganacha dár n-íomhánna a shioncronú leis an leagan scaoileadh a fhoilseofar in Docker. Le haghaidh oibriú rianúil tá roinnt coigeartuithe déanta againn:

1. Ní atógtar coimeádáin idir an timpeallacht tástála agus an timpeallacht táirgthe. Rinneamar parametrizations ionas go bhféadfadh an coimeádán céanna oibriú leis na socruithe, na hathróga comhshaoil ​​agus na seirbhísí go léir sa timpeallacht tástála agus i dtáirgeadh gan atógáil.

2. Chun feidhmchlár a nuashonrú trí Helm, ní mór duit a leagan a shonrú. Tógaimid an t-inneall, an t-éadanas agus an feidhmchlár a nuashonrú - is trí thasc dhifriúla iad seo, mar sin tá sé tábhachtach an leagan céanna den fheidhmchlár a úsáid i ngach áit. Don tasc seo, úsáidimid sonraí ó stair Git, ós rud é go bhfuil ár gcumraíocht braisle K8S agus feidhmchláir sa stór Git céanna.

Faighimid an leagan iarratais ó na torthaí forghníomhaithe orduithe
git describe --tags --abbrev=7.

4. Imscaradh uathoibríoch ar gach athrú ar an timpeallacht tástála (UAT)

Is é an chéad chéim eile sa script tógála seo ná an braisle K8S a nuashonrú go huathoibríoch. Tarlaíonn sé seo ar choinníoll go bhfuil an feidhmchlár iomlán tógtha agus go bhfuil gach déantán foilsithe do Chlárlann na nDugairí. Tar éis seo, tosaíonn an nuashonrú timpeallachta tástála.

Tá an nuashonrú braisle tosaithe ag úsáid Nuashonrú Helm. Más rud é, mar thoradh air sin, nach ndeachaigh rud éigin de réir an phlean, déanfaidh Helm a chuid athruithe go léir a rolladh siar go huathoibríoch agus go neamhspleách. Ní gá a chuid oibre a rialú.

Soláthraímid cumraíocht braisle K8S chomh maith leis an tionól. Mar sin, is é an chéad chéim eile é a nuashonrú: configMaps, imscaradh, seirbhísí, rúin agus aon chumraíochtaí K8S eile atá athraithe againn.

Ansin ritheann Helm nuashonrú Rolladh Amach den fheidhmchlár féin sa timpeallacht tástála. Sula n-imscartar an t-iarratas chuig an táirgeadh. Déantar é seo ionas gur féidir le húsáideoirí na gnéithe gnó a chuireamar isteach sa timpeallacht tástála a thástáil de láimh.

5. Imscaradh uathoibríoch ar gach athrú ar Prod

Chun nuashonrú a imscaradh ar an timpeallacht táirgthe, ní gá duit ach cliceáil ar chnaipe amháin i GitLab - agus seachadtar na coimeádáin láithreach chuig an timpeallacht táirgthe.

Is féidir leis an bhfeidhmchlár céanna oibriú i dtimpeallachtaí éagsúla - tástáil agus táirgeadh - gan atógáil. Bainimid úsáid as na déantáin chéanna gan aon rud a athrú san iarratas, agus socraímid na paraiméadair go seachtrach.

Braitheann paraiméadarú solúbtha socruithe feidhmchláir ar an timpeallacht ina ndéanfar an t-iarratas a fhorghníomhú. Táimid tar éis na socruithe timpeallachta go léir a bhogadh go seachtrach: déantar gach rud a pharaiméadar trí chumraíocht K8S agus paraiméadair Helm. Nuair a imscarann ​​Helm tionól chuig an timpeallacht tástála, cuirtear na socruithe tástála i bhfeidhm air, agus cuirtear socruithe an táirge i bhfeidhm ar an timpeallacht táirgthe.

Ba é an rud is deacra ná na seirbhísí agus na hathróga go léir a úsáidtear a bhraitheann ar an gcomhshaol a pharaiméadarú, agus iad a aistriú go hathróga timpeallachta agus cumraíochtaí tuairisce ar pharaiméadair timpeallachta do Helm.

Úsáideann socruithe feidhmchláir athróga timpeallachta. Socraítear a luachanna i gcoimeádáin ag baint úsáide as configmap K8S, atá teimpléidithe ag baint úsáide as teimpléid Go. Mar shampla, is féidir athróg timpeallachta a shocrú don ainm fearainn mar seo:

APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}

.luachanna.domhanda.env – stórálann an athróg seo ainm an chomhshaoil ​​(táirge, stáitse, UAT).
.Luachanna.app.properties.app_external_domain – san athróg seo socróimid an fearann ​​atá ag teastáil sa chomhad .Values.yaml

Agus feidhmchlár á nuashonrú, cruthaíonn Helm comhad configmap.yaml ó theimpléid agus líonann sé an luach APP_EXTERNAL_DOMAIN leis an luach atá ag teastáil ag brath ar an timpeallacht ina gcuirtear tús le nuashonrú an fheidhmchláir. Tá an athróg seo socraithe sa choimeádán cheana féin. Is féidir é a rochtain ón bhfeidhmchlár, mar sin beidh luach difriúil ag gach timpeallacht iarratais don athróg seo.

Le déanaí, bhí tacaíocht K8S le feiceáil in Spring Cloud, lena n-áirítear oibriú le configMaps: Scamall Earraigh Kubernetes. Cé go bhfuil an tionscadal ag forbairt agus ag athrú ó bhonn go gníomhach, ní féidir linn é a úsáid i dtáirgeadh. Ach déanaimid monatóireacht ghníomhach ar a riocht agus é a úsáid i bhfoirmíochtaí DEV. Chomh luath agus a chobhsóidh sé, aistrímid ó athróga timpeallachta a úsáid chuige.

Ar an iomlán

Mar sin, tá Imscaradh Leanúnach cumraithe agus ag obair. Tarlaíonn gach nuashonrú le buille eochair amháin. Tá seachadadh na n-athruithe ar an timpeallacht táirgí uathoibríoch. Agus, rud is tábhachtaí, ní stopann nuashonruithe an córas.

Ár gcur i bhfeidhm Imscaradh Leanúnach ar ardán an chustaiméara

Pleananna don todhchaí: aistriú uathoibríoch bunachar sonraí

Rinneamar machnamh ar an mbunachar sonraí a uasghrádú agus ar an bhféidearthacht na hathruithe seo a thabhairt ar ais. Tar éis an tsaoil, tá dhá leagan éagsúla den iarratas ar siúl ag an am céanna: tá an sean-cheann ag rith, agus tá an ceann nua ar bun. Agus ní mhúchfaimid an seancheann ach amháin nuair a bhíonn muid cinnte go n-oibríonn an leagan nua. Ba cheart go ligfeadh an t-aistriú bunachar sonraí duit oibriú leis an dá leagan den fheidhmchlár.

Mar sin, ní féidir linn ach ainm an cholúin nó sonraí eile a athrú. Ach is féidir linn colún nua a chruthú, sonraí a chóipeáil ón seancholún isteach ann agus truicear a scríobh a dhéanfaidh, agus sonraí á nuashonrú, iad a chóipeáil agus a nuashonrú ag an am céanna i gcolún eile. Agus tar éis an leagan nua den fheidhmchlár a imscaradh go rathúil, tar éis na tréimhse tacaíochta iar-seolta, beimid in ann an seancholún agus an truicear nach bhfuil gá leis a scriosadh.

Mura n-oibríonn an leagan nua den fheidhmchlár i gceart, is féidir linn rolladh ar ais go dtí an leagan roimhe seo, lena n-áirítear an leagan roimhe seo den bhunachar sonraí. I mbeagán focal, ligfidh ár n-athruithe duit oibriú go comhuaineach le roinnt leaganacha den fheidhmchlár.

Tá sé beartaithe againn aistriú bunachar sonraí a uathoibriú trí phost K8S, agus é a chomhtháthú sa phróiseas CD. Agus is cinnte go roinnfimid an taithí seo ar Habré.

Foinse: will.com

Add a comment