Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud
Hello, jien Sergey Elantsev, niżviluppa bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud. Preċedentement, mexxa l-iżvilupp tal-balancer L7 għall-portal Yandex - il-kollegi jiċċajtaw li nagħmel x'nagħmel, jirriżulta li jkun balancer. Se ngħid lill-qarrejja Habr kif jimmaniġġjaw it-tagħbija fi pjattaforma cloud, x'naraw bħala l-għodda ideali biex nilħqu dan l-għan, u kif qed nimxu lejn il-bini ta 'din l-għodda.

L-ewwel, ejja nintroduċu xi termini:

  • VIP (Virtual IP) - indirizz IP tal-bilanċjatur
  • Server, backend, istanza - magna virtwali li tħaddem applikazzjoni
  • RIP (Real IP) - indirizz IP tas-server
  • Iċċekkja tas-saħħa - iċċekkja l-prontezza tas-server
  • Żona ta' Disponibbiltà, AZ - infrastruttura iżolata f'ċentru tad-dejta
  • Reġjun - unjoni ta 'AZs differenti

Il-bilanċjanti tat-tagħbija jsolvu tliet kompiti ewlenin: iwettqu l-ibbilanċjar innifsu, itejbu t-tolleranza tal-ħsarat tas-servizz, u jissimplifikaw l-iskala tiegħu. It-tolleranza tal-ħsarat hija żgurata permezz ta 'ġestjoni awtomatika tat-traffiku: il-balancer jimmonitorja l-istat tal-applikazzjoni u jeskludi mill-ibbilanċjar każijiet li ma jgħaddux mill-kontroll tal-ħajja. L-iskala hija żgurata billi t-tagħbija titqassam b'mod uniformi bejn l-istanzi, kif ukoll l-aġġornament tal-lista ta 'każijiet fuq il-fly. Jekk l-ibbilanċjar ma jkunx uniformi biżżejjed, xi wħud mill-istanzi jirċievu tagħbija li taqbeż il-limitu tal-kapaċità tagħhom, u s-servizz isir inqas affidabbli.

Bilanċjar tat-tagħbija huwa spiss ikklassifikat mis-saff tal-protokoll mill-mudell OSI li fuqu jaħdem. Il-Cloud Balancer jopera fil-livell TCP, li jikkorrispondi mar-raba' saff, L4.

Ejja ngħaddu għal ħarsa ġenerali lejn l-arkitettura tal-Cloud balancer. Aħna se nżidu gradwalment il-livell ta 'dettall. Aħna naqsmu l-komponenti tal-balancer fi tliet klassijiet. Il-klassi tal-pjan tal-konfigurazzjoni hija responsabbli għall-interazzjoni tal-utent u taħżen l-istat fil-mira tas-sistema. Il-pjan ta' kontroll jaħżen l-istat attwali tas-sistema u jimmaniġġja sistemi mill-klassi tal-pjan tad-dejta, li huma direttament responsabbli għat-twassil tat-traffiku mill-klijenti għall-istanzi tiegħek.

Ajru tad-data

It-traffiku jispiċċa fuq apparati għaljin imsejħa border routers. Biex tiżdied it-tolleranza tal-ħsarat, diversi apparati bħal dawn joperaw simultanjament f'ċentru tad-dejta wieħed. Sussegwentement, it-traffiku jmur għand il-balancers, li jħabbru indirizzi IP anycast lill-AZs kollha permezz ta 'BGP għall-klijenti. 

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

It-traffiku jiġi trażmess fuq ECMP - din hija strateġija ta 'routing li skontha jista' jkun hemm diversi rotot ugwalment tajbin lejn il-mira (fil-każ tagħna, il-mira tkun l-indirizz IP tad-destinazzjoni) u l-pakketti jistgħu jintbagħtu tul kwalunkwe wieħed minnhom. Nappoġġjaw ukoll ix-xogħol f’diversi żoni ta’ disponibbiltà skont l-iskema li ġejja: nirreklamaw indirizz f’kull żona, it-traffiku jmur għall-eqreb waħda u ma jmurx lil hinn mil-limiti tiegħu. Aktar tard fil-post se nħarsu f'aktar dettall lejn x'jiġri mit-traffiku.

Konfigurazzjoni pjan

 
Il-komponent ewlieni tal-pjan tal-konfigurazzjoni huwa l-API, li permezz tiegħu jitwettqu operazzjonijiet bażiċi ma 'balancers: il-ħolqien, it-tħassir, il-bidla tal-kompożizzjoni tal-istanzi, il-ksib ta' riżultati ta' kontrolli tas-saħħa, eċċ. Min-naħa waħda, din hija API REST, u min-naħa l-oħra. oħra, aħna fil-Cloud ħafna drabi nużaw il-qafas gRPC, għalhekk aħna "tittraduċi" REST għal gRPC u mbagħad nużaw biss gRPC. Kwalunkwe talba twassal għall-ħolqien ta 'serje ta' kompiti idempotenti asinkroniċi li huma esegwiti fuq ġabra komuni ta 'ħaddiema Yandex.Cloud. Il-kompiti jinkitbu b'tali mod li jkunu jistgħu jiġu sospiżi fi kwalunkwe ħin u mbagħad jerġgħu jibdew. Dan jiżgura l-iskalabbiltà, ir-ripetibbiltà u l-illoggjar tal-operazzjonijiet.

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

Bħala riżultat, il-kompitu mill-API se jagħmel talba lill-kontrollur tas-servizz tal-bilanċ, li hija miktuba f'Go. Jista 'jżid u jneħħi balancers, ibiddel il-kompożizzjoni ta' backends u settings. 

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

Is-servizz jaħżen l-istat tiegħu f'Yandex Database, database ġestita mqassma li dalwaqt tkun tista' tuża. Fil Yandex.Cloud, kif aħna diġà qal, japplika l-kunċett tal-ikel tal-klieb: jekk aħna stess nużaw is-servizzi tagħna, allura l-klijenti tagħna jkunu wkoll kuntenti li jużawhom. Yandex Database huwa eżempju tal-implimentazzjoni ta 'tali kunċett. Aħna naħżnu d-dejta kollha tagħna f'YDB, u m'għandniex għalfejn naħsbu dwar iż-żamma u l-iskala tad-database: dawn il-problemi jissolvew għalina, nużaw id-database bħala servizz.

Ejja nerġgħu lura għall-kontrollur tal-bilanċ. Il-kompitu tiegħu huwa li jiffranka l-informazzjoni dwar il-balancer u jibgħat kompitu biex jiċċekkja l-prontezza tal-magna virtwali lill-kontrollur tal-kontroll tas-saħħa.

Kontrollur tal-kontroll tas-saħħa

Jirċievi talbiet biex jibdlu r-regoli tal-kontroll, jiffrankahom f'YDB, iqassam il-kompiti fost in-nodi tal-healtcheck u jaggrega r-riżultati, li mbagħad jiġu ssejvjati fid-database u mibgħuta lill-kontrollur tal-loadbalancer. Hija, min-naħa tagħha, tibgħat talba biex tinbidel il-kompożizzjoni tar-raggruppament fil-pjan tad-dejta lill-loadbalancer-node, li ser niddiskuti hawn taħt.

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

Ejja nitkellmu aktar dwar il-kontrolli tas-saħħa. Jistgħu jinqasmu f'diversi klassijiet. Il-verifiki għandhom kriterji ta' suċċess differenti. Il-kontrolli TCP jeħtieġ li jistabbilixxu b'suċċess konnessjoni fi żmien fiss. Il-kontrolli HTTP jeħtieġu kemm konnessjoni b'suċċess kif ukoll rispons b'kodiċi ta 'status 200.

Ukoll, il-kontrolli jvarjaw fil-klassi ta 'azzjoni - huma attivi u passivi. Kontrolli passivi sempliċement jimmonitorjaw dak li qed jiġri mat-traffiku mingħajr ma tieħu ebda azzjoni speċjali. Dan ma jaħdimx tajjeb ħafna fuq L4 għax jiddependi fuq il-loġika tal-protokolli ta 'livell ogħla: fuq L4 m'hemm l-ebda informazzjoni dwar kemm damet l-operazzjoni jew jekk it-tlestija tal-konnessjoni kinitx tajba jew ħażina. Il-kontrolli attivi jeħtieġu li l-balancer jibgħat talbiet lil kull istanza tas-server.

Il-biċċa l-kbira tal-load balancers iwettqu kontrolli tal-ħajja huma stess. Fil-Cloud, iddeċidejna li nisseparaw dawn il-partijiet tas-sistema biex tiżdied l-iskalabbiltà. Dan l-approċċ se jippermettilna nżidu n-numru ta’ balancers filwaqt li nżommu n-numru ta’ talbiet għal kontrolli tas-saħħa lis-servizz. Il-kontrolli jsiru minn nodi separati tal-kontroll tas-saħħa, li fuqhom il-miri tal-kontroll huma mqassma u replikati. Ma tistax twettaq kontrolli minn ospitanti wieħed, peress li jista 'jfalli. Imbagħad mhux se nġibu l-istat tal-istanzi li ċċekkja. Aħna nwettqu kontrolli fuq kwalunkwe waħda mill-istanzi minn mill-inqas tliet nodi tal-kontroll tas-saħħa. Aħna naqsmu l-iskopijiet tal-kontrolli bejn in-nodi bl-użu ta 'algoritmi ta' hashing konsistenti.

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

Is-separazzjoni tal-ibbilanċjar u l-kontroll tas-saħħa jista 'jwassal għal problemi. Jekk in-nodu tal-kontroll tas-saħħa jagħmel talbiet lill-istanza, billi jinjora l-balancer (li bħalissa mhux qed iservi t-traffiku), allura tinħoloq sitwazzjoni stramba: ir-riżors jidher li huwa ħaj, iżda t-traffiku mhux se jilħaqha. Aħna nsolvu din il-problema b'dan il-mod: aħna garantiti li nibdew it-traffiku tal-kontroll tas-saħħa permezz tal-balancers. Fi kliem ieħor, l-iskema għaċ-ċaqliq tal-pakketti bit-traffiku mill-klijenti u mill-kontrolli tas-saħħa tvarja minimament: fiż-żewġ każijiet, il-pakketti se jilħqu l-balancers, li jwassluhom lir-riżorsi fil-mira.

Id-differenza hija li l-klijenti jagħmlu talbiet lil VIP, filwaqt li l-kontrolli tas-saħħa jagħmlu talbiet lil kull RIP individwali. Problema interessanti tqum hawnhekk: aħna nagħtu lill-utenti tagħna l-opportunità li joħolqu riżorsi f'netwerks IP griżi. Ejja nimmaġinaw li hemm żewġ sidien differenti tas-sħab li ħbew is-servizzi tagħhom wara l-balancers. Kull wieħed minnhom għandu riżorsi fis-subnet 10.0.0.1/24, bl-istess indirizzi. Trid tkun tista 'b'xi mod tiddistingwihom, u hawn trid tgħaddas fl-istruttura tan-netwerk virtwali Yandex.Cloud. Huwa aħjar li ssir taf aktar dettalji fil vidjo minn about:cloud event, huwa importanti għalina issa li n-netwerk huwa b'ħafna saffi u għandu mini li jistgħu jiġu distinti minn subnet id.

In-nodi tal-kontroll tas-saħħa jikkuntattjaw lill-bilanċjaturi billi jużaw l-hekk imsejħa indirizzi kważi-IPv6. Kważi-indirizz huwa indirizz IPv6 b'indirizz IPv4 u id-subnet tal-utent inkorporati ġewwa fih. It-traffiku jilħaq il-balancer, li jiġbed l-indirizz tar-riżorsi IPv4 minnu, jissostitwixxi l-IPv6 b'IPv4 u jibgħat il-pakkett lin-netwerk tal-utent.

It-traffiku invers imur bl-istess mod: il-balancer jara li d-destinazzjoni hija netwerk griż minn healthcheckers, u jikkonverti IPv4 għal IPv6.

VPP - il-qalba tal-pjan tad-dejta

Il-balancer huwa implimentat bl-użu tat-teknoloġija Vector Packet Processing (VPP), qafas minn Cisco għall-ipproċessar tal-lott tat-traffiku tan-netwerk. Fil-każ tagħna, il-qafas jaħdem fuq nett tal-librerija tal-ġestjoni tal-apparat tan-netwerk tal-utent tal-ispazju - Data Plane Development Kit (DPDK). Dan jiżgura prestazzjoni għolja tal-ipproċessar tal-pakketti: ħafna inqas interruzzjonijiet iseħħu fil-qalba, u m'hemm l-ebda bidla fil-kuntest bejn l-ispazju tal-kernel u l-ispazju tal-utent. 

VPP imur aktar 'il quddiem u jagħfas saħansitra aktar prestazzjoni mis-sistema billi jgħaqqad pakketti f'lottijiet. Il-kisbiet fil-prestazzjoni jiġu mill-użu aggressiv tal-caches fuq proċessuri moderni. Jintużaw iż-żewġ caches tad-dejta (il-pakketti huma pproċessati f'"vetturi", id-dejta hija qrib xulxin) u l-caches tal-istruzzjonijiet: f'VPP, l-ipproċessar tal-pakketti jsegwi graff, li n-nodi tagħhom fihom funzjonijiet li jwettqu l-istess kompitu.

Pereżempju, l-ipproċessar ta 'pakketti IP f'VPP iseħħ fl-ordni li ġejja: l-ewwel, l-headers tal-pakketti huma parsed fin-node tal-parsing, u mbagħad jintbagħtu lin-node, li jgħaddi l-pakketti aktar skond it-tabelli tar-routing.

Ftit iebsa. L-awturi ta 'VPP ma jittollerawx kompromessi fl-użu ta' caches tal-proċessur, għalhekk kodiċi tipiku għall-ipproċessar ta 'vettur ta' pakketti fih vettorizzazzjoni manwali: hemm linja ta 'proċessar li fiha tiġi pproċessata sitwazzjoni bħal "għandna erba' pakketti fil-kju", imbagħad l-istess għal tnejn, imbagħad - għal wieħed. L-istruzzjonijiet ta' prefetch ħafna drabi jintużaw biex jgħabbi d-dejta fil-caches biex jitħaffef l-aċċess għalihom f'iterazzjonijiet sussegwenti.

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);
}

Għalhekk, Healthchecks jitkellmu fuq IPv6 mal-VPP, li jibdilhom f'IPv4. Dan isir minn node fil-graff, li nsejħu NAT algoritmiku. Għat-traffiku invers (u l-konverżjoni minn IPv6 għal IPv4) hemm l-istess node NAT algoritmiku.

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

It-traffiku dirett mill-klijenti tal-balancer jgħaddi min-nodi tal-graff, li jwettqu l-ibbilanċjar innifsu. 

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

L-ewwel node huwa sessjonijiet li jwaħħlu. Hija taħżen il-hash ta 5-tuple għal sessjonijiet stabbiliti. 5-tuple jinkludi l-indirizz u l-port tal-klijent li minnu tiġi trażmessa l-informazzjoni, l-indirizz u l-portijiet tar-riżorsi disponibbli biex jirċievi t-traffiku, kif ukoll il-protokoll tan-netwerk. 

Il-hash 5-tuple jgħinna nwettqu inqas komputazzjoni fin-nodu ta 'hashing konsistenti sussegwenti, kif ukoll jimmaniġġjaw aħjar il-bidliet fil-lista tar-riżorsi wara l-balancer. Meta pakkett li għalih m'hemm l-ebda sessjoni jasal għand il-balancer, jintbagħat lin-nodu tal-hashing konsistenti. Dan huwa fejn iseħħ l-ibbilanċjar bl-użu ta 'hashing konsistenti: aħna nagħżlu riżors mil-lista ta' riżorsi "live" disponibbli. Sussegwentement, il-pakketti jintbagħtu lin-nodu NAT, li fil-fatt jissostitwixxi l-indirizz tad-destinazzjoni u jikkalkula mill-ġdid iċ-checksums. Kif tistgħu taraw, aħna nsegwu r-regoli ta 'VPP - simili li simili, raggruppament kalkoli simili biex tiżdied l-effiċjenza ta' caches proċessur.

Hashing konsistenti

Għaliex għażilna u x'inhu anke? L-ewwel, ejja nikkunsidraw il-kompitu preċedenti - tagħżel riżors mil-lista. 

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

B'hashing inkonsistenti, il-hash tal-pakkett li jkun dieħel huwa kkalkulat, u riżors jintgħażel mil-lista bil-bqija tad-diviżjoni ta 'dan il-hash bin-numru ta' riżorsi. Sakemm il-lista tibqa' l-istess, din l-iskema taħdem tajjeb: aħna dejjem nibagħtu pakketti bl-istess 5-tuple lill-istess istanza. Jekk, pereżempju, xi riżorsa waqfet tirrispondi għall-kontrolli tas-saħħa, allura għal parti sinifikanti tal-hashes l-għażla tinbidel. Il-konnessjonijiet TCP tal-klijent se jitkissru: pakkett li qabel laħaq istanza A jista 'jibda jilħaq istanza B, li mhix familjari mas-sessjoni għal dan il-pakkett.

Il-hashing konsistenti jsolvi l-problema deskritta. L-eħfef mod biex tispjega dan il-kunċett huwa dan: immaġina li għandek ċirku li għalih tqassam ir-riżorsi bil-hash (per eżempju, bl-IP:port). L-għażla ta 'riżors hija ddawwar ir-rota b'angolu, li huwa determinat mill-hash tal-pakkett.

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

Dan jimminimizza r-ridistribuzzjoni tat-traffiku meta l-kompożizzjoni tar-riżorsi tinbidel. It-tħassir ta' riżors se jaffettwa biss il-parti taċ-ċirku tal-hashing konsistenti li fiha kienet tinsab ir-riżorsa. Iż-żieda ta 'riżors tbiddel ukoll id-distribuzzjoni, iżda għandna nodu ta' sessjonijiet li jwaħħlu, li jippermettilna ma naqilbux sessjonijiet diġà stabbiliti għal riżorsi ġodda.

Ħarsa lejn x'jiġri fit-traffiku dirett bejn il-balancer u r-riżorsi. Issa ejja nħarsu lejn it-traffiku lura. Isegwi l-istess mudell bħat-traffiku tal-kontroll - permezz ta' NAT algoritmiku, jiġifieri permezz ta' NAT 44 invers għat-traffiku tal-klijenti u permezz ta' NAT 46 għat-traffiku tal-kontrolli tas-saħħa. Aħna nżommu mal-iskema tagħna stess: ngħaqqdu t-traffiku tal-kontrolli tas-saħħa u t-traffiku tal-utenti reali.

Loadbalancer-node u komponenti immuntati

Il-kompożizzjoni ta' balancers u riżorsi f'VPP hija rrappurtata mis-servizz lokali - loadbalancer-node. Jissottoskrivi għall-fluss ta 'avvenimenti minn loadbalancer-kontrollur u huwa kapaċi jippjana d-differenza bejn l-istat VPP attwali u l-istat fil-mira riċevuti mill-kontrollur. Ikollna sistema magħluqa: avvenimenti mill-API jaslu għand il-kontrollur tal-bilanċ, li jassenja l-kompiti lill-kontrollur tal-kontroll tas-saħħa biex jiċċekkja l-"ħajja" tar-riżorsi. Dak, imbagħad, jassenja l-kompiti lin-node tal-kontroll tas-saħħa u jaggrega r-riżultati, u wara jibgħathom lura lill-kontrollur tal-bilanċ. Loadbalancer-node jissottoskrivi għal avvenimenti mill-kontrollur u jibdel l-istat tal-VPP. F'sistema bħal din, kull servizz jaf biss dak li hu meħtieġ dwar is-servizzi ġirien. In-numru ta 'konnessjonijiet huwa limitat u għandna l-abbiltà li noperaw u niskalaw segmenti differenti b'mod indipendenti.

Arkitettura ta' bilanċjar tat-tagħbija tan-netwerk f'Yandex.Cloud

Liema kwistjonijiet ġew evitati?

Is-servizzi kollha tagħna fil-pjan ta 'kontroll huma miktuba f'Go u għandhom karatteristiċi tajbin ta' skalar u affidabilità. Go għandha ħafna libreriji ta' sors miftuħ għall-bini ta' sistemi distribwiti. Aħna nużaw il-GRPC b'mod attiv, il-komponenti kollha fihom implimentazzjoni ta' sors miftuħ ta 'skoperta ta' servizz - is-servizzi tagħna jimmonitorjaw il-prestazzjoni ta 'xulxin, jistgħu jbiddlu l-kompożizzjoni tagħhom b'mod dinamiku, u għaqqadna dan mal-ibbilanċjar GRPC. Għall-metriċi, nużaw ukoll soluzzjoni open source. Fil-pjan tad-dejta, ksibna prestazzjoni deċenti u riżerva kbira ta 'riżorsi: irriżulta li kien diffiċli ħafna li nimmuntaw stand li fuqu nistgħu niddependu fuq il-prestazzjoni ta' VPP, aktar milli karta tan-netwerk tal-ħadid.

Problemi u Soluzzjonijiet

X'ma ħadimx daqshekk tajjeb? Go għandha ġestjoni awtomatika tal-memorja, iżda tnixxijiet tal-memorja għadhom iseħħu. L-eħfef mod biex tittrattahom huwa li tmexxi goroutines u ftakar li ttemmhom. Takeaway: Ara l-konsum tal-memorja tal-programmi Go tiegħek. Spiss indikatur tajjeb huwa n-numru ta 'goroutines. Hemm vantaġġ f'din l-istorja: f'Go huwa faċli li tinkiseb data tar-runtime - konsum tal-memorja, in-numru ta 'goroutines li qed jaħdmu, u ħafna parametri oħra.

Ukoll, Go jista 'ma jkunx l-aħjar għażla għal testijiet funzjonali. Huma pjuttost verbose, u l-approċċ standard ta '"tmexxija ta' kollox f'CI f'lott" mhuwiex adattat ħafna għalihom. Il-fatt hu li t-testijiet funzjonali huma aktar esiġenti tar-riżorsi u jikkawżaw timeouts reali. Minħabba dan, it-testijiet jistgħu jfallu minħabba li s-CPU huwa okkupat bit-testijiet tal-unità. Konklużjoni: Jekk possibbli, wettaq testijiet "tqal" separatament mit-testijiet tal-unità. 

L-arkitettura tal-avvenimenti tal-mikroservizz hija aktar kumplessa minn monolitu: il-ġbir ta 'zkuk fuq għexieren ta' magni differenti mhuwiex konvenjenti ħafna. Konklużjoni: jekk tagħmel mikroservizzi, aħseb immedjatament dwar it-traċċar.

Il-pjanijiet tagħna

Se nniedu bilanċjar intern, bilanċjar IPv6, inżidu l-appoġġ għall-iskripts Kubernetes, inkomplu naqsmu s-servizzi tagħna (bħalissa l-healthcheck-node u l-healthcheck-ctrl biss huma sharded), inżidu kontrolli tas-saħħa ġodda, u nimplimentaw ukoll aggregazzjoni intelliġenti ta 'kontrolli. Qed nikkunsidraw il-possibbiltà li s-servizzi tagħna jsiru saħansitra aktar indipendenti - sabiex dawn jikkomunikaw mhux direttament ma 'xulxin, iżda jużaw kju ta' messaġġi. Dan l-aħħar deher servizz kompatibbli mal-SQS fil-Cloud Kju tal-Messaġġ Yandex.

Riċentement, seħħ ir-rilaxx pubbliku ta 'Yandex Load Balancer. Esplora dokumentazzjoni għas-servizz, immaniġġja l-balancers b'mod konvenjenti għalik u żid it-tolleranza tal-ħsarat tal-proġetti tiegħek!

Sors: www.habr.com

Żid kumment