
Halo, is mise Sergey Elantsev, tha mi aâ leasachadh ann an Yandex.Cloud. Roimhe sin, stiĂšir mi leasachadh an L7 balancer airson an Yandex portal - co-oibrichean fealla-dhĂ nach eil e gu diofar dè nĂŹ mi, tha e a 'tionndadh a-mach a bhith balancer. Innsidh mi do luchd-leughaidh Habr mar a lĂ imhsicheas iad an luchd ann an Ă rd-Ăšrlar sgòthan, na tha sinn aâ faicinn mar an inneal air leth freagarrach airson an amas seo a choileanadh, agus mar a tha sinn aâ gluasad a dhâionnsaigh togail an inneil seo.
An toiseach, bheir sinn a-steach cuid de theirmean:
- VIP (Virtual IP) - seòladh IP cothromachaidh
- Frithealaiche, backend, eisimpleir - inneal brĂŹgheil a âruith tagradh
- RIP (Real IP) - seòladh IP an fhrithealaiche
- Healthcheck - aâ dèanamh cinnteach gu bheil am frithealaiche deiseil
- Sòn ri fhaighinn, AZ - bun-structar iomallach ann an ionad dà ta
- Roinn - aonadh de dhiofar AZ
Bidh luchd-cothromachaidh luchdan a 'fuasgladh trĂŹ prĂŹomh ghnĂŹomhan: bidh iad a' coileanadh a 'chothromachadh fhèin, a' leasachadh fulangas sgĂ inidhean na seirbheis, agus a 'sĂŹmpleachadh a sgèile. Thathas a âdèanamh cinnteach Ă fulangas sgĂ inidhean tro riaghladh trafaic fèin-ghluasadach: bidh an cothromaiche aâ cumail sĂšil air staid an tagraidh agus a âdĂšnadh a-mach bho shuidheachaidhean cothromachaidh nach tèid seachad air an sgrĂšdadh beòthalachd. Tha sgèileadh air a dhèanamh cinnteach le bhith aâ cuairteachadh an luchd gu cothromach thar shuidheachaidhean, a bharrachd air a bhith ag Ăšrachadh an liosta de shuidheachaidhean air an itealan. Mura h-eil an cothromachadh èideadh gu leòr, gheibh cuid de shuidheachaidhean eallach a tha nas Ă irde na an ĂŹre comais aca, agus cha bhith an t-seirbheis cho earbsach.
Bidh cothromachadh luchdan gu tric air a sheòrsachadh leis an ĂŹre protocol bhon mhodal OSI air a bheil e aâ ruith. Bidh an Cloud Balancer ag obair aig ĂŹre TCP, a tha a rèir a 'cheathramh sreath, L4.
Gluaisidh sinn air adhart gu sealladh farsaing air ailtireachd Cloud balancer. Mean air mhean meudaichidh sinn an ĂŹre mion-fhiosrachaidh. Bidh sinn a 'roinn nan co-phĂ irtean cothromachaidh ann an trĂŹ clasaichean. Tha an clas plèana config an urra ri eadar-obrachadh luchd-cleachdaidh agus aâ stòradh staid targaid an t-siostaim. Bidh am plèana smachd a 'stòradh staid lĂ ithreach an t-siostaim agus a' stiĂšireadh shiostaman bhon chlas plèana dĂ ta, a tha gu dĂŹreach an urra ri bhith a 'lĂŹbhrigeadh trafaig bho luchd-dèiligidh gu na suidheachaidhean agad.
Plèana dà ta
Bidh an trafaic aâ tighinn gu crĂŹch air innealan daor ris an canar routers crĂŹche. Gus fulangas sgĂ inidhean Ă rdachadh, bidh grunn innealan mar sin ag obair aig an aon Ă m ann an aon ionad dĂ ta. An uairsin, bidh an trafaic aâ dol gu luchd-cothromachaidh, a bhios ag ainmeachadh seòlaidhean IP sam bith gu gach AZ tro BGP airson teachdaichean.

Tha trafaic air a ghluasad thairis air ECMP - is e ro-innleachd slighe a tha seo a rèir am faod grunn shlighean a cheart cho math a bhith ann chun targaid (anns aâ chĂšis againn, is e an targaid an seòladh IP ceann-uidhe) agus faodar pacaidean a chuir air feadh gin dhiubh. Bidh sinn cuideachd aâ toirt taic do dhâ obair ann an grunn shònaichean ruigsinneachd a rèir an sgeama a leanas: bidh sinn aâ sanasachadh seòladh anns gach sòn, bidh trafaic aâ dol chun fhear as fhaisge agus chan eil e aâ dol nas fhaide na a chrĂŹochan. Nas fhaide air adhart sa phost bheir sinn sĂšil nas mionaidiche air na thachras do thrafaig.
Plèana rèiteachaidh
Is e prĂŹomh phĂ irt aâ phlèana rèiteachaidh an API, tro bheil gnĂŹomhan bunaiteach air an coileanadh le luchd-cothromachaidh: cruthachadh, cuir Ă s, ag atharrachadh co-dhèanamh chĂšisean, aâ faighinn toraidhean sgrĂšdaidhean slĂ inte, msaa. eile, bidh sinne san Cloud gu math tric aâ cleachdadh am frèam gRPC, agus mar sin bidh sinn âag eadar-theangachadhâ REST gu gRPC agus an uairsin aâ cleachdadh gRPC a-mhĂ in. Bidh iarrtas sam bith a 'leantainn gu cruthachadh sreath de ghnĂŹomhan neo-chomasach asyncronach a thèid a chur gu bĂ s air cruinneachadh cumanta de luchd-obrach Yandex.Cloud. Tha gnĂŹomhan air an sgrĂŹobhadh ann an dòigh gus an tèid an stad aig Ă m sam bith agus an uairsin ath-thòiseachadh. Bidh seo aâ dèanamh cinnteach Ă scalability, ath-aithris agus logadh gnĂŹomhachd.

Mar thoradh air an sin, nÏ an gnÏomh bhon API iarrtas don rianadair seirbheis balancer, a tha sgrÏobhte ann an Go. Faodaidh e cothromachadhadairean a chur ris agus a thoirt air falbh, atharrachadh a dhèanamh air co-dhèanamh backends agus suidheachaidhean.

Bidh an t-seirbheis aâ stòradh a stĂ ite ann an Stòr-dĂ ta Yandex, stòr-dĂ ta air a riaghladh le sgaoileadh a bhios tu comasach a chleachdadh a dhâ aithghearr. Ann an Yandex.Cloud, mar a tha sinn mar-thĂ , tha bun-bheachd biadh coin aâ buntainn: ma chleachdas sinn sinn fhĂŹn ar seirbheisean, bidh ar teachdaichean cuideachd toilichte an cleachdadh. Tha Stòr-dĂ ta Yandex na eisimpleir de bhuileachadh a leithid de bhun-bheachd. Bidh sinn aâ stòradh ar dĂ ta gu lèir ann an YDB, agus chan fheum sinn smaoineachadh air cumail suas agus sgèileadh an stòr-dĂ ta: tha na duilgheadasan sin air am fuasgladh dhuinn, bidh sinn aâ cleachdadh an stòr-dĂ ta mar sheirbheis.
Nach till sinn chun rianadair balancer. Is e an obair aige fiosrachadh a shà bhaladh mun chothromaiche agus gnÏomh a chuir gus dèanamh cinnteach gu bheil an inneal brÏgheil deiseil chun rianadair sgrÚdadh slà inte.
Rianadair sgrĂšdadh slĂ inte
Bidh e aâ faighinn iarrtasan airson riaghailtean seic atharrachadh, gan sĂ bhaladh ann an YDB, aâ cuairteachadh ghnĂŹomhan am measg nodan healtcheck agus aâ cruinneachadh nan toraidhean, a thèid an uairsin a shĂ bhaladh chun stòr-dĂ ta agus a chuir chun rianadair luchd-cothromachaidh. Bidh e, an uair sin, aâ cur iarrtas airson atharrachadh a dhèanamh air co-dhèanamh aâ bhraisle anns an itealan dĂ ta chun nĂłd luchd-cothromachaidh, air am bi mi aâ bruidhinn gu h-ĂŹosal.

Bruidhnidh sinn barrachd mu sgrÚdaidhean slà inte. Faodaidh iad a bhith air a roinn ann an grunn chlasaichean. Tha slatan-tomhais soirbheachais eadar-dhealaichte aig sgrÚdaidhean. Feumaidh sgrÚdaidhean TCP ceangal a stèidheachadh gu soirbheachail taobh a-staigh Úine stèidhichte. Feumaidh sgrÚdaidhean HTTP an dà chuid ceangal soirbheachail agus freagairt le còd inbhe 200.
Cuideachd, tha sgrĂšdaidhean eadar-dhealaichte anns a 'chlas gnĂŹomh - tha iad gnĂŹomhach agus fulangach. Bidh sgrĂšdaidhean fulangach dĂŹreach aâ cumail sĂšil air na tha aâ tachairt le trafaic gun a bhith aâ gabhail gnĂŹomh sònraichte sam bith. Chan eil seo ag obair glè mhath air L4 oir tha e an urra ri loidsig nam protocalan Ă rd-ĂŹre: air L4 chan eil fiosrachadh sam bith ann mu dè cho fada âs a thug an obair no an robh crĂŹoch aâ cheangail math no dona. Feumaidh sgrĂšdaidhean gnĂŹomhach an neach-cothromachaidh iarrtasan a chuir gu gach suidheachadh frithealaiche.
Bidh aâ mhòr-chuid de luchd-cothromachaidh luchdan aâ dèanamh sgrĂšdaidhean beòthalachd iad fhèin. Aig Cloud, chuir sinn romhainn na pĂ irtean sin den t-siostam a sgaradh gus scalability Ă rdachadh. Leigidh an dòigh-obrach seo leinn an Ă ireamh de luchd-cothromachaidh Ă rdachadh fhad âs a chumas sinn an Ă ireamh de dhâ iarrtasan sgrĂšdaidh slĂ inte chun t-seirbheis. Bithear aâ dèanamh sgrĂšdaidhean le nodan sgrĂšdaidh slĂ inte fa leth, far am bi targaidean sgrĂšdaidh air an rĂšsgadh agus air an ath-aithris. Chan urrainn dhut sgrĂšdaidhean a dhèanamh bho aon aoigh, oir dhâ fhaodadh e fĂ iligeadh. An uairsin chan fhaigh sinn staid nan suidheachaidhean a rinn e sgrĂšdadh. Bidh sinn aâ dèanamh sgrĂšdaidhean air gin de na cĂšisean bho co-dhiĂš trĂŹ nodan sgrĂšdaidh slĂ inte. Bidh sinn aâ roinn adhbharan sgrĂšdaidhean eadar nodan aâ cleachdadh algorithms hashing cunbhalach.

Faodaidh duilgheadasan adhbhrachadh le bhith aâ sgaradh cothromachadh agus sgrĂšdadh slĂ inte. Ma dh'iarras an nĂłd sgrĂšdaidh slĂ inte air an eisimpleir, a 'dol seachad air a' chothromaiche (nach eil a 'frithealadh trafaig an-drĂ sta), bidh suidheachadh neònach ag èirigh: tha coltas gu bheil an goireas beò, ach cha ruig an trafaig e. Bidh sinn aâ fuasgladh na trioblaid seo san dòigh seo: tha sinn cinnteach gun tòisich sinn air trafaic sgrĂšdaidh slĂ inte tro luchd-cothromachaidh. Ann am faclan eile, chan eil an sgeama airson pacaidean a ghluasad le trafaic bho luchd-dèiligidh agus bho sgrĂšdaidhean slĂ inte cho eadar-dhealaichte: anns gach cĂšis, ruigidh na pacaidean an luchd-cothromachaidh, a lĂŹbhrigeas iad gu na goireasan targaid.
Is e an eadar-dhealachadh gu bheil luchd-dèiligidh a 'dèanamh iarrtasan gu VIP, fhad' sa bhios sgrĂšdaidhean slĂ inte a 'dèanamh iarrtasan gu gach RIP fa leth. Tha duilgheadas inntinneach ag èirigh an seo: bheir sinn cothrom don luchd-cleachdaidh againn goireasan a chruthachadh ann an lĂŹonraidhean IP glas. Smaoinich gu bheil dĂ neach-seilbh sgòthan eadar-dhealaichte ann a tha air na seirbheisean aca fhalach air cĂšl luchd-cothromachaidh. Tha goireasan aig gach fear dhiubh anns an subnet 10.0.0.1/24, leis na h-aon sheòlaidhean. Feumaidh tu a bhith comasach air eadar-dhealachadh a dhèanamh orra ann an dòigh air choreigin, agus an seo feumaidh tu dĂ ibheadh ââââa-steach do structar lĂŹonra brĂŹgheil Yandex.Cloud. Tha e nas fheĂ rr tuilleadh fiosrachaidh fhaighinn ann an , tha e cudromach dhuinne a-nis gu bheil an lĂŹonra ioma-shreathach agus gu bheil tunailean ann a dhâ aithnichear le subnet id.
Bidh nodan sgrĂšdaidh slĂ inte aâ conaltradh ri luchd-cothromachaidh aâ cleachdadh seòlaidhean quasi-IPv6 ris an canar. Is e seòladh IPv6 a thâ ann an leth-sheòladh le seòladh IPv4 agus id subnet cleachdaiche freumhaichte na bhroinn. Bidh an trafaic aâ ruighinn an cothromaiche, a bheir a-mach an seòladh goireas IPv4 bhuaithe, aâ dol an Ă ite IPv6 le IPv4 agus aâ cur aâ phacaid gu lĂŹonra an neach-cleachdaidh.
Bidh an trafaic cĂšil aâ dol san aon dòigh: tha an cothromaiche aâ faicinn gur e lĂŹonra glas a thâ anns aâ cheann-uidhe bho luchd-sgrĂšdaidh slĂ inte, agus ag atharrachadh IPv4 gu IPv6.
VPP - cridhe a 'phlèana dà ta
Tha an cothromachadh air a chuir an gnĂŹomh aâ cleachdadh teicneòlas Vector Packet Processing (VPP), frèam bho Cisco airson giullachd baidse de thrafaig lĂŹonra. Anns a âchĂšis againn, tha am frèam ag obair air mullach an leabharlann riaghlaidh inneal lĂŹonra luchd-cleachdaidh - Data Plane Development Kit (DPDK). Bidh seo aâ dèanamh cinnteach Ă coileanadh giollachd pacaid Ă rd: bidh mòran nas lugha de bhriseadh a âtachairt anns an kernel, agus chan eil suidsichean co-theacsa eadar Ă ite kernel agus Ă ite luchd-cleachdaidh.
Bidh VPP aâ dol eadhon nas fhaide agus aâ brĂšthadh eadhon barrachd dèanadais a-mach Ă s an t-siostam le bhith aâ cothlamadh phasganan ann an baidsean. Tha na buannachdan dèanadais aâ tighinn bho bhith cleachdadh ionnsaigheach de caches air pròiseasairean an latha an-diugh. Thathas aâ cleachdadh an dĂ tasgadan dĂ ta (bidh pacaidean air am giullachd ann an âvectorsâ, tha an dĂ ta faisg air a chèile) agus tasgadan stiĂširidh: ann an VPP, bidh giollachd pacaid aâ leantainn graf, anns a bheil na nodan anns a bheil gnĂŹomhan a choileanas an aon ghnĂŹomh.
Mar eisimpleir, bidh giullachd pacaidean IP ann an VPP aâ tachairt san òrdugh a leanas: an toiseach, tha cinn aâ phacaid air am parsadh anns an nĂłd parsaidh, agus an uairsin thèid an cur chun nĂłd, a chuireas air adhart na pacaidean nas fhaide a rèir clĂ ran slighe.
Beagan cruaidh. Chan eil Ăšghdaran VPP aâ gabhail ri co-rèiteachadh ann an cleachdadh caches pròiseasar, agus mar sin tha vectar lĂ imhe anns aâ chòd Ă bhaisteach airson a bhith aâ giullachd vectar pacaidean: tha lĂšb giollachd ann far a bheil suidheachadh mar âtha ceithir pacaidean againn sa chiudhaâ air a ghiullachd, an uairsin an aon rud airson dhĂ , an uairsin - airson aon. Bithear aâ cleachdadh stiĂšireadh ro-lĂ imh gu tric airson dĂ ta a luchdachadh a-steach do thasgaichean gus ruigsinneachd orra a luathachadh ann an ath-aithrisean Ă s deidh sin.
n_left_from = frame->n_vectors;
while (n_left_from > 0)
{
vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next);
// ...
while (n_left_from >= 4 && n_left_to_next >= 2)
{
// processing multiple packets at once
u32 next0 = SAMPLE_NEXT_INTERFACE_OUTPUT;
u32 next1 = SAMPLE_NEXT_INTERFACE_OUTPUT;
// ...
/* Prefetch next iteration. */
{
vlib_buffer_t *p2, *p3;
p2 = vlib_get_buffer (vm, from[2]);
p3 = vlib_get_buffer (vm, from[3]);
vlib_prefetch_buffer_header (p2, LOAD);
vlib_prefetch_buffer_header (p3, LOAD);
CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE);
CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE);
}
// actually process data
/* verify speculative enqueues, maybe switch current next frame */
vlib_validate_buffer_enqueue_x2 (vm, node, next_index,
to_next, n_left_to_next,
bi0, bi1, next0, next1);
}
while (n_left_from > 0 && n_left_to_next > 0)
{
// processing packets by one
}
// processed batch
vlib_put_next_frame (vm, node, next_index, n_left_to_next);
}Mar sin, bidh Healthchecks aâ bruidhinn thairis air IPv6 chun VPP, a thionndaidheas iad gu IPv4. Tha seo air a dhèanamh le nĂłd sa ghraf, ris an can sinn NAT algorithmic. Airson trafaic air ais (agus tionndadh bho IPv6 gu IPv4) tha an aon nĂłd NAT algorithmach ann.

Bidh trafaic dhÏreach bhon luchd-dèiligidh balancer a 'dol tro na nodan graf, a bhios a' coileanadh an cothromachadh fhèin.

Is e seiseanan steigeach aâ chiad nĂłd. Bidh e aâ stòradh hash of airson seiseanan stèidhichte. Tha 5-tuple aâ toirt a-steach seòladh agus port an neach-dèiligidh Ă s a bheil fiosrachadh air a ghluasad, seòladh agus puirt ghoireasan a tha rim faighinn airson trafaic fhaighinn, a bharrachd air protocol an lĂŹonraidh.
Bidh an hash 5-tuple gar cuideachadh le bhith aâ dèanamh nas lugha de Ă ireamhachadh anns an nĂłd hashing cunbhalach Ă s deidh sin, a bharrachd air a bhith aâ lĂ imhseachadh atharrachaidhean liosta ghoireasan air cĂšl aâ chothromachaidh. Nuair a ruigeas pacaid far nach eil seisean sam bith an cothromaiche, thèid a chuir chun nĂłd hashing cunbhalach. Seo far a bheil cothromachadh aâ tachairt aâ cleachdadh hashing cunbhalach: bidh sinn aâ taghadh goireas bhon liosta de ghoireasan âbeòâ a tha rim faighinn. An ath rud, thèid na pacaidean a chuir chun nĂłd NAT, a tha dha-rĂŹribh aâ dol an Ă ite an t-seòlaidh ceann-uidhe agus ag ath-Ă ireamhachadh nan checksums. Mar a chĂŹ thu, bidh sinn aâ leantainn riaghailtean VPP - like to like, aâ cruinneachadh Ă ireamhachadh coltach ris gus èifeachdas caches pròiseasar a mheudachadh.
Hashing cunbhalach
Carson a thagh sinn e agus dè a tha e? An toiseach, leig dhuinn beachdachadh air a 'ghnÏomh roimhe - a' taghadh goireas bhon liosta.

Le hashing neo-chunbhalach, tha hash aâ phacaid a tha aâ tighinn a-steach air a thomhas, agus tha goireas air a thaghadh bhon liosta leis aâ chòrr de bhith aâ roinneadh an hash seo leis an Ă ireamh de ghoireasan. Cho fad 's nach eil an liosta air atharrachadh, tha an sgeama seo ag obair gu math: bidh sinn an-còmhnaidh a' cur phasganan leis an aon 5-tuple chun an aon eisimpleir. Ma, mar eisimpleir, sguir cuid de ghoireasan a bhith aâ freagairt sgrĂšdaidhean slĂ inte, an uairsin airson pĂ irt chudromach de hashes atharraichidh an roghainn. Thèid ceanglaichean TCP an neach-dèiligidh a bhriseadh: faodaidh pacaid a rĂ inig eisimpleir A roimhe seo tòiseachadh air eisimpleir B a ruighinn, nach eil eòlach air seisean aâ phacaid seo.
Bidh hashing cunbhalach aâ fuasgladh na duilgheadas a chaidh a mhĂŹneachadh. Is e seo an dòigh as fhasa air aâ bhun-bheachd seo a mhĂŹneachadh: smaoinich gu bheil fĂ inne agad air am bi thu aâ cuairteachadh ghoireasan le hash (mar eisimpleir, le IP: port). Tha taghadh goireas a 'tionndadh a' chuibhle le ceĂ rn, a tha air a dhearbhadh le hash a 'phacaid.

Bidh seo aâ lughdachadh ath-sgaoileadh trafaic nuair a dhâ atharraicheas structar ghoireasan. Cha toir cuir Ă s do ghoireas ach buaidh air aâ phĂ irt den fhĂ inne hashing cunbhalach anns an deach an goireas a shuidheachadh. Le bhith aâ cur goireas ris cuideachd bidh an cuairteachadh ag atharrachadh, ach tha nĂłd seisean steigeach againn, a leigeas leinn gun a bhith ag atharrachadh seiseanan stèidhichte mar-thĂ gu goireasan Ăšra.
Choimhead sinn air na thachras do thrafaig dĂŹreach eadar an neach-cothromachaidh agus goireasan. A-nis leig dhuinn sĂšil a thoirt air trafaic tilleadh. Tha e aâ leantainn an aon phĂ tran ri trafaic seic - tro NAT algorithmic, is e sin, tro NAT 44 air ais airson trafaic teachdaiche agus tro NAT 46 airson trafaic sgrĂšdaidhean slĂ inte. Bidh sinn aâ cumail ris an sgeama againn fhèin: bidh sinn ag aonachadh trafaic sgrĂšdaidhean slĂ inte agus trafaic fĂŹor luchd-cleachdaidh.
Loadbalancer-node agus co-phĂ irtean cruinnichte
Tha co-dhèanamh luchd-cothromachaidh agus goireasan ann an VPP air aithris leis an t-seirbheis ionadail - loadbalancer-node. Bidh e a âfo-sgrĂŹobhadh don t-sruth thachartasan bho luchd-riaghlaidh-luchd-riaghlaidh agus is urrainn dha an eadar-dhealachadh eadar an stĂ it VPP gnĂ thach agus an stĂ it targaid a fhuaireadh bhon rianadair a dhealbhadh. Bidh sinn aâ faighinn siostam dĂšinte: bidh tachartasan bhon API aâ tighinn chun rianadair cothromachaidh, a bhios aâ sònrachadh ghnĂŹomhan don rianadair sgrĂšdadh slĂ inte gus sĂšil a thoirt air âbeòthalachdâ ghoireasan. Bidh sin, an uair sin, aâ sònrachadh ghnĂŹomhan don nĂłd sgrĂšdaidh slĂ inte agus aâ cruinneachadh nan toraidhean, Ă s deidh sin gan cur air ais chun rianadair cothromachaidh. Bidh Loadbalancer-node aâ fo-sgrĂŹobhadh do thachartasan bhon rianadair agus ag atharrachadh staid an VPP. Ann an leithid de shiostam, chan eil fios aig gach seirbheis ach dè a tha riatanach mu sheirbheisean nĂ baidh. Tha an Ă ireamh de cheanglaichean cuibhrichte agus tha comas againn diofar earrannan obrachadh agus sgèile gu neo-eisimeileach.

Dè na cÚisean a chaidh a sheachnadh?
Tha na seirbheisean againn uile anns an itealan smachd sgrĂŹobhte ann an Go agus tha deagh fheartan sgèileachaidh agus earbsachd aca. Tha mòran leabharlannan fosgailte aig Go airson siostaman sgaoilte a thogail. Bidh sinn gu gnĂŹomhach aâ cleachdadh GRPC, tha gach pĂ irt aâ toirt a-steach buileachadh stòr fosgailte de lorg seirbheis - bidh na seirbheisean againn aâ cumail sĂšil air coileanadh a chèile, is urrainn dhaibh an sgrĂŹobhadh aca atharrachadh gu dinamach, agus cheangail sinn seo le cothromachadh GRPC. Airson meatrach, bidh sinn cuideachd aâ cleachdadh fuasgladh stòr fosgailte. Anns an itealan dĂ ta, fhuair sinn coileanadh math agus tèarmann stòrais mòr: thionndaidh e a-mach gu robh e gu math duilich seasamh a chuir ri chèile air am faodadh sinn a bhith an urra ri coileanadh VPP, seach cairt lĂŹonra iarainn.
Duilgheadasan agus fuasglaidhean
Dè nach do dhâobraich cho math? Tha riaghladh cuimhne fèin-ghluasadach aig Go, ach tha aoidion cuimhne fhathast aâ tachairt. Is e an dòigh as fhasa dèiligeadh riutha goroutines a ruith agus cuimhnich crĂŹoch a chuir orra. Takeaway: Cum sĂšil air caitheamh cuimhne phrògraman Go. Gu math tric is e deagh chomharradh an Ă ireamh de goroutines. Tha buannachd anns an sgeulachd seo: ann an Go tha e furasta dĂ ta runtime fhaighinn - caitheamh cuimhne, an Ă ireamh de goroutines ruith, agus mòran pharaimearan eile.
Cuideachd, is dòcha nach e Go an roghainn as fheĂ rr airson deuchainnean gnĂŹomh. Tha iad gu math labhairteach, agus chan eil an dòigh Ă bhaisteach airson âruith a h-uile cĂ il ann an CI ann am baidseâ gu math freagarrach dhaibh. Is e an fhĂŹrinn gu bheil deuchainnean gnĂŹomh aâ feumachdainn barrachd ghoireasan agus ag adhbhrachadh amannan fĂŹor. Air sgĂ th seo, faodaidh deuchainnean fĂ iligeadh leis gu bheil an CPU trang le deuchainnean aonad. Co-dhĂšnadh: Ma ghabhas e dèanamh, dèan deuchainnean âtromâ air leth bho dheuchainnean aonaid.
Tha ailtireachd tachartas microservice nas iom-fhillte na monolith: chan eil e glè ghoireasach logaichean a chruinneachadh air dusanan de dhiofar innealan. Co-dhÚnadh: ma nÏ thu microservices, smaoinich sa bhad air lorg.
Na planaichean againn
Cuiridh sinn air bhog cothromaiche a-staigh, cothromaiche IPv6, cuiridh sinn taic ri sgriobtaichean Kubernetes, leanaidh sinn oirnn aâ sparradh ar seirbheisean (an-drĂ sta chan eil ach healthcheck-node agus healthcheck-ctrl air an rĂšsgadh), cuir sgrĂšdaidhean slĂ inte Ăšra ris, agus cuideachd cuir an gnĂŹomh cruinneachadh snasail de sgrĂšdaidhean. Tha sinn aâ beachdachadh air comasachd ar seirbheisean a dhèanamh eadhon nas neo-eisimeiliche - gus am bi iad aâ conaltradh chan ann gu dĂŹreach ri chèile, ach aâ cleachdadh ciudha teachdaireachd. Tha seirbheis a tha co-chosmhail ri SQS air nochdadh anns an Cloud o chionn ghoirid .
O chionn ghoirid, chaidh an sgaoileadh poblach de Yandex Load Balancer a chumail. Rannsaich don t-seirbheis, stiÚirich cothromachadh ann an dòigh a tha iomchaidh dhut agus à rdaich fulangas lochdan do phròiseactan!
Source: www.habr.com
