Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud
Halo, is mise Sergey Elantsev, tha mi a’ leasachadh Uidheam lìonraidh cothromachadh 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. 

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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.

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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. 

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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à dh ’innis, 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.

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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.

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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 bhidio bho mu dheidhinn: tachartas sgòthan, 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.

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

Is e seiseanan steigeach a’ chiad nód. Bidh e a’ stòradh hash of 5 -tupall 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. 

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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.

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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.

Ailtireachd neach-cothromachaidh luchdan lìonra ann an Yandex.Cloud

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 Ciudha teachdaireachd Yandex.

O chionn ghoirid, chaidh an sgaoileadh poblach de Yandex Load Balancer a chumail. Rannsaich sgrìobhainnean 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

Cuir beachd ann