
Halò, Habr! Is mise Artem Karamyshev, ceannard sgioba rianachd an t-siostaim . 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 , chĂŹ thu .
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.

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.

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
- Bidh sinn aâ stĂ ladh am bathar-bog riatanach, ExaBGP agus HAProxy, air trĂŹ frithealaichean.
- Bidh sinn aâ cruthachadh eadar-aghaidh loopback air gach frithealaiche.
- Air na trĂŹ frithealaichean bidh sinn aâ sònrachadh an aon sheòladh IP geal don eadar-aghaidh seo.
- 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.

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.

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.

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 , 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 , 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:

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.
- 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.
- 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.
- 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.
- Ă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.

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
