Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

I-Netflix yinkokeli kwimarike kamabonwakude ye-Intanethi-inkampani eyenza kwaye iphuhlisa eli candelo. INetflix ayaziwa kuphela ngekhathalogu yayo ebanzi yeemuvi kunye nothotho lweTV olufumaneka phantse kuzo zonke iikona zomhlaba kunye nasiphi na isixhobo esinomboniso, kodwa nakwiziseko zayo ezithembekileyo kunye nenkcubeko yobunjineli ekhethekileyo.

Umzekelo ocacileyo wendlela yeNetflix ekuphuhliseni nasekuxhaseni iinkqubo ezinzima zaboniswa kwi-Devoops 2019 Sergey Fedorov - UMlawuli woPhuhliso kwiNetflix. Wathweswa isidanga kwiFaculty of Computational Mathematics and Mathematics of the Nizhny Novgorod State University. Lobachevsky, uSergey omnye weenjineli zokuqala kwi-Open Connect - iqela le-CDN kwiNetflix. Wakha iinkqubo zokubeka iliso kunye nokuhlalutya idatha yevidiyo, uqalise inkonzo eyaziwayo yokuvavanya isantya soxhulumaniso lwe-Intanethi FAST.com, kwaye kwiminyaka embalwa edlulileyo usebenze ekuphuculeni izicelo ze-Intanethi ukwenzela ukuba isicelo seNetflix sisebenze ngokukhawuleza kubasebenzisi.

Ingxelo ifumene uphononongo oluhle kakhulu kubathathi-nxaxheba benkomfa, kwaye sikulungiselele inguqulelo yombhalo.

Kwingxelo yakhe, uSergei wathetha ngokweenkcukacha

  • malunga nokuba yintoni echaphazela ukulibaziseka kwezicelo ze-Intanethi phakathi komxhasi kunye nomncedisi;
  • indlela yokunciphisa oku kulibaziseka;
  • indlela yokuyila, ukugcina kunye nokubeka iliso kwiinkqubo ezikwazi ukunyamezela iimpazamo;
  • indlela yokufezekisa iziphumo ngexesha elifutshane, kunye nomngcipheko omncinci kwishishini;
  • indlela yokuhlalutya iziphumo kwaye ufunde kwiimpazamo.

Iimpendulo zale mibuzo azifunwa kuphela ngabo basebenza kumashishini amakhulu.

Imigaqo ebonisiweyo kunye nobuchule kufuneka yaziwe kwaye yenziwe nguye wonke umntu ophuhlisayo noxhasa iimveliso ze-Intanethi.

Okulandelayo yinkcazo ngokwembono yesithethi.

Ukubaluleka kwesantya se-intanethi

Isantya sezicelo ze-Intanethi sinxulumene ngqo neshishini. Qwalasela ishishini lokuthenga: IAmazon ngo-2009 wathethaukuba ukulibaziseka kwe-100ms kubangela ilahleko ye-1% yokuthengisa.

Zininzi nangakumbi izixhobo eziphathwayo, zilandelwa ziisayithi eziphathwayo kunye nezicelo. Ukuba iphepha lakho lithatha ixesha elingaphezu kwemizuzwana emi-3 ukulayisha, ulahlekelwa malunga nesiqingatha sabasebenzisi bakho. KUNYE NgoJulayi 2018 I-Google ithathela ingqalelo isantya sokulayisha sephepha lakho kwiziphumo zophendlo: ngokukhawuleza iphepha, kokukhona liphezulu indawo yalo kuGoogle.

Isantya soqhagamshelwano sikwabalulekile kumaziko emali apho i-latency ibalulekile. Kwi-2015, i-Hibernia Networks igqitywe tu ikhebula le-400 yezigidi zeerandi phakathi kweNew York neLondon ukunciphisa i-latency phakathi kwezixeko nge-6ms. Khawube nomfanekiso we-66 yezigidi zeerandi kwi-1 ms yokunciphisa umva!

Ngokutsho uphando, Izantya zoqhagamshelo ngaphezulu kwe-5 Mbit / s azisachaphazeli ngokuthe ngqo isantya sokulayisha sewebhusayithi eqhelekileyo. Nangona kunjalo, kukho ubudlelwane bomgca phakathi kwe-latency yoqhagamshelwano kunye nesantya sokulayisha iphepha:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Nangona kunjalo, iNetflix ayisiyomveliso eqhelekileyo. Impembelelo ye-latency kunye nesantya kumsebenzisi yindawo esebenzayo yohlalutyo kunye nophuhliso. Kukho ukulayishwa kwesicelo kunye nokukhethwa komxholo oxhomekeke kwi-latency, kodwa ukulayisha izinto ezimileyo kunye nokusasaza kwakhona kuxhomekeke kwisantya soqhagamshelwano. Ukuhlalutya kunye nokwenza ngcono izinto eziphambili eziphembelela amava omsebenzisi yindawo esebenzayo yophuhliso lwamaqela aliqela kwiNetflix. Enye yeenjongo kukunciphisa i-latency yezicelo phakathi kwezixhobo zeNetflix kunye neziseko zelifu.

Kwingxelo siza kugxila ngokukodwa ekunciphiseni i-latency usebenzisa umzekelo weziseko zeNetflix. Makhe siqwalasele ngokwembono ebonakalayo indlela yokufikelela kwiinkqubo zokuyila, ukuphuhliswa kunye nokusebenza kweenkqubo eziyinkimbinkimbi ezisasazwayo kunye nokuchitha ixesha kwizinto ezintsha kunye neziphumo, kunokufumanisa iingxaki zokusebenza kunye nokuphazamiseka.

Ngaphakathi kwiNetflix

Amawaka ezixhobo ezahlukeneyo zixhasa usetyenziso lweNetflix. Ziphuhliswa ngamaqela amane ahlukeneyo, enza iinguqulelo ezahlukeneyo zomthengi we-Android, iOS, TV kunye neziphequluli zewebhu. Kwaye sichitha iinzame ezininzi ekuphuculeni kunye nokwenza umntu amava omsebenzisi. Ukwenza oku, siqhuba amakhulu eemvavanyo ze-A/B ngaxeshanye.

Ukwenza okuthandwa nguwe kuxhaswa ngamakhulu ee-microservices kwilifu le-AWS, ukubonelela ngedatha yomsebenzisi eyenzelwe umntu, ukuthunyelwa kwemibuzo, i-telemetry, iDatha enkulu kunye ne-Encoding. Umbono wetrafikhi ujongeka ngolu hlobo:

Ikhonkco kwividiyo ngomboniso ( 6:04-6:23 )

Ngasekhohlo yindawo yokungena, kwaye ke itrafikhi isasazwa phakathi kwamakhulu aliqela eenkonzo ezincinci ezixhaswa ngamaqela ahlukeneyo asemva.

Elinye icandelo elibalulekileyo lesiseko sethu yi-Open Connect CDN, ehambisa umxholo omileyo kumsebenzisi wokugqibela - iividiyo, imifanekiso, ikhowudi yomxhasi, njl. I-CDN ibekwe kwiiseva eziqhelekileyo (i-OCA - Vula iSibonelelo soQhagamshelwano). Ngaphakathi kukho uluhlu lwe-SSD kunye ne-HDD drives eqhuba i-FreeBSD ephuculweyo, kunye ne-NGINX kunye neseti yeenkonzo. Siyila kwaye sandise izixhobo zehardware kunye nesoftware ukuze iseva yeCDN ikwazi ukuthumela idatha eninzi kangangoko kunokwenzeka kubasebenzisi.

"Udonga" lwezi seva kwindawo yokutshintshiselana nge-Intanethi (i-Intanethi ye-eXchange - IX) ijongeka ngolu hlobo:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Utshintshiselwano nge-Intanethi lubonelela ngesakhono sabanikezeli benkonzo ye-Intanethi kunye nababoneleli bomxholo ukuba "banxibelelane" kunye ukuze batshintshiselane ngokuthe ngqo ngakumbi idatha kwi-Intanethi. Kukho malunga ne-70-80 yeendawo zoTshintshiselwano kwi-Intanethi kwihlabathi liphela apho iiseva zethu zifakelwe, kwaye siyazifaka ngokuzimeleyo kwaye sizigcine:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ukongeza, sikwabonelela ngeeseva ngokuthe ngqo kubaboneleli be-Intanethi, abathi bafake kwinethiwekhi yabo, bephucula indawo yetrafikhi yeNetflix kunye nomgangatho wokusasazwa kwabasebenzisi:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Isethi yeenkonzo ze-AWS inoxanduva lokuthumela izicelo zevidiyo kubaxhasi kwiiseva ze-CDN, kunye nokuqwalasela iiseva ngokwazo-ukuhlaziya umxholo, ikhowudi yeprogram, izicwangciso, njl. Okokugqibela, siye sakha inethiwekhi yomqolo edibanisa iiseva kwiindawo zoTshintshiselwano lwe-Intanethi kunye ne-AWS. Inethiwekhi ye-backbone yinethiwekhi yehlabathi jikelele yeentambo ze-fiber optic kunye nee-routers esinokuyila kwaye silungiselele ngokusekelwe kwiimfuno zethu.

Ngu Sandvine uqikelelo, iziseko zethu ze-CDN zihambisa malunga ne-β…› ye-intanethi ye-intanethi ngexesha leeyure eziphakamileyo kunye ne-β…“ ye-traffic kuMntla Melika, apho i-Netflix ijikeleze ixesha elide. Amanani anomdla, kodwa kum enye yeempumelelo ezimangalisayo kukuba yonke inkqubo ye-CDN iphuhliswe kwaye igcinwe liqela labantu abangaphantsi kwe-150.

Ekuqaleni, iziseko ze-CDN zenzelwe ukuhambisa idatha yevidiyo. Nangona kunjalo, ngokuhamba kwexesha siye sabona ukuba sinokuyisebenzisa ukwandisa izicelo eziguqukayo ezivela kubathengi kwilifu le-AWS.

Malunga nokukhawuleziswa kwe-Intanethi

Namhlanje, i-Netflix inemimandla ye-AWS ye-3, kwaye ukubambezeleka kwezicelo kwifu kuya kuxhomekeka kwindlela umthengi akude ngayo ukusuka kwindawo ekufutshane. Kwangaxeshanye, sineeseva ezininzi ze-CDN ezisetyenziselwa ukuhambisa umxholo omileyo. Ngaba ikhona indlela yokusebenzisa esi sikhokelo ukukhawulezisa imibuzo eguqukayo? Nangona kunjalo, ngelishwa, akunakwenzeka ukugcina ezi zicelo-i-APIs zenzelwe umntu kwaye isiphumo ngasinye sahlukile.

Masenze ummeli kwiseva ye-CDN kwaye siqale ukuthumela itrafikhi ngayo. Ngaba iya kukhawuleza?

Izinto eziphathekayo

Masikhumbule indlela iiprothokholi zenethiwekhi ezisebenza ngayo. Namhlanje, uninzi lwezithuthi kwi-Intanethi zisebenzisa i-HTTPs, exhomekeke kwiprotocol esezantsi ye-TCP kunye ne-TLS. Ukuze umxhasi aqhagamshele kumncedisi, wenza ukubambana ngesandla, kwaye ukuseka uxhumano olukhuselekileyo, umxhasi kufuneka atshintshe imiyalezo kunye nomncedisi kathathu kwaye ubuncinane elinye ixesha lokudlulisa idatha. Nge-latency ngohambo olujikelezayo (RTT) ye-100 ms, kuya kusithatha i-400 ms ukufumana i-bit yokuqala yedatha:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ukuba sibeka izatifikethi kumncedisi we-CDN, ngoko ixesha lokuxhawula isandla phakathi komxhasi kunye nomncedisi lingancitshiswa kakhulu ukuba i-CDN isondele. Masicinge ukuba i-latency kwiseva ye-CDN yi-30ms. Emva koko kuya kuthatha 220 ms ukufumana bit yokuqala:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Kodwa iingenelo azipheli apho. Emva kokuba uxhulumaniso lusekiwe, i-TCP yonyusa ifestile yoxinaniso (ubungakanani bolwazi olunokuthi ludlulisele phezu kolu xhulumaniso ngokuhambelanayo). Ukuba ipakethi yedatha ilahlekile, ngoko ukuphunyezwa kweklasikhi ye-protocol ye-TCP (njenge-TCP New Reno) inciphisa "ifestile" evulekileyo ngesiqingatha. Ukukhula kwefestile yokuxinana, kunye nesantya sokubuyiselwa kwayo ekulahlekeni kwakhona kuxhomekeke ekulibazisekeni (RTT) kumncedisi. Ukuba olu xhulumaniso luhamba kuphela kwi-server ye-CDN, oku kubuyiselwa kuya kukhawuleza. Ngexesha elifanayo, ukulahleka kwepakethi yinto eqhelekileyo, ngakumbi kwiinethiwekhi ezingenazintambo.

I-bandwidth ye-Intanethi inokuncitshiswa, ngakumbi ngexesha leeyure eziphakamileyo, ngenxa yetrafikhi evela kubasebenzisi, nto leyo enokukhokelela kwiindlela zokugcwala. Nangona kunjalo, akukho ndlela kwi-Intanethi yokubeka phambili ezinye izicelo kunezinye. Umzekelo, nika kuqala izicelo ezincinci kunye ne-latency-sensitive ngaphezulu kwemithombo yedatha "enzima" elayisha inethiwekhi. Nangona kunjalo, kwimeko yethu, ukuba nenethiwekhi yethu ye-backbone ivumela ukuba senze oku kwinxalenye yendlela yokucela - phakathi kwe-CDN kunye nefu, kwaye sinokuyiqwalasela ngokupheleleyo. Unokuqinisekisa ukuba iipakethi ezincinci kunye ne-latency-sensitive zibekwe phambili, kwaye ukuhamba kwedatha enkulu kuhamba kancinane kamva. I-CDN isondele ngakumbi kumxhasi, ngakumbi ukusebenza kakuhle.

Iiprothokholi zenqanaba lesicelo (i-OSI iNqanaba lesi-7) nazo zinefuthe kwi-latency. Iiprothokholi ezintsha ezifana ne-HTTP/2 zikhulisa ukusebenza kwezicelo ezifanayo. Nangona kunjalo, sinabathengi beNetflix abanezixhobo ezindala ezingaxhasi iiprothokholi ezintsha. Ayingabo bonke abathengi abanokuhlaziywa okanye baqwalaselwe ngokufanelekileyo. Kwangaxeshanye, phakathi kommeleli we-CDN kunye nelifu kukho ulawulo olupheleleyo kunye nokukwazi ukusebenzisa iiprothokholi ezintsha, ezifanelekileyo kunye nezicwangciso. Inxalenye engasebenziyo kunye neeprothokholi ezindala ziya kusebenza kuphela phakathi komxhasi kunye nomncedisi we-CDN. Ngaphezu koko, sinokwenza izicelo ze-multiplex kunxibelelwano olusele lusekiwe phakathi kwe-CDN kunye nefu, ukuphucula ukusetyenziswa koqhagamshelwano kwinqanaba le-TCP:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Silinganisa

Ngaphandle kwento yokuba ithiyori ithembisa uphuculo, asingxami ngokukhawuleza ukuqalisa inkqubo kwimveliso. Endaweni yoko, kufuneka siqinisekise kuqala ukuba umbono uya kusebenza ngokusebenza. Ukwenza oku kufuneka uphendule imibuzo emininzi:

  • Ukukhawuleza: ingaba ummeli uza kukhawuleza?
  • Ukuthembeka: Ngaba iya kuphuka rhoqo?
  • Ukunyaniseka: indlela yokudibanisa kunye nezicelo?
  • iindleko: Kubiza malini ukusasaza iziseko ezingundoqo ezongezelelweyo?

Makhe siqwalasele ngokweenkcukacha indlela yethu yokuvavanya inqaku lokuqala. Ezinye ziphathwa ngendlela efanayo.

Ukuhlalutya isantya sezicelo, sifuna ukufumana idatha kubo bonke abasebenzisi, ngaphandle kokuchitha ixesha elininzi ekuphuhliseni kwaye ngaphandle kokuphula imveliso. Kukho iindlela ezininzi zoku:

  1. I-RUM, okanye umlinganiselo wokwenziwa kwesicelo. Silinganisa ixesha lokwenziwa kwezicelo zangoku ezivela kubasebenzisi kwaye siqinisekisa ukhuseleko olupheleleyo lwabasebenzisi. Ukungalungi kukuba isignali ayizinzile kakhulu ngenxa yezinto ezininzi, umzekelo, ngenxa yobukhulu bezicelo ezahlukeneyo, ixesha lokucubungula kumncedisi kunye nomthengi. Ukongeza, awukwazi ukuvavanya uqwalaselo olutsha ngaphandle kwesiphumo kwimveliso.
  2. Iimvavanyo zaselabhoratri. Iiseva ezikhethekileyo kunye neziseko zoncedo ezilinganisa abathengi. Ngoncedo lwabo siqhuba iimvavanyo eziyimfuneko. Ngale ndlela sifumana ulawulo olupheleleyo kwiziphumo zokulinganisa kunye nomqondiso ocacileyo. Kodwa akukho lugqubuthelo olupheleleyo lwezixhobo kunye neendawo zabasebenzisi (ingakumbi ngenkonzo yehlabathi jikelele kunye nenkxaso yamawaka eemodeli zesixhobo).

Unokudibanisa njani iingenelo zeendlela zombini?

Iqela lethu lifumene isisombululo. Sibhale ikhowudi encinci - isampuli - esakhelwe kwisicelo sethu. Iiprobes zisivumela ukuba senze uvavanyo lwenethiwekhi olulawulwa ngokupheleleyo kwizixhobo zethu. Isebenza ngolu hlobo:

  1. Kungekudala emva kokulayisha isicelo kunye nokugqiba umsebenzi wokuqala, siqhuba iiprobes zethu.
  2. Umxhasi wenza isicelo kumncedisi kwaye ufumana "iresiphi" yovavanyo. Iresiphi luhlu lwee-URL apho isicelo seHTTP(s) kufuneka senziwe. Ukongeza, iresiphi iqulunqa iiparamitha zesicelo: ukulibaziseka phakathi kwezicelo, inani ledatha eceliwe, ii-headers zeHTTP, njl. Kwangaxeshanye, sinokuvavanya iiresiphi ezininzi ezahlukeneyo ngaxeshanye - xa ucela ulungelelwaniso, simisela ngokungakhethiyo ukuba yeyiphi iresiphi esiza kuyikhupha.
  3. Ixesha lokuqaliswa kwe-probe likhethiwe ukuze lingangqubani nokusetyenziswa okusebenzayo kwemithombo yenethiwekhi kumxhasi. Ngokusisiseko, ixesha likhethwa xa umxhasi engasebenzi.
  4. Emva kokufumana iresiphi, umxhasi wenza izicelo kwi-URL nganye, ngokufanayo. Isicelo kwidilesi nganye sinokuphinda-phinda-okubizwa ngokuba. "iimpumlo". Kwi-pulse yokuqala, silinganisa ukuba kuthatha ixesha elingakanani ukuseka uqhagamshelwano kunye nokukhuphela idatha. Kwi-pulse yesibini, silinganisa ixesha elithathayo ukulayisha idatha kuqhagamshelwano olusele lusekiwe. Ngaphambi kowesithathu, sinokubeka ukulibaziseka kunye nokulinganisa isantya sokuseka ukuxhuma kwakhona, njl.

    Ngexesha lovavanyo, silinganisa zonke iiparamitha esinokuzifumana isixhobo:

    • ixesha lesicelo se-DNS;
    • ixesha lokuseta uqhagamshelo lwe-TCP;
    • ixesha lokuseta uqhagamshelo lwe-TLS;
    • ixesha lokufumana i-byte yokuqala yedatha;
    • ixesha lokulayisha lilonke;
    • ikhowudi yesiphumo sesimo.
  5. Emva kokuba zonke ii-pulses zigqityiwe, isampuli ilayisha yonke imilinganiselo yokuhlalutya.

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Amanqaku aphambili axhomekeke kancinci kwingqiqo kumxhasi, ukusetyenzwa kwedatha kumncedisi kunye nomlinganiselo wezicelo ezifanayo. Ke, siyakwazi ukwahlula kwaye sivavanye impembelelo yezinto ezahlukeneyo ezichaphazela ukusebenza kwemibuzo, siyayitshintsha ngaphakathi kweresiphi enye, kwaye sifumane iziphumo kubathengi bokwenyani.

Esi siseko singqineke siluncedo ngaphezu kokuphonononga nje ukusebenza kwemibuzo. Okwangoku sineeresiphi ezisebenzayo ezili-14, iisampuli ezingaphezu kwama-6000 ngomzuzwana, ezifumana idatha evela kuzo zonke iimbombo zomhlaba kunye nokugubungela isixhobo esipheleleyo. Ukuba iNetflix ithenge inkonzo efanayo kumntu wesithathu, iya kubiza izigidi zeedola ngonyaka, kunye nokhuseleko olubi kakhulu.

Uvavanyo lwethiyori ekusebenzeni: iprototype

Ngenkqubo enjalo, siye sakwazi ukuvavanya ukusebenza kakuhle kweeproxies ze-CDN kwisicelo sokubambezeleka. Ngoku kufuneka:

  • yenza iprototype yommeli;
  • beka iprototype kwi-CDN;
  • misela indlela yokwalathisa abaxhasi kummeli kumncedisi othile weCDN;
  • Thelekisa ukusebenza kwezicelo kwi-AWS ngaphandle kommeli.

Umsebenzi kukuvavanya ukusebenza kwesisombululo esicetywayo ngokukhawuleza. Sikhethe i-Go ukuphumeza iprototype ngenxa yokufumaneka kwamathala eencwadi othungelwano olulungileyo. Kwiseva nganye ye-CDN, sifake iprototype yeproksi njengebhanari engatshintshiyo ukunciphisa ukuxhomekeka kunye nokwenza lula uhlanganiso. Ekuphunyezweni kokuqala, sasebenzisa amacandelo asemgangathweni kangangoko kunokwenzeka kunye nokuguqulwa okuncinci kwi-HTTP/2 yokudibanisa ukudibanisa kunye nokucela ukuphindaphinda.

Ukulinganisa phakathi kwemimandla ye-AWS, sisebenzise i-database ye-DNS yendawo, efanayo esetyenziselwa ukulinganisa abathengi. Ukukhetha umncedisi we-CDN kumxhasi, sisebenzisa i-TCP Anycast yeeseva kwi-Internet Exchange (IX). Kolu khetho, sisebenzisa idilesi ye-IP enye kuzo zonke iiseva ze-CDN, kwaye umxhasi uya kubhekiswa kwiseva ye-CDN enenani elincinci le-IP hops. Kwiiseva ze-CDN ezifakwe ngababoneleli be-Intanethi (ISPs), asinalo ulawulo kwi-router ukuqwalasela i-TCP Anycast, ngoko sisebenzisa ingqiqo efanayo, eyalathisa abathengi kubaboneleli be-Intanethi ngokusasazwa kwevidiyo.

Ke, sineentlobo ezintathu zeendlela zokucela: kwilifu nge-Intanethi evulekileyo, nge-CDN iseva kwi-IX, okanye nge-CDN iseva ebekwe kumnikezeli we-Intanethi. Injongo yethu kukuqonda ukuba yeyiphi indlela engcono, kwaye yintoni inzuzo ye-proxy, xa kuthelekiswa nendlela izicelo ezithunyelwa ngayo kwimveliso. Ukwenza oku, sisebenzisa inkqubo yesampulu ngolu hlobo lulandelayo:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Indlela nganye iba yinto ekujoliswe kuyo eyahlukileyo, kwaye sijonga ixesha esilifumeneyo. Uhlalutyo, sidibanisa iziphumo zommeli kwiqela elinye (khetha elona xesha lilungileyo phakathi kwe-IX kunye ne-ISP proxies), kwaye uzithelekise kunye nexesha lezicelo kwilifu ngaphandle kommeli:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Njengoko ubona, iziphumo zixutywe - kwiimeko ezininzi i-proxy inika i-speedup elungileyo, kodwa kukho inani elaneleyo labathengi apho imeko iya kuba nzima kakhulu.

Ngenxa yoko, senze izinto ezininzi ezibalulekileyo:

  1. Sivavanye ukusebenza okulindelweyo kwezicelo ezivela kubaxumi ukuya kwilifu ngokusebenzisa ummeleli we-CDN.
  2. Sifumene idatha kubathengi bokwenyani, kuzo zonke iintlobo zezixhobo.
  3. Siye saqaphela ukuba ithiyori ayiqinisekiswanga nge-100% kwaye unikezelo lokuqala kunye nommeleli we-CDN aluyi kusebenza kuthi.
  4. Asizange sithathe umngcipheko - asizange sitshintshe ulungelelwaniso lwemveliso kubathengi.
  5. Akukho nto yaphukileyo.

Iprototype 2.0

Ke, buyela kwibhodi yokuzoba kwaye uphinde inkqubo kwakhona.

Ingcamango kukuba endaweni yokusebenzisa i-proxy ye-100%, siya kugqiba indlela ekhawulezayo yomthengi ngamnye, kwaye siya kuthumela izicelo apho - oko kukuthi, siya kwenza into ebizwa ngokuba yi-client steering.

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ukuphumeza njani oku? Asinakusebenzisa ingqiqo kwicala lomncedisi, kuba... Injongo kukudibanisa kulo mncedisi. Kufuneka kubekho indlela yokwenza oku kumxhasi. Kwaye ngokufanelekileyo, yenza oku kunye nenani elincinci le-logic eyinkimbinkimbi, ukwenzela ukuba ungasombululi umba wokudibanisa kunye nenani elikhulu lamaqonga abaxhasi.

Impendulo kukusebenzisa i-DNS. Kwimeko yethu, sineziseko zethu ze-DNS, kwaye sinokuseta indawo yesizinda apho amaseva ethu aya kuba negunya. Isebenza ngolu hlobo:

  1. Umxhasi wenza isicelo kumncedisi we DNS esebenzisa umamkeli, umzekelo api.netflix.xom.
  2. Isicelo sifika kwiseva yethu ye-DNS
  3. Umncedisi we DNS uyazi ukuba yeyiphi indlela ekhawulezayo kulo mxhasi kwaye ikhupha idilesi ye IP ehambelanayo.

Isisombululo sinobunzima obongezelelweyo: abanikezeli be-DNS abagunyazisiweyo ababoni idilesi ye-IP yomxhasi kwaye banokufunda kuphela idilesi ye-IP ye-recursive resolution esetyenziswa ngumxhasi.

Ngenxa yoko, umsombululi wethu ogunyazisiweyo kufuneka enze isigqibo kungekhona kumxhasi ngamnye, kodwa kwiqela labathengi ngokusekelwe kwisisombululo esiphindaphindiweyo.

Ukusombulula, sisebenzisa iisampulu ezifanayo, sidibanisa iziphumo zomlinganiso kubathengi kwisombululo ngasinye esiphinda-phindayo kwaye sithathe isigqibo sokuba singalithumela phi eli qela labo - ummeli nge-IX usebenzisa i-TCP Anycast, nge-ISP proxy, okanye ngokuthe ngqo kwilifu.

Sifumana le nkqubo ilandelayo:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Imodeli yokulawula ye-DNS enesiphumo ikuvumela ukuba uqondise abathengi ngokusekwe kwimigqaliselo yembali yesantya sonxibelelwano ukusuka kubathengi ukuya kwilifu.

Kwakhona, umbuzo ngowokuba le ndlela yokusebenza iza kusebenza njani? Ukuphendula, siphinda sisebenzisa inkqubo yethu yokuhlola. Ngoko ke, siqwalasela ukucwangciswa kombonisi, apho enye yeethagethi ilandela ulwalathiso oluvela kwi-DNS yokulawula, enye iya ngqo kwifu (imveliso yangoku).

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ngenxa yoko, sithelekisa iziphumo kwaye sifumane uvavanyo lokusebenza:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ngenxa yoko, sifunde izinto ezininzi ezibalulekileyo:

  1. Sivavanye ukusebenza okulindelweyo kwezicelo ezivela kubathengi ukuya kwilifu usebenzisa i-DNS Steering.
  2. Sifumene idatha kubathengi bokwenyani, kuzo zonke iintlobo zezixhobo.
  3. Ukusebenza kombono ocetywayo kuye kwangqinwa.
  4. Asizange sithathe umngcipheko - asizange sitshintshe ulungelelwaniso lwemveliso kubathengi.
  5. Akukho nto yaphukileyo.

Ngoku malunga nenxalenye enzima - siyisungula kwimveliso

Inxalenye elula ngoku iphelile - kukho iprototype esebenzayo. Ngoku inxalenye enzima isungula isisombululo sayo yonke i-traffic ye-Netflix, ithumela kubasebenzisi abazizigidi ezili-150, amawaka ezixhobo, amakhulu e-microservices, kunye nemveliso ehlala itshintsha kunye neziseko. Iiseva zeNetflix zifumana izigidi zezicelo ngomzuzwana, kwaye kulula ukuphula inkonzo ngesenzo sokungakhathali. Kwangaxeshanye, sifuna ukuhambisa i-traffic ngokuguquguqukayo ngamawaka eeseva ze-CDN kwi-Intanethi, apho kukho into etshintshayo kwaye iphuke rhoqo kwaye ngelona xesha lingafanelekanga.

Kwaye kukho konke oku, iqela lineenjineli ze-3 ezijongene nophuhliso, ukuthunyelwa kunye nenkxaso epheleleyo yenkqubo.

Ngoko ke, siya kuqhubeka sithetha ngokuphumla kunye nokulala okunempilo.

Ungaqhubeka njani nophuhliso kwaye ungachithi lonke ixesha lakho kwinkxaso? Indlela yethu isekelwe kwimigaqo emi-3:

  1. Sinciphisa umlinganiselo onokwenzeka wokuqhekeka (i-blast radius).
  2. Silungiselela ukumangalisa - silindele ukuba into ethile iya kuphuka, nangona uvavanyo kunye namava omntu.
  3. Ukuthotywa okuhle - ukuba kukho into engasebenzi kakuhle, kufuneka ilungiswe ngokuzenzekelayo, nokuba akunjalo ngeyona ndlela isebenzayo.

Kwavela ukuba kwimeko yethu, ngale ndlela yokujonga ingxaki, sinokufumana isisombululo esilula nesisebenzayo kwaye senze lula kakhulu inkxaso yenkqubo. Siye saqaphela ukuba singongeza ikhowudi encinci kumxhasi kwaye sibeke iliso kwiimpazamo zesicelo senethiwekhi ezibangelwa iingxaki zokuxhuma. Kwimeko yeempazamo zenethiwekhi, senza i- fallback ngqo kwilifu. Esi sisombululo asifuni mzamo ubalulekileyo kumaqela abathengi, kodwa sinciphisa kakhulu umngcipheko wokuqhekeka okungalindelekanga kunye nokothusayo kuthi.

Ewe kunjalo, ngaphandle kokusilela, nangona kunjalo silandela uqeqesho olucacileyo ngexesha lophuhliso:

  1. Uvavanyo lwesampula.
  2. Uvavanyo lweA/B okanye iiCanaries.
  3. Ukukhutshwa okuqhubekekayo.

Ngeesampuli, indlela ichazwe ngayo - utshintsho luvavanywa kuqala kusetyenziswa iresiphi eyenziwe ngokwezifiso.

Kuvavanyo lwe-canary, kufuneka sifumane izibini ezifanayo zeeseva apho sinokuthelekisa indlela inkqubo esebenza ngayo ngaphambi nangemva kotshintsho. Ukwenza oku, kwiindawo zethu ezininzi ze-CDN, sikhetha izibini zeeseva ezifumana i-traffic efanayo:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Emva koko sifaka isakhiwo kunye neenguqu kwiseva yeCanary. Ukuvavanya iziphumo, siqhuba inkqubo ethelekisa malunga ne-100-150 yeemetrics kunye nesampulu yeeseva zoLawulo:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ukuba uvavanyo lweCanary luphumelele, ngoko siyayikhulula ngokuthe ngcembe, ngamaza. Asihlaziyi iiseva kwindawo nganye ngexesha elinye - ukulahlekelwa yisayithi yonke ngenxa yeengxaki kunempembelelo ebalulekileyo kwinkonzo kubasebenzisi kunokulahlekelwa inani elifanayo leeseva kwiindawo ezahlukeneyo.

Ngokubanzi, ukusebenza kunye nokhuseleko lwale ndlela kuxhomekeke kubungakanani kunye nomgangatho weemethrikhi eziqokelelweyo. Kwinkqubo yethu yokukhawulezisa imibuzo, siqokelela iimetrics kuwo onke amacandelo anokwenzeka:

  • ukusuka kubaxhasi - inani leeseshoni kunye nezicelo, iireyithi zokubuyela emva;
  • ummeli - iinkcukacha-manani kwinani kunye nexesha lezicelo;
  • I-DNS - inombolo kunye neziphumo zezicelo;
  • cloud edge - inombolo kunye nexesha lokuqhuba izicelo kwilifu.

Konke oku kuqokelelwa kumbhobho omnye, kwaye, ngokuxhomekeke kwiimfuno, sithatha isigqibo sokuba yeyiphi i-metrics ekufuneka siyithumele kuhlalutyo lwexesha langempela, kunye ne-Elasticsearch okanye iDatha enkulu yoxilongo oluneenkcukacha.

Sibeka iliso

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Kwimeko yethu, senza utshintsho kwindlela ebalulekileyo yezicelo phakathi komxhasi kunye nomncedisi. Kwangaxeshanye, inani lamacandelo ahlukeneyo kumxhasi, kumncedisi, kunye nendlela ye-Intanethi likhulu. Utshintsho kumthengi kunye nomncedisi lwenzeka rhoqo - ngexesha lomsebenzi wamaqela amaninzi kunye notshintsho lwendalo kwi-ecosystem. Siphakathi - xa sixilonga iingxaki, maninzi amathuba okuba sithathe inxaxheba. Ngoko ke, kufuneka siqonde ngokucacileyo indlela yokuchaza, ukuqokelela kunye nokuhlalutya i-metrics ukuhlukanisa ngokukhawuleza iingxaki.

Ngokufanelekileyo, ukufikelela okugcweleyo kuzo zonke iintlobo zeemethrikhi kunye nezihluzi ngexesha lokwenyani. Kodwa zininzi iimetriki, ngoko ke umbuzo weendleko uvela. Kwimeko yethu, sahlula i-metrics kunye nezixhobo zophuhliso ngolu hlobo lulandelayo:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ukubona kunye nokujonga iingxaki sisebenzisa eyethu inkqubo yexesha lokwenyani lomthombo ovulekileyo iatlasi ΠΈ Lumen -yokubonwa. Igcina i-aggregated metrics kwimemori, ithembekile kwaye idibanisa nenkqubo yokwazisa. Ukufumana indawo kunye nokuxilongwa, sinokufikelela kwiilogi ezivela kwi-Elasticsearch kunye ne-Kibana. Uhlalutyo lwamanani kunye nomzekelo, sisebenzisa idatha enkulu kunye nokubonwayo kwiThebhile.

Kubonakala ngathi le ndlela inzima kakhulu ukusebenza nayo. Nangona kunjalo, ngokulungelelanisa iimethrikhi kunye nezixhobo ngokoluhlu, sinokuyihlalutya ngokukhawuleza ingxaki, sigqibe uhlobo lwengxaki, kwaye emva koko siqhubele phantsi kwiimethrikhi ezineenkcukacha. Ngokubanzi, sichitha malunga nemizuzu eyi-1-2 ukuchonga umthombo wokuqhekeka. Emva koku, sisebenza kunye neqela elithile kwi-diagnostics - ukusuka kumashumi emizuzu ukuya kwiiyure ezininzi.

Nokuba uxilongo lwenziwe ngokukhawuleza, asifuni ukuba oku kwenzeke rhoqo. Ngokufanelekileyo, siya kufumana kuphela isilumkiso esibalulekileyo xa kukho impembelelo ebalulekileyo kwinkonzo. Kwinkqubo yethu yokukhawulezisa imibuzo, sinezilumkiso ezi-2 kuphela eziya kwazisa:

  • Ipesenti yeClient Fallback - uvavanyo lokuziphatha kwabathengi;
  • ipesenti Probe iimpazamo - data uzinzo amacandelo womnatha.

Ezi zilumkiso zibalulekileyo zibeka esweni ukuba inkqubo isebenzela uninzi lwabasebenzisi. Sijonga ukuba bangaphi abathengi abasebenzisa i-fallback ukuba abakwazanga ukufumana ukukhawuleziswa kwesicelo. Sithatha i-avareji engaphantsi kwe-1 isilumkiso esibalulekileyo ngeveki, nangona kukho itoni yotshintsho oluqhubekayo kwinkqubo. Kutheni oku kusanele nje kuthi?

  1. Kukho umxhasi obuyela umva ukuba iproksi yethu ayisebenzi.
  2. Kukho inkqubo yokulawula ezenzekelayo ephendula kwiingxaki.

Iinkcukacha ezingakumbi malunga nale yokugqibela. Inkqubo yethu yovavanyo, kunye nenkqubo yokumisela ngokuzenzekelayo indlela efanelekileyo yezicelo ezivela kumxhasi ukuya kwilifu, ivumela ukuba sihlangabezane neengxaki ezithile ngokuzenzekelayo.

Masibuyele kuqwalaselo lwethu lwesampulu kunye neendlela ezi-3. Ukongeza kwixesha lokulayisha, sinokujonga inyani yokuhambisa ngokwayo. Ukuba kwakungenakwenzeka ukulayisha idatha, ngoko ngokujonga iziphumo kwiindlela ezahlukeneyo sinokumisela ukuba kuphi kwaye yintoni eyaphukileyo, kwaye ingaba sinokuyilungisa ngokuzenzekelayo ngokutshintsha indlela yokucela.

imizekelo:

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Le nkqubo inokuzenzekela. Yifake kwisixokelelwano sokuqhuba. Kwaye uyifundise ukuphendula kwiingxaki zokusebenza kunye nokuthembeka. Ukuba kukho into eqala ukuphuka, phendula ukuba kukho ukhetho olungcono. Kwangaxeshanye, impendulo ekhawulezileyo ayibalulekanga, ngenxa yokubuyela umva kubathengi.

Ke, imigaqo yenkxaso yenkqubo inokuqulunqwa ngolu hlobo lulandelayo:

  • ukunciphisa ubungakanani bokuqhekeka;
  • ukuqokelela imilinganiselo;
  • Sizilungisa ngokuzenzekelayo izinto ezaphukileyo ukuba sinako;
  • ukuba ayikwazi, siyakwazisa;
  • Sisebenza kwiideshibhodi kunye neseti yesixhobo sokuphinda siphendule ngokukhawuleza.

Izifundo Ezifundiweyo

Ayithathi ixesha elininzi ukubhala iprototype. Kwimeko yethu, yayilungile emva kweenyanga ezi-4. Ngayo safumana iimethrikhi ezintsha, kwaye emva kweenyanga ezili-10 emva kokuqala kophuhliso safumana i-traffic yokuqala yemveliso. Emva koko kwaqala umsebenzi odinisayo kwaye unzima kakhulu: ngokuthe ngcembe velisa kwaye ulinganise inkqubo, fuduka eyona ndlela iphambili yetrafikhi kwaye ufunde kwiimpazamo. Nangona kunjalo, le nkqubo isebenzayo ayiyi kuba ngumgca - ngaphandle kwayo yonke imizamo, yonke into ayinakuqikelelwa. Kusebenza ngakumbi ukuphindaphinda ngokukhawuleza kwaye uphendule kwidatha entsha.

Khawulezisa izicelo ze-intanethi kwaye ulale ngoxolo

Ngokusekelwe kumava ethu, sinokucebisa oku kulandelayo:

  1. Musa ukuthemba intuition yakho.

    Intuition yethu yasilela rhoqo, ngaphandle kwamava amaninzi amalungu eqela lethu. Ngokomzekelo, siye saqikelela ngokungalunganga ukukhawuleza okulindelekileyo ekusebenziseni i-CDN proxy, okanye ukuziphatha kwe-TCP Anycast.

  2. Fumana idatha kwimveliso.

    Kubalulekile ukufikelela ubuncinane kwinani elincinci ledatha yemveliso ngokukhawuleza. Kuphantse ukuba akunakwenzeka ukufumana inani leemeko ezizodwa, ulungelelwaniso, kunye nezicwangciso kwiimeko zebhubhoratri. Ukufikelela ngokukhawuleza kwiziphumo kuya kukuvumela ukuba ufunde ngokukhawuleza malunga neengxaki ezinokuthi uzithathele ingqalelo kwi-architecture yenkqubo.

  3. Musa ukulandela iingcebiso zabanye abantu kunye neziphumo - qokelela idatha yakho.

    Landela imigaqo yokuqokelela kunye nokuhlalutya idatha, kodwa musa ukwamkela ngokumfamekileyo iziphumo kunye neengxelo zabanye abantu. Nguwe kuphela ongazi kakuhle ukuba yintoni esebenzela abasebenzisi bakho. Iinkqubo zakho kunye nabathengi bakho banokwahluka kakhulu kwezinye iinkampani. Ngethamsanqa, izixhobo zokuhlalutya ziyafumaneka ngoku kwaye kulula ukuzisebenzisa. Iziphumo ozifumanayo aziyiyo into efunwa yiNetflix, Facebook, Akamai kunye nezinye iinkampani. Kwimeko yethu, ukusebenza kwe-TLS, i-HTTP2 okanye izibalo kwizicelo ze-DNS zihluke kwiziphumo ze-Facebook, Uber, Akamai - kuba sinezixhobo ezahlukeneyo, abathengi kunye nokuhamba kwedatha.

  4. Sukulandela ifashoni ngokungeyomfuneko kwaye uvavanye ukusebenza kakuhle.

    Qala ngokulula. Kungcono ukwenza inkqubo yokusebenza elula ngexesha elifutshane kunokuchitha ixesha elininzi uphuhlisa amacandelo ongawadingiyo. Sombulula imisebenzi kunye neengxaki ezibalulekileyo ngokusekelwe kwimilinganiselo yakho kunye neziphumo.

  5. Zilungiselele usetyenziso olutsha.

    Kanye njengokuba kunzima ukuqikelela zonke iingxaki, kunzima ukuqikelela izibonelelo kunye nezicelo kwangaphambili. Thatha inqaku ukusuka ekuqaleni - ukukwazi kwabo ukuziqhelanisa neemeko zabathengi. Kwimeko yakho, unokufumanisa iingxaki ezintsha kunye nezisombululo zazo. Kwiprojekthi yethu, sibeka injongo yokunciphisa i-latency yesicelo. Nangona kunjalo, ngexesha lohlalutyo kunye neengxoxo, siye safumanisa ukuba sinokusebenzisa iiseva zommeli:

    • ukulinganisa i-traffic kwimimandla ye-AWS kunye nokunciphisa iindleko;
    • ukwenza imodeli yokuzinza kweCDN;
    • ukuqwalasela iDNS;
    • ukuqwalasela i TLS/TCP.

isiphelo

Kwingxelo, ndichaze indlela iNetflix isombulula ngayo ingxaki yokukhawulezisa izicelo ze-Intanethi phakathi kwabathengi kunye nelifu. Siqokelela njani idatha sisebenzisa inkqubo yesampulu kubathengi, kwaye sisebenzise idatha yembali eqokelelweyo ukuhambisa izicelo zemveliso kubathengi ngeyona ndlela ikhawulezayo kwi-Intanethi. Indlela esisebenzisa ngayo imigaqo yeeprothokholi zenethiwekhi, iziseko zethu ze-CDN, inethiwekhi ye-backbone, kunye neeseva ze-DNS ukufezekisa lo msebenzi.

Nangona kunjalo, isisombululo sethu ngumzekelo wendlela thina kwiNetflix esiphumeze ngayo inkqubo enjalo. Yintoni esisebenzeleyo. Inxalenye esetyenzisiweyo yengxelo yam kuwe yimigaqo yophuhliso kunye nenkxaso esiyilandelayo kwaye sizuze iziphumo ezilungileyo.

Isisombululo sethu kwingxaki sinokungakufanelanga. Nangona kunjalo, ithiyori kunye nemigaqo yoyilo ihleli, nokuba awunayo isiseko sakho se-CDN, okanye ukuba ihluke kakhulu kweyethu.

Ukubaluleka kwesantya sezicelo zeshishini nako kuhlala kubalulekile. Kwaye nakwinkonzo elula kufuneka wenze ukhetho: phakathi kwababoneleli befu, indawo yomncedisi, ababoneleli be-CDN kunye ne-DNS. Ukhetho lwakho luya kuba nefuthe ekusebenzeni kwemibuzo ye-Intanethi kubathengi bakho. Kwaye kubalulekile ukuba ulinganise kwaye uqonde le mpembelelo.

Qala ngezisombululo ezilula, khathalela malunga nendlela oyitshintsha ngayo imveliso. Funda njengoko usiya kwaye uphucule inkqubo esekwe kwidatha evela kubathengi bakho, iziseko zakho, kunye neshishini lakho. Cinga malunga nokwenzeka kokuqhekeka okungalindelekanga ngexesha lenkqubo yoyilo. Kwaye ke unokukhawulezisa inkqubo yakho yophuhliso, uphucule ukusebenza kakuhle kwesisombululo, unqande umthwalo wenkxaso ongeyomfuneko kwaye ulale ngoxolo.

Lo nyaka inkomfa iya kubanjwa ukususela ngoJulayi 6 ukuya 10 kwifomathi ye-intanethi. Unokubuza imibuzo komnye wootata be-DevOps, uJohn Willis ngokwakhe!

umthombo: www.habr.com

Yongeza izimvo