Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions

Halò, Habr! Is mise Artem Karamyshev, ceannard sgioba rianachd an t-siostaim Mail.Ru Cloud Solutions (MCS). Tha sinn air mòran thoraidhean ùra a chuir air bhog thar na bliadhna a dh’ fhalbh. Bha sinn airson dèanamh cinnteach gum biodh seirbheisean API furasta an scalladh, a’ fulang le lochdan, agus deiseil airson fàs luath ann an luchd luchd-cleachdaidh. Tha an àrd-ùrlar againn air a chuir an gnìomh air OpenStack, agus tha mi airson innse dhut dè na duilgheadasan fulangas locht co-phàirteach a bha againn ri fhuasgladh gus siostam a tha a’ fulang le lochdan fhaighinn. Tha mi a’ smaoineachadh gum bi seo inntinneach dhaibhsan a bhios cuideachd a’ leasachadh thoraidhean air OpenStack.

Tha fulangas locht iomlan àrd-ùrlar a’ toirt a-steach seasmhachd a phàirtean. Mar sin thèid sinn mean air mhean tro gach ìre far an do chomharraich sinn cunnartan agus far an do dhùin sinn iad.

Tionndadh bhidio den sgeulachd seo, agus b ’e am prìomh thùs aithisg aig co-labhairt latha Uptime 4, air a chuir air dòigh le ITSumma, chì thu air an t-sianal YouTube Uptime Coimhearsnachd.

Seasmhachd na h-ailtireachd corporra

Tha am pàirt poblach de sgòth MCS a-nis stèidhichte ann an dà ionad dàta Ìre III, eadar iad tha an snàithleach dorcha aige fhèin, glèidhte aig ìre fiosaigeach le diofar shlighean, le tar-chur de 200 Gbit / s. Tha Ìre III a’ toirt seachad an ìre de fhulangas sgàinidhean a tha riatanach airson a’ bhun-structair fiosaigeach.

Tha snàithleach dorcha glèidhte aig ìrean fiosaigeach agus loidsigeach. Bha pròiseas glèidhidh an t-seanail ath-aithriseach, dh’ èirich duilgheadasan, agus tha sinn an-còmhnaidh ag adhartachadh conaltradh eadar ionadan dàta.

Mar eisimpleir, chan fhada air ais, fhad 'sa bha e ag obair ann an tobar faisg air aon de na h-ionadan dàta, bhris cladhach pìob, agus taobh a-staigh a' phìob seo bha an dà chuid prìomh agus cùl-taic càball optigeach. Thionndaidh an sianal conaltraidh againn a bha fulang le lochdan leis an ionad dàta gu bhith so-leònte aig aon àm, anns an tobar. Mar sin, tha sinn air pàirt den bhun-structair a chall. Tharraing sinn co-dhùnaidhean agus rinn sinn grunn ghnìomhan, a’ gabhail a-steach stàladh optics a bharrachd anns an tobar ri thaobh.

Ann an ionadan dàta tha puingean làthaireachd de sholaraichean conaltraidh ris am bi sinn a’ craoladh ar ro-leasanan tro BGP. Airson gach stiùireadh lìonra, tha an meatrach as fheàrr air a thaghadh, a leigeas le diofar luchd-dèiligidh an càileachd ceangail as fheàrr a thoirt seachad. Ma thèid conaltradh tro aon sholaraiche sìos, bidh sinn ag ath-thogail ar slighe tro na solaraichean a tha rim faighinn.

Ma dh’ fhailicheas solaraiche, gluaisidh sinn gu fèin-ghluasadach chun ath fhear. Ma dh’ fhàillig aon de na h-ionadan dàta, tha leth-bhreac sgàthan de na seirbheisean againn san dàrna ionad dàta, a ghabhas an luchd gu lèir.

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions
Seasmhachd bun-structair corporra

Na bhios sinn a’ cleachdadh airson fulangas sgàinidhean aig ìre tagraidh

Tha an t-seirbheis againn stèidhichte air grunn phàirtean opensource.

ExaBGP na sheirbheis a bhios a’ cur an gnìomh grunn ghnìomhan a’ cleachdadh protocol slighe fiùghantach stèidhichte air BGP. Bidh sinn gu gnìomhach ga chleachdadh gus sanasachd a dhèanamh air na seòlaidhean IP geal-liosta againn tro am faigh luchd-cleachdaidh cothrom air an API.

HAProxy na chothromachadh àrd-luchd a leigeas leat riaghailtean cothromachaidh trafaic fÏor shÚbailte a dhealbhadh aig diofar Ïrean den mhodal OSI. Bidh sinn ga chleachdadh gus cothromachadh air beulaibh a h-uile seirbheis: stòran-dàta, brocairean teachdaireachd, seirbheisean API, seirbheisean lÏn, na pròiseactan taobh a-staigh againn - tha a h-uile dad air cÚl HAProxy.

Iarrtas API - tagradh lìn sgrìobhte ann am python, leis am bi an neach-cleachdaidh a’ riaghladh a bhun-structair agus a sheirbheis.

Iarrtas neach-obrach (an-seo dìreach neach-obrach) - ann an seirbheisean OpenStack, is e deamhan bun-structair a tha seo a leigeas leat òrdughan API a chraoladh chun bhun-structair. Mar eisimpleir, bidh cruthachadh diosc a ’tachairt anns an neach-obrach, agus tha an t-iarrtas cruthachaidh a’ tachairt ann an API an tagraidh.

Ailtireachd tagraidh Ă bhaisteach OpenStack

Bidh a’ mhòr-chuid de sheirbheisean a thèid a leasachadh airson OpenStack a’ feuchainn ri aon paradigm a leantainn. Mar as trice bidh seirbheis air a dhèanamh suas de 2 phàirt: API agus luchd-obrach (luchd-tiomnaidh backend). Mar riaghailt, tha API na thagradh WSGI ann am python, a thèid a chuir air bhog an dàrna cuid mar phròiseas neo-eisimeileach (daemon), no a’ cleachdadh frithealaiche lìn deiseil Nginx no Apache. Bidh an API a’ pròiseasadh iarrtas an neach-cleachdaidh agus a’ toirt tuilleadh stiùiridh don tagradh neach-obrach airson a chuir gu bàs. Bidh an gluasad a’ tachairt a ’cleachdadh broker teachdaireachd, mar as trice RabbitMQ, agus tha an fheadhainn eile a’ faighinn droch thaic. Nuair a ruigeas teachdaireachdan am broker, bidh luchd-obrach gan giullachd agus, ma tha sin riatanach, tillidh iad freagairt.

Tha am paradigm seo a’ toirt a-steach puingean fàilligeadh cumanta iomallach: RabbitMQ agus an stòr-dàta. Ach tha RabbitMQ iomallach taobh a-staigh aon seirbheis agus, ann an teòiridh, faodaidh e a bhith fa leth airson gach seirbheis. Mar sin aig MCS bidh sinn a’ sgaradh nan seirbheisean sin cho mòr ‘s a ghabhas; airson gach pròiseact fa leth bidh sinn a’ cruthachadh stòr-dàta air leth, RabbitMQ air leth. Tha an dòigh-obrach seo math oir ma thachras tubaist aig cuid de phuingean so-leònte, chan eil an t-seirbheis gu lèir a 'briseadh sìos, ach dìreach pàirt dheth.

Tha an àireamh de thagraidhean luchd-obrach gun chrÏoch, agus mar sin is urrainn don API sgèile gu còmhnard air cÚl luchd-cothromachaidh gus coileanadh àrdachadh agus fulangas sgàinidhean.

Feumaidh cuid de sheirbheisean co-òrdanachadh taobh a-staigh na seirbheis nuair a bhios gnìomhachd sreathach iom-fhillte a’ tachairt eadar APIan agus luchd-obrach. Anns a 'chùis seo, thathar a' cleachdadh aon ionad co-òrdanachaidh, siostam brabhsair leithid Redis, Memcache, msaa, a leigeas le aon neach-obrach innse do neach eile gu bheil an obair seo air a shònrachadh dha ("feuch na gabh e"). Bidh sinn a’ cleachdadh etcd. Mar riaghailt, bidh luchd-obrach gu gnìomhach a 'conaltradh ris an stòr-dàta, a' sgrìobhadh agus a 'leughadh fiosrachadh às an sin. Bidh sinn a’ cleachdadh mariadb mar stòr-dàta, a tha suidhichte ann am buidheann ioma-mhaighstir.

Tha an t-seirbheis singilte clasaigeach seo air a chuir air dòigh ann an dòigh ris an gabhar gu coitcheann airson OpenStack. Faodar a mheas mar shiostam dùinte, far a bheil na dòighean airson sgèileadh agus fulangas sgàinidhean gu math follaiseach. Mar eisimpleir, airson fulangas locht API, tha e gu leòr cothromaiche a chuir air am beulaibh. Thathas a’ coileanadh luchd-obrach sgèileadh le bhith ag àrdachadh an àireamh aca.

Is e RabbitMQ agus MariaDB am puing lag san sgeama gu lèir. Tha an ailtireachd aca airidh air artaigil air leth. Anns an artaigil seo tha mi airson fòcas a chuir air fulangas locht API.

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions
Openstack ailtireachd aplacaid a. Cothromachadh agus fulangas sgàinidhean air an àrd-Úrlar sgòthan

A’ dèanamh an HAProxy balancer fulangach lochdan a’ cleachdadh ExaBGP

Gus am bi na APIan againn scalable, luath agus fulangach ri lochdan, chuir sinn cothromachadh luchdan air am beulaibh. Thagh sinn HAProxy. Nam bheachd-sa, tha na feartan riatanach aige airson ar gnÏomh: cothromachadh aig grunn Ïrean OSI, eadar-aghaidh riaghlaidh, sÚbailteachd agus scalability, àireamh mhòr de dhòighean cothromachaidh, taic airson clàran seisean.

B 'e a' chiad dhuilgheadas a dh'fheumadh a bhith air fhuasgladh fulangas sgàinidh an neach-cothromachaidh fhèin. Is ann dìreach le bhith a’ stàladh cothromaiche cuideachd a’ cruthachadh puing fàiligeadh: bidh an cothromaiche a’ briseadh agus an t-seirbheis a’ tuiteam. Gus casg a chuir air seo, chleachd sinn HAProxy ann an co-bhonn ri ExaBGP.

Leigidh ExaBGP leat uidheamachd a chuir an gnìomh airson sgrùdadh a dhèanamh air staid seirbheis. Chleachd sinn an uidheamachd seo gus sgrùdadh a dhèanamh air comasachd HAProxy agus, air eagal ‘s gum biodh duilgheadasan ann, cuir à comas seirbheis HAProxy bho BGP.

Sgeama ExaBGP+HAProxy

  1. Bidh sinn a’ stàladh am bathar-bog riatanach, ExaBGP agus HAProxy, air trì frithealaichean.
  2. Bidh sinn a’ cruthachadh eadar-aghaidh loopback air gach frithealaiche.
  3. Air na trì frithealaichean bidh sinn a’ sònrachadh an aon sheòladh IP geal don eadar-aghaidh seo.
  4. Tha seòladh IP geal air a shanasachadh air an eadar-lÏn tro ExaBGP.

Tha fulangas sgàinidh air a choileanadh le bhith a’ sanasachadh an aon sheòladh IP bho na trì frithealaichean. Bho shealladh lìonra, gheibhear an aon sheòladh bho thrì hopan eadar-dhealaichte. Bidh an router a ’faicinn trì slighean co-ionann, a’ taghadh a ’phrìomhachas as àirde dhiubh stèidhichte air a mheatrach fhèin (mar as trice is e seo an aon roghainn), agus chan eil an trafaic a’ dol ach gu aon de na frithealaichean.

Ma tha duilgheadasan ann le gnìomhachd HAProxy no fàilligeadh frithealaiche, bidh ExaBGP a ’stad ag ainmeachadh an t-slighe, agus bidh an trafaic ag atharrachadh gu rèidh gu frithealaiche eile.

Mar sin, choilean sinn fulangas locht air an neach-cothromachaidh.

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions
Fulangas locht air luchd-cothromachaidh HAProxy

Bha an sgeama neo-fhoirfe: dh'ionnsaich sinn mar a ghlèidheas sinn HAProxy, ach cha do dh'ionnsaich sinn mar a sgaoileadh an luchd taobh a-staigh nan seirbheisean. Mar sin, leudaich sinn an sgeama seo beagan: ghluais sinn air adhart gu cothromachadh eadar grunn sheòlaidhean IP geal.

Cothromachadh stèidhichte air DNS a bharrachd air BGP

Tha a’ cheist mu chothromachadh luchdan airson ar HAProxy fhathast gun fhuasgladh. Ach, faodar a rèiteachadh gu sìmplidh, mar a rinn sinn an seo.

Gus trÏ frithealaichean a chothromachadh feumaidh tu 3 seòlaidhean IP geal agus seann DNS math. Tha gach aon de na seòlaidhean sin air a dhearbhadh air eadar-aghaidh loopback gach HAProxy agus air a shanasachadh chun eadar-lÏn.

Ann an OpenStack, gus goireasan a riaghladh, tha eòlaire seirbheis air a chleachdadh, a shònraicheas API endpoint seirbheis sònraichte. Anns an eòlaire seo bidh sinn a 'clàradh ainm àrainn - public.infra.mail.ru, a tha air a rèiteachadh tro DNS le trÏ seòlaidhean IP eadar-dhealaichte. Mar thoradh air an sin, gheibh sinn cuairteachadh luchdan eadar trÏ seòlaidhean tro DNS.

Ach oir nuair a dh’ ainmicheas sinn seòlaidhean IP geal chan eil smachd againn air prìomhachasan taghadh frithealaiche, chan eil seo a’ cothromachadh fhathast. Mar as trice, cha tèid ach aon fhrithealaiche a thaghadh a rèir inbhe seòladh IP, agus bidh an dithis eile leisg leis nach eil meatrach air a shònrachadh ann am BGP.

Thòisich sinn air slighean a chuir tro ExaBGP le diofar mheatairean. Bidh gach cothromaiche a’ sanasachadh na trì seòlaidhean IP geal, ach tha aon dhiubh, am prìomh fhear airson a’ chothromachaidh seo, air a shanasachadh leis a’ mheatrach as ìsle. Mar sin fhad ‘s a tha na trì luchd-cothromachaidh ag obair, bidh fiosan chun chiad sheòladh IP a’ dol chun chiad chothromaiche, a ’gairm chun dàrna fear chun dàrna fear, agus a’ gairm chun treas chun treas fear.

Dè thachras nuair a thuiteas fear de na balancers? Ma dh’ fhailicheas cothromaiche sam bith, tha a phrìomh sheòladh fhathast air a shanasachadh bhon dhà eile, agus thèid trafaic ath-riarachadh eatorra. Mar sin, bheir sinn grunn sheòlaidhean IP don neach-cleachdaidh aig an aon àm tro DNS. Le bhith a’ cothromachadh le DNS agus diofar mheatrics, gheibh sinn cuairteachadh cothromach den luchd thairis air na trì cothromachadh. Agus aig an aon àm chan eil sinn a 'call fulangas sgàinidhean.

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions
Cothromachadh HAProxy stèidhichte air DNS + BGP

Eadar-obrachadh eadar ExaBGP agus HAProxy

Mar sin, chuir sinn an gnÏomh fulangas sgàinidhean gun fhios nach fhalbh am frithealaiche, stèidhichte air stad a chuir air ainmeachadh slighean. Ach faodaidh HAProxy dÚnadh airson adhbharan eile seach fàilligeadh an fhrithealaiche: mearachdan rianachd, fàilligeadh taobh a-staigh na seirbheis. Tha sinn airson an cothromaiche briste a thoirt air falbh fon luchd anns na cÚisean sin cuideachd, agus tha feum againn air inneal eile.

Mar sin, a’ leudachadh an sgeama a bh’ ann roimhe, chuir sinn an gnìomh buille-cridhe eadar ExaBGP agus HAProxy. Is e seo buileachadh bathar-bog den eadar-obrachadh eadar ExaBGP agus HAProxy, nuair a bhios ExaBGP a’ cleachdadh sgriobtaichean àbhaisteach gus inbhe thagraidhean a sgrùdadh.

Gus seo a dhèanamh, feumaidh tu inneal-dearbhaidh slàinte a rèiteachadh ann an config ExaBGP, a nì sgrùdadh air inbhe HAProxy. Anns a ’chùis againn, shuidhich sinn an backend slàinte ann an HAProxy, agus bhon taobh ExaBGP bidh sinn a’ sgrùdadh le iarrtas sìmplidh GET. Ma stadas an sanas a’ tachairt, tha e glè choltach nach obraich HAProxy agus chan fheumar a shanasachadh.

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions
SgrĂšdadh SlĂ inte HAProxy

HAProxy Peers: sioncronadh seisean

B’ e an ath rud ri dhèanamh na seiseanan a shioncronachadh. Nuair a bhios tu ag obair tro luchd-cothromachaidh sgaoilte, tha e duilich stòradh fiosrachaidh mu sheiseanan teachdaiche a chuir air dòigh. Ach is e HAProxy aon den bheagan luchd-cothromachaidh as urrainn seo a dhèanamh air sgàth gnìomhachd nan Co-aoisean - an comas clàran seisean a ghluasad eadar diofar phròiseasan HAProxy.

Tha diofar dhòighean cothromachaidh ann: feadhainn shÏmplidh mar cruinn-robin, agus air a leudachadh, nuair a thèid seisean an neach-dèiligidh a chuimhneachadh, agus gach uair a thig e gu crÏch air an aon fhrithealaiche mar a bha e roimhe. Bha sinn airson an dàrna roghainn a chuir an gnÏomh.

Bidh HAProxy a’ cleachdadh bùird maide gus seiseanan teachdaiche den uidheamachd seo a shàbhaladh. Bidh iad a’ sàbhaladh seòladh IP tùsail an neach-dèiligidh, an seòladh targaid taghte (backend) agus beagan fiosrachaidh seirbheis. Mar as trice, bidh bùird maide air an cleachdadh gus paidhir source-IP + ceann-uidhe-IP a stòradh, a tha gu sònraichte feumail airson tagraidhean nach urrainn co-theacsa seisean luchd-cleachdaidh a ghluasad nuair a thionndaidheas iad gu cothromaiche eile, mar eisimpleir, ann am modh cothromachaidh RoundRobin.

Ma tha clàr maide air a theagasg gus gluasad eadar diofar phròiseasan HAProxy (eadar dè an cothromachadh a thachras), bidh e comasach dha ar luchd-cothromachaidh obrachadh le aon amar de chlàran maide. Nì seo e comasach lìonra an neach-dèiligidh atharrachadh gu sgiobalta ma dh’ fhailicheas aon de na cothromachadh; leanaidh obair le seiseanan teachdaiche air na h-aon backends a chaidh a thaghadh na bu thràithe.

Airson obrachadh ceart, feumar fuasgladh fhaighinn air duilgheadas seòladh IP stòr an neach-cothromachaidh bhon deach an seisean a stèidheachadh. Anns a ’chùis againn, is e seòladh fiùghantach a tha seo air an eadar-aghaidh loopback.

Chan eil obair cheart nan co-aoisean air a choileanadh ach fo chumhachan sònraichte. Is e sin, feumaidh amannan-ama TCP a bhith mòr gu leòr no feumaidh an tionndadh a bhith luath gu leòr gus nach bi ùine aig an t-seisean TCP crìochnachadh. Ach, tha e a’ ceadachadh tionndadh gun fhiosta.

Ann an IaaS tha seirbheis againn air a thogail a’ cleachdadh an aon theicneòlas. Seo Load Balancer mar sheirbheis airson OpenStack, ris an canar Octavia. Tha e stèidhichte air dà phròiseas HAProxy agus an toiseach a 'toirt a-steach taic do cho-aoisean. Tha iad air iad fhèin a dhearbhadh sàr-mhath san t-seirbheis seo.

Tha an dealbh gu sgeamach a’ sealltainn gluasad chlàran cho-aoisean eadar trì cùisean HAProxy, thathas a’ moladh config air mar a ghabhas seo a rèiteachadh:

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions
HAProxy Peers (sioncronachadh seisean)

Ma chuireas tu an aon sgeama an gnÏomh, feumar a h-obair a dhearbhadh gu faiceallach. Chan eil e na fhÏrinn gun obraich e san aon dòigh 100% den Úine. Ach co-dhiÚ cha chaill thu clàran maide nuair a dh'fheumas tu cuimhneachadh air stòr IP an neach-dèiligidh.

A 'cuingealachadh an àireamh de dh' iarrtasan aig an aon àm bhon aon neach-dèiligidh

Faodaidh seirbheisean sam bith a tha rim faighinn gu poblach, a’ gabhail a-steach na APIan againn, a bhith fo ùmhlachd grunn iarrtasan. Faodaidh na h-adhbharan air an son a bhith gu tur eadar-dhealaichte, bho mhearachdan luchd-cleachdaidh gu ionnsaighean cuimsichte. Bidh sinn bho àm gu àm DDoSed le seòlaidhean IP. Bidh teachdaichean gu tric a’ dèanamh mhearachdan anns na sgriobtaichean aca agus a’ toirt dhuinn mion-DDoSn.

Ann an dòigh no dhà, feumar dìon a bharrachd a thoirt seachad. Is e am fuasgladh follaiseach àireamh nan iarrtasan API a chuingealachadh agus gun a bhith a’ caitheamh ùine CPU a’ làimhseachadh iarrtasan droch-rùnach.

Gus an leithid de chuingealachaidhean a chuir an gnìomh, bidh sinn a’ cleachdadh crìochan reata, air an eagrachadh air bunait HAProxy, a’ cleachdadh na h-aon chlàran maide. Tha stèidheachadh chrìochan gu math sìmplidh agus leigidh e leat an neach-cleachdaidh a chuingealachadh leis an àireamh de dh’ iarrtasan chun API. Bidh an algairim a 'cuimhneachadh air an IP tùsail bhon tèid iarrtasan a dhèanamh agus a' cuingealachadh an àireamh de dh'iarrtasan aig an aon àm bho aon neach-cleachdaidh. Gu dearbh, rinn sinn cunntas air ìomhaigh cuibheasach luchdan API airson gach seirbheis agus shuidhich sinn crìoch de ≈ 10 uiread an luach seo. Bidh sinn a’ cumail sùil gheur air an t-suidheachadh agus a’ cumail ar meur air a’ chuisle.

Cò ris a tha seo coltach ann an cleachdadh? Tha luchd-ceannach againn a bhios a’ cleachdadh na APIan fèin-sgèile againn fad na h-ùine. Bidh iad a’ cruthachadh timcheall air dhà no trì cheud inneal brìgheil sa mhadainn agus gan toirt air falbh san fheasgar. Airson OpenStack, feumaidh cruthachadh inneal brìgheil, cuideachd le seirbheisean PaaS, co-dhiù 1000 iarrtas API, leis gu bheil eadar-obrachadh eadar seirbheisean cuideachd a’ tachairt tron ​​​​API.

Tha gluasad gnÏomhan mar seo ag adhbhrachadh eallach meadhanach mòr. Rinn sinn measadh air an luchd seo, chruinnich sinn stÚcan làitheil, mheudaich sinn iad deich uiread, agus thàinig seo gu bhith na chrÏoch reata againn. Bidh sinn a 'cumail ar meur air a' chuisle. Gu tric bidh sinn a 'faicinn botaichean agus sganairean a tha a' feuchainn ri coimhead oirnn gus faicinn a bheil sgriobtaichean CGA sam bith againn a dh'fhaodar a ruith, tha sinn gu gnÏomhach gan gearradh.

Mar a bheir thu Úrachadh air an stòr-chòd agad gun a bhith mothachail do luchd-cleachdaidh

Bidh sinn cuideachd a’ cur an gnìomh fulangas sgàinidhean aig ìre phròiseasan cleachdadh chòd. Dh’ fhaodadh gum bi glitches ann nuair a thèid an sgaoileadh a-mach, ach faodar a’ bhuaidh aca air na tha ri fhaighinn de sheirbheis a lughdachadh.

Bidh sinn an-còmhnaidh ag ùrachadh ar seirbheisean agus feumaidh sinn dèanamh cinnteach gun tèid an còd ùrachadh gun a bhith a’ toirt buaidh air luchd-cleachdaidh. Chaidh againn air an duilgheadas seo fhuasgladh le bhith a’ cleachdadh comasan riaghlaidh HAProxy agus buileachadh Graceful Shutdown nar seirbheisean.

Gus fuasgladh fhaighinn air an duilgheadas seo, bha e riatanach gus dèanamh cinnteach smachd a chumail air an balancer agus "ceart" seirbheisean a dhÚnadh:

  • A thaobh HAProxy, thèid smachd a dhèanamh tro fhaidhle stats, a tha gu ĂŹre mhòr na socaid agus a tha air a mhĂŹneachadh ann an config HAProxy. Faodaidh tu òrdughan a chuir thuige tro stdio. Ach tha am prĂŹomh inneal smachd rèiteachaidh againn comasach, agus mar sin tha modal togte aige airson HAProxy a riaghladh. A tha sinn gu gnĂŹomhach a 'cleachdadh.
  • Bidh a’ mhòr-chuid de na seirbheisean API agus Einnsean againn a’ toirt taic do theicneòlasan dĂšnaidh grĂ smhor: nuair a dhĂšineas iad, bidh iad a’ feitheamh ris a’ ghnĂŹomh lĂ ithreach a chrĂŹochnachadh, ge bith an e iarrtas http no gnĂŹomh seirbheis a th’ ann. Tha an aon rud a’ tachairt leis an neach-obrach. Tha fios aige air a h-uile gnĂŹomh a tha e a’ dèanamh agus thig e gu crĂŹch nuair a tha e air a h-uile cĂ il a chrĂŹochnachadh gu soirbheachail.

Taing don dà phuing seo, tha an algairim sàbhailte airson ar cleachdadh a’ coimhead mar seo.

  1. Bidh an leasaiche a’ cruinneachadh pasgan còd ùr (dhuinne is e seo RPM), ga dheuchainn san àrainneachd dev, ga dheuchainn aig an àrd-ùrlar, agus ga fhàgail ann an stòr an àrd-ùrlair.
  2. Bidh an leasaiche a’ suidheachadh a ’ghnìomh airson cleachdadh leis an tuairisgeul as mionaidiche air na“ artifacts ”: an dreach den phasgan ùr, tuairisgeul air a’ ghnìomhachd ùr agus mion-fhiosrachadh eile mun chleachdadh ma tha sin riatanach.
  3. Tòisichidh rianadair an t-siostaim an ùrachadh. A’ cur air bhog an leabhar cluiche Ansible, a nì sin na leanas:
    • A’ toirt pasgan bho stòr an Ă rd-Ăšrlair agus ga chleachdadh gus dreach a’ phacaid Ăšrachadh ann an stòr an toraidh.
    • A’ cur ri chèile liosta de chĂšl-taic na seirbheis Ăšraichte.
    • A’ cuir dheth a’ chiad sheirbheis a thèid Ăšrachadh ann an HAProxy agus a’ feitheamh gus an tig na pròiseasan aige gu crĂŹch. Taing gu dĂšnadh grĂ smhor, tha sinn misneachail gun coilean a h-uile iarrtas teachdaiche gnĂ thach gu soirbheachail.
    • Às deidh an API agus an luchd-obrach a bhith air an stad gu tur, agus HAProxy air a chuir dheth, thèid an còd Ăšrachadh.
    • Bidh Ansible a’ ruith sheirbheisean.
    • Airson gach seirbheis, thathas a’ tarraing cuid de “lĂ mhan”, a nĂŹ deuchainn aonad air grunn phrĂŹomh dheuchainnean ro-mhĂŹnichte. Thèid sgrĂšdadh bunaiteach a dhèanamh air a’ chòd Ăšr.
    • Mura deach mearachdan a lorg sa cheum roimhe, tha an backend air a ghnĂŹomhachadh.
    • Gluaisidh sinn air adhart chun ath chĂšl-raon.
  4. Às deidh a h-uile backends ùrachadh, thèid deuchainnean gnìomh a chuir air bhog. Ma tha iad a dhìth, bidh an leasaiche a’ coimhead air gnìomhachd ùr sam bith a chruthaich e.

Bidh seo a 'crĂŹochnachadh an cleachdadh.

Mar a tha ailtireachd lĂŹn fulangach ri lochdan air a chuir an gnĂŹomh ann an Ă rd-Ăšrlar Mail.ru Cloud Solutions
Cearcall seirbheis a luchdadh a-nuas

Cha bhiodh an sgeama seo ag obair mura biodh aon riaghailt againn. Bidh sinn a’ toirt taic do dhreachan sean is ùr ann am blàr. Ro-làimh, aig ìre leasachadh bathar-bog, tha e air a chuir sìos, eadhon ged a tha atharrachaidhean ann an stòr-dàta an t-seirbheis, nach bris iad an còd roimhe. Mar thoradh air an sin, tha bunait còd air ùrachadh mean air mhean.

co-dhĂšnadh

Le bhith a’ roinneadh mo bheachdan fhìn mu ailtireachd WEB a tha a’ fulang lochdan, bu mhath leam na prìomh phuingean aige a thoirt fa-near a-rithist:

  • fulangas lochdan corporra;
  • fulangas sgĂ inidhean lĂŹonra (balancers, BGP);
  • fulangas sgĂ inidh a thaobh am bathar-bog a thathar a’ cleachdadh agus a’ leasachadh.

Uptime seasmhach a h-uile duine!

Source: www.habr.com

Cuir beachd ann