Ar buileachadh air cleachdadh leantainneach air àrd-ùrlar an neach-ceannach

Tha sinne aig True Engineering air pròiseas a stèidheachadh airson lìbhrigeadh leantainneach de dh’ ùrachaidhean do luchd-frithealaidh teachdaiche agus tha sinn airson an t-eòlas seo a cho-roinn.

An toiseach, leasaich sinn siostam air-loidhne airson an neach-ceannach agus chuir sinn a-steach e anns a’ bhuidheann Kubernetes againn fhèin. A-nis tha ar fuasgladh luchdan àrd air gluasad gu àrd-ùrlar an neach-ceannach, agus tha sinn air pròiseas cleachdadh leantainneach làn fèin-ghluasadach a stèidheachadh. Taing dha seo, luathaich sinn an ùine-gu-margaidh - lìbhrigeadh atharrachaidhean air àrainneachd toraidh.

San artaigil seo bruidhnidh sinn mu na h-ìrean de phròiseas cleachdadh leantainneach (CD) no lìbhrigeadh ùrachaidhean gu àrd-ùrlar an neach-ceannach:

  1. Ciamar a thòisicheas am pròiseas seo?
  2. sioncronadh le stòr Git an neach-ceannach,
  3. co-chruinneachadh de chùl-raon agus aghaidh,
  4. cleachdadh tagradh fèin-ghluasadach ann an àrainneachd deuchainn,
  5. cleachdadh fèin-ghluasadach gu Prod.

Roinnidh sinn mion-fhiosrachadh an t-suidheachaidh air an t-slighe.

Ar buileachadh air cleachdadh leantainneach air àrd-ùrlar an neach-ceannach

1. Tòisich CD

Bidh cleachdadh leantainneach a’ tòiseachadh leis an leasaiche a’ putadh atharrachaidhean air a’ mheur fuasglaidh den stòr Git againn.

Bidh an tagradh againn a’ ruith air ailtireachd microservice agus tha a phàirtean gu lèir air an stòradh ann an aon stòr. Taing dha seo, tha a h-uile microservices air an cruinneachadh agus air an stàladh, eadhon ged a tha aon dhiubh air atharrachadh.

Chuir sinn obair air dòigh tro aon stòr airson grunn adhbharan:

  • Furasta a leasachadh - tha an tagradh gu gnìomhach a ’leasachadh, gus an urrainn dhut obrachadh leis a’ chòd gu lèir aig an aon àm.
  • Pìoba singilte CI / CD a tha a’ gealltainn gum bi an tagradh mar shiostam singilte a ’dol seachad air a h-uile deuchainn agus air a lìbhrigeadh gu àrainneachd cinneasachaidh an neach-ceannach.
  • Bidh sinn a 'cur às do mhì-mhisneachd ann an dreachan - chan fheum sinn mapa de dhreachan microservice a stòradh agus cunntas a thoirt air a rèiteachadh airson gach microservice ann an sgriobtaichean Helm.

2. Sioncronadh le stòr Git de chòd stòr an neach-ceannach

Bidh atharrachaidhean air an sioncronadh gu fèin-ghluasadach le stòr Git an neach-ceannach. An sin tha an co-chruinneachadh tagraidh air a rèiteachadh, a thèid a chuir air bhog às deidh a bhith ag ùrachadh a ’mheur, agus a’ cleachdadh gu leantainneach. Tha an dà phròiseas a’ tighinn bhon àrainneachd aca bho stòr Git.

Chan urrainn dhuinn obrachadh le stòr an neach-ceannach gu dìreach oir tha feum againn air na h-àrainneachdan againn fhèin airson leasachadh agus deuchainn. Bidh sinn a’ cleachdadh ar stòr Git airson na h-adhbharan sin - tha e air a shioncronachadh leis an stòr Git aca. Cho luath ‘s a bhios leasaiche a’ postadh atharrachaidhean don mheur iomchaidh den stòr-tasgaidh againn, bidh GitLab sa bhad a ’putadh na h-atharrachaidhean sin don neach-ceannach.

Ar buileachadh air cleachdadh leantainneach air àrd-ùrlar an neach-ceannach

Às deidh seo feumaidh tu an co-chruinneachadh a dhèanamh. Tha grunn ìrean ann: co-chruinneachadh backend agus frontend, deuchainn agus lìbhrigeadh gu cinneasachadh.

3. A' cruinneachadh an backend agus frontend

Tha togail an backend agus aghaidh dà ghnìomh co-shìnte a tha air an coileanadh ann an siostam GitLab Runner. Tha an rèiteachadh cruinneachaidh tùsail aige suidhichte anns an aon stòr.

Oideachadh airson sgriobt YAML a sgrìobhadh airson togail ann an GitLab.

Bidh GitLab Runner a ’toirt a’ chòd bhon stòr a tha a dhìth, ga chruinneachadh leis an àithne togail tagradh Java agus ga chuir gu clàr Docker. An seo bidh sinn a’ cruinneachadh an backend agus frontend, faigh ìomhaighean Docker, a chuir sinn a-steach do stòr air taobh an neach-ceannach. Gus dealbhan Docker a riaghladh bidh sinn a’ cleachdadh Gradle plugan.

Bidh sinn a’ sioncronadh nan dreachan de na h-ìomhaighean againn leis an dreach fuasglaidh a thèid fhoillseachadh ann an Docker. Airson obrachadh rèidh tha sinn air grunn atharrachaidhean a dhèanamh:

1. Chan eil luchd-gleidhidh air an ath-thogail eadar an àrainneachd deuchainn agus an àrainneachd riochdachaidh. Rinn sinn parametrizations gus am b’ urrainn don aon ghobhar obrachadh leis a h-uile suidheachadh, caochladair àrainneachd agus seirbheis an dà chuid san àrainneachd deuchainn agus ann an cinneasachadh gun ath-thogail.

2. Airson ùrachadh iarrtas tro Helm, feumaidh tu a shònrachadh dreach aige. Bidh sinn a’ togail an backend, aghaidh agus ag ùrachadh an aplacaid - is e seo trì gnìomhan eadar-dhealaichte, agus mar sin tha e cudromach an aon dreach den tagradh a chleachdadh anns a h-uile àite. Airson na h-obrach seo, bidh sinn a’ cleachdadh dàta bho eachdraidh Git, leis gu bheil an rèiteachadh cnuasachaidh agus na h-aplacaidean K8S againn anns an aon stòr Git.

Bidh sinn a’ faighinn dreach an tagraidh bho thoraidhean coileanadh an àithne
git describe --tags --abbrev=7.

4. Cleachdadh fèin-ghluasadach de gach atharrachadh air an àrainneachd deuchainn (UAT)

Is e an ath cheum anns an sgriobt togail seo ùrachadh gu fèin-ghluasadach air cruinneachadh K8S. Bidh seo a’ tachairt fhad ‘s a tha an tagradh gu lèir air a thogail agus gun deach a h-uile artifact fhoillseachadh gu Clàr an Docker. Às deidh seo, tòisichidh ùrachadh àrainneachd deuchainn.

Tha an ùrachadh brabhsair air tòiseachadh a’ cleachdadh Ùrnaighean Helm. Ma tha, mar thoradh air sin, nach deach rudeigin a rèir a 'phlana, bidh Helm gu fèin-obrachail agus gu neo-eisimeileach a' toirt air ais a h-uile atharrachadh. Chan fheum an obair aige a bhith fo smachd.

Bidh sinn a’ toirt seachad rèiteachadh brabhsair K8S còmhla ris a’ cho-chruinneachadh. Mar sin, is e an ath cheum ùrachadh a dhèanamh air: configMaps, cleachdadh, seirbheisean, dìomhaireachdan agus rèiteachadh K8S sam bith eile a tha sinn air atharrachadh.

Bidh Helm an uairsin a’ ruith ùrachadh Rollout den tagradh fhèin san àrainneachd deuchainn. Mus tèid an tagradh a chuir gu cinneasachadh. Tha seo air a dhèanamh gus an urrainn do luchd-cleachdaidh na feartan gnìomhachais a chuir sinn a-steach don àrainneachd deuchainn a dhearbhadh le làimh.

5. Cleachdadh fèin-ghluasadach a h-uile atharrachadh Prod

Gus ùrachadh a chuir a-steach don àrainneachd cinneasachaidh, cha leig thu leas ach aon phutan a bhriogadh ann an GitLab - agus thèid na soithichean a lìbhrigeadh sa bhad chun àrainneachd cinneasachaidh.

Faodaidh an aon iarrtas obrachadh ann an diofar àrainneachdan - deuchainn agus cinneasachadh - gun ath-thogail. Bidh sinn a’ cleachdadh na h-aon stuthan gun a bhith ag atharrachadh dad san tagradh, agus bidh sinn a’ suidheachadh nam paramadairean taobh a-muigh.

Tha parameterization sùbailte de shuidheachaidhean tagraidh an urra ris an àrainneachd anns an tèid an tagradh a chuir gu bàs. Tha sinn air a h-uile suidheachadh àrainneachd a ghluasad taobh a-muigh: tha a h-uile càil air a pharamadair tro rèiteachadh K8S agus paramadairean Helm. Nuair a bhios Helm a’ cleachdadh co-chruinneachadh don àrainneachd deuchainn, tha na roghainnean deuchainn air an cur an sàs ann, agus tha na roghainnean toraidh air an cur an sàs san àrainneachd cinneasachaidh.

B’ e an rud as duilghe na seirbheisean agus na caochladairean cleachdte a tha an urra ris an àrainneachd a pharamadh, agus an eadar-theangachadh gu caochladairean àrainneachd agus rèiteachadh tuairisgeul de pharamadairean àrainneachd airson Helm.

Bidh roghainnean tagraidh a’ cleachdadh caochladairean àrainneachd. Tha na luachan aca air an suidheachadh ann an soithichean a’ cleachdadh configmap K8S, a tha air a dhealbhadh le teamplaidean Go. Mar eisimpleir, faodar caochladair àrainneachd a shuidheachadh don ainm àrainn a dhèanamh mar seo:

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

.Luachan.cruinneil.env - bidh an caochladair seo a’ stòradh ainm na h-àrainneachd (prod, stage, UAT).
.Luachan.app.properties.app_external_domain – anns a’ chaochladair seo shuidhich sinn an àrainn a tha thu ag iarraidh san fhaidhle .Values.yaml

Nuair a bhios tu ag ùrachadh tagradh, bidh Helm a’ cruthachadh faidhle configmap.yaml bho theamplaidean agus a’ lìonadh an luach APP_EXTERNAL_DOMAIN leis an luach a tha thu ag iarraidh a rèir na h-àrainneachd anns a bheil ùrachadh an tagraidh a’ tòiseachadh. Tha an caochladair seo mu thràth air a shuidheachadh sa bhogsa. Faodar faighinn thuige bhon tagradh, agus mar sin bidh luach eadar-dhealaichte aig gach àrainneachd tagraidh airson a’ chaochladair seo.

O chionn ghoirid, nochd taic K8S ann an Spring Cloud, a’ toirt a-steach obair le configMaps: An t-Earrach Cloud Kubernetes. Fhad ‘s a tha am pròiseact gu gnìomhach a’ leasachadh agus ag atharrachadh gu mòr, chan urrainn dhuinn a chleachdadh ann an cinneasachadh. Ach bidh sinn gu gnìomhach a’ cumail sùil air a staid agus ga chleachdadh ann an rèiteachadh DEV. Cho luath ‘s a sheasas e, gluaisidh sinn bho bhith a’ cleachdadh caochladairean àrainneachd gu bhith.

Iomlan

Mar sin, tha cleachdadh leantainneach air a rèiteachadh agus ag obair. Bidh gach ùrachadh a’ tachairt le aon bhuille-iuchrach. Tha lìbhrigeadh atharrachaidhean air àrainneachd toraidh gu fèin-ghluasadach. Agus, gu cudromach, chan eil ùrachaidhean a’ cur stad air an t-siostam.

Ar buileachadh air cleachdadh leantainneach air àrd-ùrlar an neach-ceannach

Planaichean san àm ri teachd: imrich stòr-dàta fèin-ghluasadach

Bha sinn a’ smaoineachadh mu bhith ag ùrachadh an stòr-dàta agus an gabhadh na h-atharrachaidhean sin a thoirt air ais. Às deidh na h-uile, tha dà dhreach eadar-dhealaichte den tagradh a 'ruith aig an aon àm: tha an t-seann fhear a' ruith, agus tha am fear ùr suas. Agus cuiridh sinn dheth an t-seann fhear a-mhàin nuair a tha sinn cinnteach gu bheil an dreach ùr ag obair. Bu chòir don imrich stòr-dàta leigeil leat obrachadh leis an dà dhreach den tagradh.

Mar sin, chan urrainn dhuinn dìreach ainm a’ cholbh no dàta eile atharrachadh. Ach is urrainn dhuinn colbh ùr a chruthachadh, dàta a chopaigeadh bhon t-seann cholbh a-steach ann agus brosnachaidhean a sgrìobhadh a bhios, nuair a bhios iad ag ùrachadh an dàta, a’ dèanamh lethbhreac agus ag ùrachadh ann an colbh eile aig an aon àm. Agus às deidh an dreach ùr den tagradh a chleachdadh gu soirbheachail, às deidh na h-ùine taic post-cur air bhog, bidh e comasach dhuinn an seann cholbh agus an inneal-brosnachaidh nach eil riatanach a dhubhadh às.

Mura obraich an tionndadh ùr den tagradh gu ceart, is urrainn dhuinn gluasad air ais chun dreach roimhe, a’ toirt a-steach an dreach roimhe den stòr-dàta. Ann an ùine ghoirid, leigidh na h-atharrachaidhean againn leat obrachadh aig an aon àm le grunn dhreachan den tagradh.

Tha sinn an dùil imrich stòr-dàta a dhèanamh fèin-ghluasadach tro obair K8S, ga fhighe a-steach don phròiseas CD. Agus bidh sinn gu cinnteach a’ roinn an eòlas seo air Habré.

Source: www.habr.com

Cuir beachd ann