Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Netflix bụ onye ndu n'ahịa telivishọn ịntanetị - ụlọ ọrụ nke mepụtara ma na-arụsi ọrụ ike na-emepe akụkụ a. A maara Netflix ọ bụghị naanị maka nnukwu katalọgụ nke ihe nkiri na usoro TV dị na ihe fọrọ nke nta ka ọ bụrụ akụkụ niile nke ụwa na ngwaọrụ ọ bụla nwere ngosipụta, kamakwa maka akụrụngwa ntụkwasị obi ya na ọdịbendị injinịa pụrụ iche.

Ihe atụ doro anya nke ụzọ Netflix si etolite na ịkwado sistemụ dị mgbagwoju anya ka ewepụtara na DevOops 2019 Sergey Fedorov - Onye isi mmepe na Netflix. Gụsịrị akwụkwọ na ngalaba nke mgbakọ na mwepụ na mgbakọ na mwepụ nke Nizhny Novgorod State University. Lobachevsky, Sergey, otu n'ime ndị injinia mbụ na Open Connect - CDN otu na Netflix. O wuru usoro maka nleba anya na nyochaa data vidiyo, malite ọrụ na-ewu ewu maka nyochaa ọsọ njikọ Ịntanetị FAST.com, na afọ ole na ole gara aga na-arụ ọrụ na ịkwalite arịrịọ Ịntanetị ka ngwa Netflix wee rụọ ọrụ ngwa ngwa maka ndị ọrụ.

Akụkọ ahụ nwetara nlebanya kachasị mma site n'aka ndị sonyere ọgbakọ, anyị akwadolarị gị ụdị ederede.

N'akụkọ ya, Sergei kwuru n'ụzọ zuru ezu

  • banyere ihe na-emetụta igbu oge nke arịrịọ Ịntanetị n'etiti onye ahịa na ihe nkesa;
  • otu esi ebelata oge a;
  • otu esi emepụta, na-echekwa na nyochaa usoro na-anabata njehie;
  • otu esi enweta nsonaazụ na obere oge, yana obere ihe ize ndụ maka azụmahịa;
  • otu esi enyocha nsonaazụ wee mụta ihe site na mmejọ.

Azịza nye ajụjụ ndị a dị mkpa ọ bụghị naanị ndị na-arụ ọrụ na nnukwu ụlọ ọrụ.

Ụkpụrụ na usoro ndị a gosipụtara kwesịrị ịmara ma mee ya site n'aka onye ọ bụla na-emepụta ma na-akwado ngwaahịa Ịntanetị.

Nke na-esote bụ akụkọ sitere n'echiche nke ọkà okwu.

Mkpa nke ịntanetị ọsọ

Ọsọ nke arịrịọ ịntanetị metụtara azụmahịa ozugbo. Tụlee ụlọ ọrụ ịzụ ahịa: Amazon na 2009 kwuruna igbu oge 100ms na-ebute mfu nke 1% nke ahịa.

Enwere ọtụtụ ngwaọrụ mkpanaka, saịtị mkpanaka na ngwa sochiri ya. Ọ bụrụ na ibe gị na-ewe ihe karịrị 3 sekọnd iji buo ya, ihe dị ka ọkara ndị ọrụ gị na-efunahụ gị. NA Julaị 2018 Google na-eburu n'uche ọsọ nbudata nke ibe gị na nsonaazụ ọchụchọ: ka ibe ahụ na-agba ọsọ, ọkwa ya dị elu na Google.

Ọsọ njikọ dịkwa mkpa na ụlọ ọrụ ego ebe ịla azụ dị oke mkpa. Na 2015, Hibernia Networks emechara eriri $400 nde n'etiti New York na London iji belata nkwụsị n'etiti obodo site na 6ms. Cheedị echiche $66 nde maka 1 ms nke mbelata latency!

Dị ka nyocha, Njikọ ọsọ karịa 5 Mbit/s anaghị emetụta ozugbo nbudata ọsọ nke weebụsaịtị. Agbanyeghị, enwere mmekọrịta dị n'etiti njide njikọ yana ọsọ nbudata ibe:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Agbanyeghị, Netflix abụghị ngwaahịa a na-ahụkarị. Mmetụta nke latency na ọsọ na onye ọrụ bụ mpaghara na-arụ ọrụ nke nyocha na mmepe. Enwere ntinye ngwa na nhọrọ ọdịnaya nke dabere na latency, mana itinye ihe static na nkwanye na-adaberekwa na ọsọ njikọ. Nyochaa na ịkwalite ihe ndị bụ isi na-emetụta ahụmịhe onye ọrụ bụ mpaghara mmepe maka ọtụtụ otu na Netflix. Otu n'ime ebumnuche bụ iji belata nkwụsị nke arịrịọ n'etiti ngwaọrụ Netflix na akụrụngwa igwe ojii.

N'ime akụkọ ahụ, anyị ga-elekwasị anya kpọmkwem n'ịbelata nkwụsịtụ site na iji ihe atụ nke akụrụngwa Netflix. Ka anyị tụlee site na echiche bara uru otú e si abịarute usoro nke imewe, mmepe na ọrụ nke mgbagwoju anya nkesa usoro na-etinye oge na ọhụrụ na pụta, kama diagnosing arụmọrụ nsogbu na mmebi.

N'ime Netflix

Ọtụtụ puku ngwaọrụ dị iche iche na-akwado ngwa Netflix. Ndị otu anọ dị iche iche mepụtara ha, nke na-eme ụdị dị iche iche nke onye ahịa maka gam akporo, iOS, TV na ihe nchọgharị weebụ. Anyị na-etinyekwa nnukwu mbọ n'ịkwalite na ịhazi ahụmịhe onye ọrụ. Iji mee nke a, anyị na-agba ọtụtụ narị ule A/B n'otu aka ahụ.

A na-akwado nhazi onwe ya site na narị narị microservices na igwe ojii AWS, na-enye data onye ọrụ ahaziri ahazi, izipu ajụjụ, telemetry, Big Data na Encoding. Ọhụụ okporo ụzọ dị ka nke a:

Njikọ na vidiyo nwere ihe ngosi (6:04-6:23)

N'aka ekpe bụ ebe ntinye, mgbe ahụ, a na-ekesa okporo ụzọ n'etiti ọtụtụ narị microservices nke ndị otu azụ azụ dị iche iche na-akwado.

Akụkụ ọzọ dị mkpa nke akụrụngwa anyị bụ Open Connect CDN, nke na-ebuga ọdịnaya kwụ ọtọ nye onye ọrụ njedebe - vidiyo, onyonyo, koodu ndị ahịa, wdg. CDN dị na sava omenala (OCA - Mepee Ngwa Njikọ). N'ime enwere usoro SSD na HDD na-agba ọsọ FreeBSD, yana NGINX yana otu ọrụ. Anyị na-echepụta ma na-ebuli ngwaike na ngwa ngwanrọ ka ihe nkesa CDN dị otú ahụ nwee ike iziga ndị ọrụ data dị ka o kwere mee.

“Mgbidi” nke sava ndị a na ebe mgbanwe okporo ụzọ ịntanetị (Internet eXchange - IX) dị ka nke a:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Mgbanwe Ịntanetị na-enye ikike maka ndị na-enye ọrụ Ịntanetị na ndị na-eweta ọdịnaya ka ha "jikọọ" n'etiti ibe ha ka ha gbanwee data ozugbo na Ịntanetị. Enwere ihe dị ka ebe mgbanwe ịntanetị 70-80 gburugburu ụwa ebe arụnyere sava anyị, anyị na-etinye onwe anyị ma na-edobe ha:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Na mgbakwunye, anyị na-enyekwa ndị na-eweta ịntanetị sava ozugbo, nke ha na-etinye na netwọkụ ha, na-emeziwanye mpaghara nke okporo ụzọ Netflix na ogo nkwanye ugwu maka ndị ọrụ:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Otu ọrụ AWS bụ maka izipu arịrịọ vidiyo site n'aka ndị ahịa na sava CDN, yana ịhazi sava n'onwe ha - imelite ọdịnaya, koodu mmemme, ntọala, wdg. Maka nke ikpeazụ, anyị wukwara netwọkụ azụ azụ nke na-ejikọta sava na ebe mgbanwe Ịntanetị na AWS. Netwọk azụ azụ bụ netwọk zuru ụwa ọnụ nke eriri fiber optic na ndị na-anya ụgbọ mmiri nke anyị nwere ike ịmepụta na ịhazi dabere na mkpa anyị.

Site Atụmatụ Sandvine, akụrụngwa CDN anyị na-ebuga ihe dịka ⅛ nke okporo ụzọ ịntanetị n'ụwa n'oge awa kacha elu yana ⅓ nke okporo ụzọ na North America, ebe Netflix nọrọla ogologo oge. Ọnụọgụ na-adọrọ adọrọ, mana maka m otu n'ime ihe ndị kachasị ịtụnanya bụ na usoro CDN dum na-emepụta ma na-elekọta ya site na otu ndị na-erughị mmadụ 150.

Na mbido, e mere akụrụngwa CDN iji wepụta data vidiyo. Agbanyeghị, ka oge na-aga, anyị chọpụtara na anyị nwekwara ike iji ya bulie arịrịọ ike sitere n'aka ndị ahịa na igwe ojii AWS.

Banyere ngwa ngwa ịntanetị

Taa, Netflix nwere mpaghara 3 AWS, na nkwụsị nke arịrịọ na ígwé ojii ga-adabere n'otú onye ahịa si dị na mpaghara kacha nso. N'otu oge ahụ, anyị nwere ọtụtụ sava CDN nke a na-eji ewepụta ọdịnaya kwụ ọtọ. Ọ nwere ụzọ ọ bụla isi jiri usoro a mee ka ajụjụ dị ike dị ngwa? Agbanyeghị, ọ dị nwute, ọ gaghị ekwe omume ịchekwa arịrịọ ndị a - API bụ ahaziri onwe yana nsonaazụ ọ bụla pụrụ iche.

Ka anyị mee proxy na sava CDN wee malite izipu okporo ụzọ site na ya. Ọ ga-adị ngwa ngwa?

Materiel

Ka anyị cheta ka usoro netwọkụ si arụ ọrụ. Taa, ọtụtụ okporo ụzọ na ịntanetị na-eji HTTPs, nke dabere na protocol ala oyi akwa TCP na TLS. Ka onye ahịa wee jikọọ na ihe nkesa ahụ, ọ na-eme aka, na iji guzobe njikọ dị nchebe, onye ahịa kwesịrị ịgbanwe ozi na ihe nkesa ugboro atọ na ọ dịkarịa ala otu oge ọzọ iji nyefee data. Site na nkwụsịtụ kwa njem okirikiri (RTT) nke 100 ms, ọ ga-ewe anyị 400 ms iji nweta ntakịrị data mbụ:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Ọ bụrụ na anyị etinye asambodo na ihe nkesa CDN, mgbe ahụ oge aka n'etiti onye ahịa na ihe nkesa nwere ike belata nke ukwuu ma ọ bụrụ na CDN dị nso. Ka anyị were na nkwụsịtụ na sava CDN bụ 30ms. Mgbe ahụ ọ ga-ewe 220 ms iji nweta bit nke mbụ:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Mana uru adịghị akwụsị ebe ahụ. Ozugbo emechara njikọ, TCP na-abawanye windo nchikota (ọnụọgụ ozi ọ nwere ike ibunye na njikọ ahụ n'otu oge). Ọ bụrụ na ngwugwu data efunahụ, mgbe ahụ mmejuputa iwu nke TCP protocol (dị ka TCP New Reno) na-ebelata "window" mepere emepe site na ọkara. Uto nke windo mkpọchi, na ọsọ nke mgbake ya site na ọnwụ ọzọ na-adabere na igbu oge (RTT) na ihe nkesa. Ọ bụrụ na njikọ a na-aga naanị ihe nkesa CDN, mgbake a ga-adị ngwa ngwa. N'otu oge ahụ, mfu ngwugwu bụ ihe ngosi ọkọlọtọ, karịsịa maka netwọk ikuku.

Enwere ike ibelata bandwidth ịntanetị, ọkachasị n'oge awa kacha elu, n'ihi okporo ụzọ sitere n'aka ndị ọrụ, nke nwere ike ibute mkpọmkpọ ebe. Otú ọ dị, ọ dịghị ụzọ ọ bụla n'Internet isi tinye arịrịọ ụfọdụ ụzọ karịa ndị ọzọ. Dịka ọmụmaatụ, nye obere arịrịọ na-enwe mmetụta uche ụzọ karịa iyi data "dị arọ" na-ebu netwọk. Otú ọ dị, n'ọnọdụ anyị, inwe netwọk azụ azụ nke anyị na-enye anyị ohere ime nke a n'akụkụ nke ụzọ arịrịọ - n'etiti CDN na ígwé ojii, anyị nwere ike ịhazi ya nke ọma. Ị nwere ike ijide n'aka na a na-ebute obere ngwugwu na-adịghị ike na-ebute ụzọ, na nnukwu data na-aga n'ihu obere oge. Ka CDN dị nso na onye ahịa, otú ahụ ka arụmọrụ dị ukwuu.

Usoro ọkwa ọkwa ngwa (OSI Level 7) nwekwara mmetụta na ịla oge. Protocol ọhụrụ dị ka HTTP/2 na-ebuli arụmọrụ nke arịrịọ ndị yiri ya. Agbanyeghị, anyị nwere ndị ahịa Netflix nwere ngwaọrụ ochie na-akwadoghị usoro iwu ọhụrụ ahụ. Ọ bụghị ndị ahịa niile nwere ike imelite ma ọ bụ hazie nke ọma. N'otu oge ahụ, n'etiti CDN proxy na ígwé ojii nwere njikwa zuru oke na ikike iji usoro ọhụrụ na ntọala kachasị mma. Akụkụ na-adịghị arụ ọrụ nwere ụkpụrụ ochie ga-arụ ọrụ naanị n'etiti onye ahịa na ihe nkesa CDN. Ọzọkwa, anyị nwere ike ịrịọ multiplex arịrịọ na njikọ eguzobelarị n'etiti CDN na ígwé ojii, na-emeziwanye njikọ njikọ na ọkwa TCP:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Anyị tụrụ

N'agbanyeghị eziokwu na tiori na-ekwe nkwa ndozi, anyị adịghị ngwa ngwa na-amalite usoro na mmepụta. Kama, anyị ga-ebu ụzọ gosi na echiche ahụ ga-arụ ọrụ n'omume. Iji mee nke a, ị ga-aza ọtụtụ ajụjụ:

  • Ngwa ọsọ: proxy ga-adị ngwa ngwa?
  • Pụrụ ịdabere: Ọ ga-agbaji ugboro ugboro?
  • Ihe mgbagwoju anya: otu esi ejikọta na ngwa?
  • -eri nke: Ego ole ka ọ na-eri iji wepụta akụrụngwa ndị ọzọ?

Ka anyị tụlee nke ọma ụzọ anyị si enyocha isi ihe nke mbụ. A na-emeso ndị ọzọ n'otu ụzọ ahụ.

Iji nyochaa ọsọ nke arịrịọ, anyị chọrọ ịnweta data maka ndị ọrụ niile, na-etinyeghị oge dị ukwuu na mmepe na-enweghị imebi mmepụta. Enwere ụzọ dị iche iche maka nke a:

  1. RUM, ma ọ bụ nha arịrịọ ngafe. Anyị na-atụle oge mmezu nke arịrịọ ndị ọrụ ugbu a ma hụ na mkpuchi onye ọrụ zuru ezu. Ihe ọghọm bụ na mgbaàmà adịghị eguzosi ike n'ihi ọtụtụ ihe, dịka ọmụmaatụ, n'ihi nha arịrịọ dị iche iche, oge nhazi na ihe nkesa na onye ahịa. Na mgbakwunye, ị nweghị ike ịnwale nhazi ọhụrụ na-enweghị mmetụta na mmepụta.
  2. Nyocha ụlọ nyocha. Sava pụrụ iche na akụrụngwa na-eme ka ndị ahịa. Site n'enyemaka ha, anyị na-eme ule ndị dị mkpa. Otu a anyị na-enweta njikwa zuru oke na nsonaazụ nha yana akara doro anya. Mana enweghị mkpuchi zuru oke nke ngwaọrụ na ebe onye ọrụ (karịsịa na ọrụ zuru ụwa ọnụ yana nkwado maka ọtụtụ puku ụdị ngwaọrụ).

Kedu ka ị ga-esi jikọta uru nke ụzọ abụọ ahụ?

Ndị otu anyị achọtala ngwọta. Anyị dere obere koodu - ihe atụ - nke anyị wuru n'ime ngwa anyị. Nyocha na-enye anyị ohere ịme ule netwọk zuru oke site na ngwaọrụ anyị. Ọ na-arụ ọrụ dị ka nke a:

  1. N'oge na-adịghị mgbe ebudatara ngwa ahụ ma mechaa ọrụ mbụ, anyị na-eme nyocha anyị.
  2. Onye ahịa ahụ na-arịọ arịrịọ na ihe nkesa wee nata "ntụgharị" maka ule ahụ. Ntụziaka bụ ndepụta URL nke achọrọ ka emee arịrịọ HTTP. Na mgbakwunye, usoro nhazi ahụ na-ahazi usoro arịrịọ: igbu oge n'etiti arịrịọ, ọnụọgụ data achọrọ, nkụnye eji isi mee HTTP, wdg. N'otu oge ahụ, anyị nwere ike ịnwale ọtụtụ ntụziaka dị iche iche n'otu oge - mgbe ị na-arịọ nhazi, anyị na-ekpebi usoro nhazi nke ga-enye.
  3. A na-ahọrọ oge mmalite nyocha ka ọ ghara ịlụ ọgụ na iji akụrụngwa netwọk arụ ọrụ na onye ahịa. N'ikpeazụ, a na-ahọrọ oge mgbe onye ahịa anaghị arụ ọrụ.
  4. Mgbe ị nwetachara uzommeputa, onye ahịa na-arịọ arịrịọ URL ọ bụla, n'otu aka ahụ. Arịrịọ nke ọ bụla n'ime adreesị nwere ike ugboro ugboro - nke a na-akpọ. "ụkpụrụ". Na pulse nke mbụ, anyị na-atụ ogologo oge ọ were iji guzobe njikọ na nbudata data. Na pulse nke abụọ, anyị na-atụ oge ọ na-ewe iji buo data n'elu njikọ etinyerelarị. Tupu nke atọ, anyị nwere ike ịtọ oge igbu oge wee tụọ ọsọ nke ịmepụta njikọ ọzọ, wdg.

    N'oge ule, anyị na-atụle paramita niile ngwaọrụ nwere ike nweta:

    • oge arịrịọ DNS;
    • oge nhazi njikọ TCP;
    • oge nhazi njikọ TLS;
    • oge ịnata byte mbụ nke data;
    • ngụkọta oge nbudata;
    • koodu nsonaazụ ọkwa.
  5. Mgbe pulses niile gwụchara, ihe nlele ahụ na-ebu nha niile maka nyocha.

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Isi ihe bụ ịdabere ntakịrị na mgbagha na onye ahịa, nhazi data na ihe nkesa yana nha nke arịrịọ ndị yiri ya. Ya mere, anyị na-enwe ike ikewapụ ma nwalee mmetụta nke ihe dị iche iche na-emetụta arụmọrụ ajụjụ, gbanwee ha n'ime otu uzommeputa, ma nweta nsonaazụ sitere na ezigbo ndị ahịa.

Akụrụngwa a egosila na ọ bara uru karịa naanị nyocha arụmọrụ ajụjụ. Ugbu a, anyị nwere ntụziaka 14 na-arụ ọrụ, ihe karịrị 6000 samples kwa nkeji, na-enweta data sitere n'akụkụ niile nke ụwa na mkpuchi ngwaọrụ zuru ezu. Ọ bụrụ na Netflix zụtara ọrụ yiri nke ahụ n'aka ndị ọzọ, ọ ga-efu ọtụtụ nde dollar kwa afọ, yana mkpuchi ka njọ.

Tiori ule na omume: prototype

Site na usoro dị otú ahụ, anyị nwere ike nyochaa ịdị irè nke proxies CDN na arịrịọ latency. Ugbu a ị chọrọ:

  • mepụta proxy prototype;
  • tinye prototype na CDN;
  • chọpụta ka esi eduzi ndị ahịa na proxy na otu ihe nkesa CDN;
  • Tụlee ịrụ ọrụ na arịrịọ na AWS na-enweghị onye nnọchiteanya.

Ọrụ a bụ iji nyochaa ịdị irè nke ngwọta a chọrọ ngwa ngwa o kwere mee. Anyị họọrọ Go iji mejuputa atumatu n'ihi na enwere ezigbo ọba akwụkwọ netwọk. Na nkesa CDN nke ọ bụla, anyị rụnyere proxy prototype ka ọnụọgụ abụọ kwụ ọtọ iji belata ịdabere na ime ka njikọta dị mfe. Na mmejuputa mbụ, anyị na-eji ọkọlọtọ ọkọlọtọ dị ka o kwere mee yana obere mgbanwe maka njikọ HTTP/2 na-arịọ arịrịọ multiplexing.

Iji dozie n'etiti mpaghara AWS, anyị na-eji ebe nchekwa data DNS mpaghara, otu nke a na-eji edozi ndị ahịa. Iji họrọ ihe nkesa CDN maka onye ahịa, anyị na-eji TCP Anycast maka sava na Internet Exchange (IX). Na nhọrọ a, anyị na-eji otu adreesị IP maka sava CDN niile, a ga-eduru onye ahịa ahụ na sava CDN nwere ọnụ ọgụgụ IP hops kacha nta. Na sava CDN arụnyere nke ndị na-eweta ịntanetị (ISPs), anyị enweghị njikwa rawụta iji hazie TCP Anycast, yabụ anyị na-eji. otu mgbagha, nke na-eduzi ndị ahịa na ndị na-eweta ịntanetị maka nkwanye vidiyo.

Yabụ, anyị nwere ụdị ụzọ arịrịọ atọ: na igwe ojii site na ịntanetị mepere emepe, site na sava CDN na IX, ma ọ bụ site na sava CDN dị na onye na-eweta ịntanetị. Ebumnuche anyị bụ ịghọta ụzọ ka mma, na kedu uru nke proxy, ma e jiri ya tụnyere otu esi eziga arịrịọ na mmepụta. Iji mee nke a, a na-eji usoro nhazi usoro dị ka ndị a:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Ụzọ nke ọ bụla na-aghọ ihe mgbaru ọsọ dị iche iche, anyị na-elekwa anya oge anyị nwetara. Maka nyocha, anyị na-ejikọta nsonaazụ proxy n'ime otu otu (họrọ oge kachasị mma n'etiti proxies IX na ISP), wee jiri ya tụnyere oge arịrịọ igwe ojii na-enweghị onye nnọchiteanya:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Dị ka ị pụrụ ịhụ, e gwakọtara nsonaazụ ya - n'ọtụtụ ọnọdụ, proxy na-enye ezigbo ọsọ ọsọ, mana enwerekwa ọnụ ọgụgụ zuru oke nke ndị ahịa nke ọnọdụ ahụ ga-akawanye njọ.

N'ihi ya, anyị mere ọtụtụ ihe dị mkpa:

  1. Anyị nyochara ọrụ a na-atụ anya na arịrịọ sitere n'aka ndị ahịa gaa na igwe ojii site na proxy CDN.
  2. Anyị nwetara data sitere na ezigbo ndị ahịa, site na ụdị ngwaọrụ niile.
  3. Anyị ghọtara na ekwenyeghị na tiori ahụ 100% na onyinye mbụ ya na proxy CDN agaghị arụ ọrụ maka anyị.
  4. Anyị etinyeghị ihe egwu - anyị agbanweghị nhazi mmepụta maka ndị ahịa.
  5. Ọ dịghị ihe gbajiri.

Prototype 2.0

Ya mere, laghachi na ịbịaru osisi ma megharịa usoro ahụ ọzọ.

Echiche bụ na kama iji proxy 100%, anyị ga-ekpebi ụzọ kachasị ngwa ngwa maka onye ahịa ọ bụla, anyị ga-eziga arịrịọ ebe ahụ - ya bụ, anyị ga-eme ihe a na-akpọ steering ahịa.

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Kedu ka esi etinye ihe a? Anyị enweghị ike iji mgbagha n'akụkụ nkesa, n'ihi na ... Ebumnuche bụ ijikọ na ihe nkesa a. Ọ dị mkpa ka enwere ụzọ iji mee nke a na onye ahịa. Na kacha mma, mee nke a na opekempe nke mgbagwoju anya mgbagha, ka ị ghara dozie okwu nke mwekota na ọnụ ọgụgụ buru ibu nke ahịa nyiwe.

Azịza ya bụ iji DNS. N'ọnọdụ anyị, anyị nwere akụrụngwa DNS nke anyị, anyị nwekwara ike ịtọ mpaghara ngalaba nke sava anyị ga-abụ ikike. Ọ na-arụ ọrụ dị ka nke a:

  1. Onye ahịa na-arịọ arịrịọ na sava DNS site na iji onye ọbịa, dịka ọmụmaatụ api.netflix.xom.
  2. Arịrịọ ahụ rutere na sava DNS anyị
  3. Ihe nkesa DNS maara ụzọ kachasị ọsọ maka onye ahịa a ma nye adreesị IP kwekọrọ.

Ngwọta ahụ nwere mgbagwoju anya ọzọ: ndị na-enye DNS ikike anaghị ahụ adreesị IP nke onye ahịa ma nwee ike ịgụ naanị adreesị IP nke onye nrụpụta recursive nke onye ahịa na-eji.

N'ihi ya, onye na-ekpebi ikike anyị ga-eme mkpebi ọ bụghị maka onye ahịa n'otu n'otu, kama maka otu ndị ahịa dabere na onye nrụpụta recursive.

Iji dozie, anyị na-eji otu ihe atụ, chịkọta nsonaazụ nha sitere n'aka ndị ahịa maka onye ọ bụla n'ime ndị nrụpụta recursive wee kpebie ebe a ga-eziga otu a n'ime ha - onye nnọchi anya site na IX site na iji TCP Anycast, site na proxy ISP, ma ọ bụ ozugbo na igwe ojii.

Anyị na-enweta usoro ndị a:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Ụdị steering DNS na-enye gị ohere iduzi ndị ahịa dabere na nyocha akụkọ ihe mere eme nke ọsọ nke njikọ sitere na ndị ahịa na igwe ojii.

Ọzọ, ajụjụ bụ ka ụzọ a ga-esi rụọ ọrụ nke ọma? Iji zaa, anyị na-eji usoro nyocha anyị ọzọ. Ya mere, anyị na-ahazi nhazi onye na-eweta ihe ngosi, ebe otu n'ime ihe mgbaru ọsọ na-agbaso ntụziaka site na nchịkwa DNS, nke ọzọ na-aga ozugbo na ígwé ojii (mmepụta ugbu a).

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

N'ihi ya, anyị na-atụnyere nsonaazụ ma nweta nyocha nke ịdị irè:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

N'ihi ya, anyị mụtara ọtụtụ ihe dị mkpa:

  1. Anyị tụlere arụmọrụ a na-atụ anya nke arịrịọ sitere n'aka ndị ahịa na igwe ojii site na iji DNS Steering.
  2. Anyị nwetara data sitere na ezigbo ndị ahịa, site na ụdị ngwaọrụ niile.
  3. E gosipụtawo ịdị irè nke echiche a tụrụ anya.
  4. Anyị etinyeghị ihe egwu - anyị agbanweghị nhazi mmepụta maka ndị ahịa.
  5. Ọ dịghị ihe gbajiri.

Ugbu a banyere akụkụ siri ike - anyị na-amalite ya na mmepụta

Akụkụ dị mfe ugbu a agwụla - enwere ụdị ọrụ. Ugbu a akụkụ siri ike na-eme ihe ngwọta maka okporo ụzọ Netflix niile, na-ebuga ndị ọrụ nde 150, puku ngwaọrụ, ọtụtụ narị microservices, yana ngwaahịa na akụrụngwa na-agbanwe agbanwe. Sava Netflix na-enweta ọtụtụ nde arịrịọ kwa nkeji, ma ọ dị mfe imebi ọrụ ahụ site na iji nlezianya mee ihe. N'otu oge ahụ, anyị chọrọ ịgafe okporo ụzọ site na puku kwuru puku sava CDN na ịntanetị, ebe ihe na-agbanwe ma na-agbaji mgbe niile na n'oge na-adịghị mma.

Na ihe a niile, otu ahụ nwere ndị injinia 3 na-ahụ maka mmepe, ntinye na nkwado zuru oke nke usoro ahụ.

Ya mere, anyị ga-anọgide na-ekwu maka ụra zuru ike na ahụike.

Otu esi aga n'ihu na mmepe ma ghara itinye oge gị niile na nkwado? Usoro anyị gbadoro ụkwụ na ụkpụrụ atọ:

  1. Anyị na-ebelata ọnụ ọgụgụ nke ndakpọ (radius mgbawa).
  2. Anyị na-akwado maka ihe ịtụnanya - anyị na-atụ anya na ihe ga-agbaji, n'agbanyeghị ule na ahụmahụ onwe onye.
  3. Mmebi mara mma - ọ bụrụ na ihe anaghị arụ ọrụ nke ọma, a ga-edozi ya ozugbo, ọbụlagodi na ọ bụghị n'ụzọ kacha mma.

Ọ tụgharịrị na n'ọnọdụ anyị, na usoro a maka nsogbu ahụ, anyị nwere ike ịchọta ngwọta dị mfe ma dị irè ma mee ka nkwado usoro dị mfe. Anyị ghọtara na anyị nwere ike itinye obere koodu na onye ahịa wee nyochaa maka njehie arịrịọ netwọk kpatara nsogbu njikọ. N'ọnọdụ nke njehie netwọk, anyị na-emeghachi azụ ozugbo na igwe ojii. Ngwọta a anaghị achọ mgbalị siri ike maka ndị otu ndị ahịa, mana ọ na-ebelata ihe ize ndụ nke ndakpọ na ihe ịtụnanya na-atụghị anya ya maka anyị.

N'ezie, n'agbanyeghị ọdịda ahụ, anyị na-agbaso ndụmọdụ doro anya n'oge mmepe:

  1. Nlele ule.
  2. Nnwale A/B ma ọ bụ Canaries.
  3. Mbugharị na-aga n'ihu.

Site na ihe nlele, akọwara ụzọ a ga - esi - a na - anwale mgbanwe mbụ site na iji uzommeputa ahaziri ahazi.

Maka ule canary, anyị kwesịrị ịnweta sava abụọ yiri ya nke anyị nwere ike iji tụnyere otu usoro ahụ si arụ ọrụ tupu na mgbe mgbanwe gasịrị. Iji mee nke a, site na ọtụtụ saịtị CDN anyị, anyị na-ahọrọ ụzọ abụọ nke sava na-enweta okporo ụzọ yiri ya:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Mgbe ahụ, anyị wụnye ihe owuwu ahụ na mgbanwe ndị dị na sava Canary. Iji nyochaa nsonaazụ ya, anyị na-arụ usoro na-atụnyere ihe dịka 100-150 metrics na ihe nlele nke sava njikwa:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Ọ bụrụ na ule Canary na-aga nke ọma, mgbe ahụ anyị na-ahapụ ya nke nta nke nta, na ebili mmiri. Anyị anaghị emelite sava na saịtị ọ bụla n'otu oge - ịla n'iyi saịtị dum n'ihi nsogbu nwere mmetụta dị ukwuu na ọrụ maka ndị ọrụ karịa ịla n'iyi otu ọnụ ọgụgụ nke sava na ebe dị iche iche.

N'ozuzu, ịdị irè na nchekwa nke ụzọ a na-adabere na ọnụọgụ na ịdị mma nke metrics anakọtara. Maka sistemụ ngwangwa ajụjụ anyị, anyị na-anakọta metrik site na ngwa niile enwere ike:

  • site na ndị ahịa - ọnụ ọgụgụ nke nnọkọ na arịrịọ, ọnụego ọdịda;
  • proxy - ọnụ ọgụgụ na ọnụ ọgụgụ na oge nke arịrịọ;
  • DNS - nọmba na nsonaazụ nke arịrịọ;
  • ihu igwe ojii - nọmba na oge maka nhazi arịrịọ na igwe ojii.

A na-anakọta ihe ndị a niile n'ime otu pipeline, na, dabere na mkpa ndị dị, anyị na-ekpebi metrics anyị ga-eziga na nyocha oge, yana nke Elasticsearch ma ọ bụ Big Data maka nyocha zuru ezu karị.

Anyị na-enyocha

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

N'ọnọdụ anyị, anyị na-eme mgbanwe na ụzọ dị oke mkpa nke arịrịọ n'etiti onye ahịa na ihe nkesa. N'otu oge ahụ, ọnụ ọgụgụ nke ihe dị iche iche dị na onye ahịa, na ihe nkesa, na ụzọ site na Ịntanetị dị ukwuu. Mgbanwe na onye ahịa na ihe nkesa na-eme mgbe niile - n'oge ọrụ nke ọtụtụ ìgwè na mgbanwe eke na gburugburu ebe obibi. Anyị nọ n'etiti - mgbe a na-achọpụta nsogbu, enwere ohere dị mma anyị ga-etinye aka. Ya mere, anyị kwesịrị ịghọta nke ọma ka anyị ga-esi kọwaa, na-anakọta na nyochaa metrics iji wepụ nsogbu ngwa ngwa.

Dị ka o kwesịrị, ohere zuru oke na ụdị metrik na nzacha niile ozugbo. Ma enwere ọtụtụ metrics, ya mere ajụjụ ọnụ ahịa na-ebilite. N'ọnọdụ anyị, anyị na-ekewa metrics na ngwaọrụ mmepe dịka ndị a:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Iji chọpụta na mezie nsogbu anyị na-eji sistemụ mepere emepe nke anyị nwere ezigbo oge Atlas и Lumen - maka visualization. Ọ na-echekwa metrics gbakọtara na ebe nchekwa, a pụrụ ịdabere na ya ma jikọta ya na sistemụ ịdọ aka ná ntị. Maka nhazi mpaghara na nyocha, anyị nwere ohere ịnweta ndekọ sitere na Elasticsearch na Kibana. Maka nyocha ọnụ ọgụgụ na nhazi, anyị na-eji nnukwu data na nhụta anya na Tableau.

O yiri ka usoro a siri ike ịrụ ọrụ na ya. Otú ọ dị, site n'ịhazi metrics na ngwá ọrụ n'usoro, anyị nwere ike nyochaa nsogbu ngwa ngwa, chọpụta ụdị nsogbu ahụ, wee gbadaa n'ime metrics zuru ezu. N'ozuzu, anyị na-etinye ihe dịka 1-2 nkeji iji chọpụta isi mmalite nke mmebi ahụ. Mgbe nke a gasịrị, anyị na-arụ ọrụ na otu ìgwè kpọmkwem na nchọpụta nchọpụta - site na iri nkeji ruo ọtụtụ awa.

Ọ bụrụgodị na a na-eme nchọpụta ahụ ngwa ngwa, anyị achọghị ka nke a na-emekarị. Dị ka o kwesịrị, anyị ga-enweta naanị njikere dị egwu mgbe enwere mmetụta dị ukwuu na ọrụ ahụ. Maka sistemụ ngwangwa ajụjụ anyị, anyị nwere naanị ọkwa 2 ga-agwa:

  • Pasent Fallback Client - nyocha nke omume ndị ahịa;
  • pasent Nchọpụta njehie - data nkwụsi ike nke akụrụngwa netwọkụ.

Ihe ngosi ndị a dị oke egwu na-enyocha ma sistemụ ahụ ọ na-arụ ọrụ maka ọtụtụ ndị ọrụ. Anyị na-ele anya ole ndị ahịa ji azụ azụ ma ọ bụrụ na ha enweghị ike ịnweta ngwangwa arịrịọ. Anyị na-agbakọ ihe na-erughị 1 mkpachapụ anya kwa izu, n'agbanyeghị na enwere ọtụtụ mgbanwe na-eme na sistemụ. Gịnị mere nke a ji zuo anyị?

  1. Enwere ọdịda onye ahịa ma ọ bụrụ na proxy anyị anaghị arụ ọrụ.
  2. Enwere sistemu steering akpaka nke na-anabata nsogbu.

Nkọwa ndị ọzọ gbasara nke ikpeazụ. Usoro ikpe anyị, yana usoro maka ịchọpụta ụzọ kacha mma maka arịrịọ sitere n'aka onye ahịa na igwe ojii, na-enye anyị ohere ịnagide nsogbu ụfọdụ ozugbo.

Ka anyị laghachi na nhazi nlele anyị na ụdị ụzọ atọ. Na mgbakwunye na ntinye oge, anyị nwere ike ilele eziokwu nke nnyefe n'onwe ya. Ọ bụrụ na ọ gaghị ekwe omume ibu data ahụ, mgbe ahụ site na ilele nsonaazụ ya n'ụzọ dị iche iche, anyị nwere ike ikpebi ebe na ihe mebiri, yana ma anyị nwere ike idozi ya ozugbo site n'ịgbanwe ụzọ arịrịọ.

ihe atụ:

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Enwere ike ịme usoro a na akpaghị aka. Tinye ya na sistemu steering. Ma kụziere ya ka ọ zaghachi na nsogbu arụmọrụ na ntụkwasị obi. Ọ bụrụ na ihe amalite imebi, meghachi omume ma ọ bụrụ na enwere nhọrọ ka mma. N'otu oge ahụ, mmeghachi omume ozugbo adịghị mkpa, ekele maka ịdaghachi azụ na ndị ahịa.

Ya mere, enwere ike ịmepụta ụkpụrụ nkwado usoro dịka ndị a:

  • ibelata ọnụ ọgụgụ nke mmebi;
  • na-anakọta metrik;
  • Anyị na-arụkwa mgbaze na-akpaghị aka ma ọ bụrụ na anyị nwere ike;
  • ọ bụrụ na ọ nweghị ike, anyị na-agwa gị;
  • Anyị na-arụ ọrụ na dashboards na triage toolset maka nzaghachi ngwa ngwa.

Ihe mmụta ndị a mụtara

Ọ naghị ewe oge dị ukwuu iji dee prototype. N'ọnọdụ anyị, ọ dị njikere mgbe ọnwa 4 gachara. Na ya anyị nwetara metrik ọhụrụ, na ọnwa 10 mgbe mmalite nke mmepe anyị nwetara okporo ụzọ mmepụta mbụ. Mgbe ahụ, ọrụ na-agwụ ike na nke siri ike malitere: jiri nwayọọ nwayọọ na-emepụta na ọnụ ọgụgụ nke usoro, kwaga isi okporo ụzọ na-amụta site na mmejọ. Otú ọ dị, usoro a dị irè agaghị adị n'ahịrị - n'agbanyeghị mgbalị niile, a pụghị ibu amụma ihe niile. Ọ dị irè karịa ịmegharị ngwa ngwa ma zaghachi data ọhụrụ.

Mee ngwa ngwa ịntanetị wee hie ụra n'udo

Dabere na ahụmịhe anyị, anyị nwere ike ịkwado ihe ndị a:

  1. Atụkwasịla obi n'uche gị.

    Echiche anyị na-akụ afọ n'ala anyị mgbe niile, n'agbanyeghị nnukwu ahụmahụ nke ndị otu anyị. Dịka ọmụmaatụ, anyị buru amụma n'ụzọ na-ezighi ezi maka ọsọ a na-atụ anya site na iji proxy CDN, ma ọ bụ omume nke TCP Anycast.

  2. Nweta data sitere na mmepụta.

    Ọ dị mkpa ịnweta ma ọ dịkarịa ala ntakịrị ihe mmepụta data ngwa ngwa o kwere mee. Ọ fọrọ nke nta ka ọ bụrụ na ọ gaghị ekwe omume ịnweta ọnụọgụ nke ikpe pụrụ iche, nhazi, na ntọala na ọnọdụ ụlọ nyocha. Ịnweta ngwa ngwa na nsonaazụ ga-enye gị ohere ịmụta ngwa ngwa banyere nsogbu ndị nwere ike ime ma buru ha n'uche na nhazi usoro.

  3. Esorola ndụmọdụ na nsonaazụ ndị ọzọ - chịkọta data nke gị.

    Soro ụkpụrụ maka ịnakọta na nyocha data, mana anabatala nsonaazụ na nkwupụta nke ndị ọzọ na-enweghị isi. Naanị ị nwere ike ịma kpọmkwem ihe na-arụ ọrụ maka ndị ọrụ gị. Sistemu gị na ndị ahịa gị nwere ike ịdị iche na ụlọ ọrụ ndị ọzọ. Ọ dabara nke ọma, ngwaọrụ nyocha dị ugbu a ma dị mfe iji. Nsonaazụ ị nwetara nwere ike ọ gaghị abụ ihe Netflix, Facebook, Akamai na ụlọ ọrụ ndị ọzọ na-ekwu. N'ọnọdụ anyị, arụmọrụ nke TLS, HTTP2 ma ọ bụ ọnụ ọgụgụ na arịrịọ DNS dị iche na nsonaazụ Facebook, Uber, Akamai - n'ihi na anyị nwere ngwaọrụ dị iche iche, ndị ahịa na data na-aga.

  4. Esola usoro ejiji na-enweghị isi ma nyochaa ịdị irè.

    Malite dị mfe. Ọ ka mma ịme usoro ọrụ dị mfe n'ime obere oge karịa iji oge buru ibu na-emepụta ihe ndị ị na-achọghị. Dozie ọrụ na nsogbu ndị dị mkpa dabere na nha na nsonaazụ gị.

  5. Jikere maka ngwa ọhụrụ.

    Dịka ọ siri ike ịkọ nsogbu niile, ọ na-esiri ike ịkọ uru na ngwa n'ọdịnihu. Chee echiche site na mmalite - ike ha ime mgbanwe na ọnọdụ ndị ahịa. N'ọnọdụ gị, ị nwere ike ịchọpụta nsogbu ọhụrụ na ngwọta ha. N'ime oru ngo anyị, anyị na-esetịpụ ihe mgbaru ọsọ iji belata latency arịrịọ. Agbanyeghị, n'oge nyocha na mkparịta ụka, anyị chọpụtara na anyị nwekwara ike iji sava proxy:

    • iji dozie okporo ụzọ gafee mpaghara AWS ma belata ụgwọ ọrụ;
    • iji gosipụta nkwụsi ike CDN;
    • iji hazie DNS;
    • iji hazie TLS/TCP.

nkwubi

Na akụkọ ahụ, akọwara m otú Netflix si edozi nsogbu nke ime ngwa ngwa ịntanetị n'etiti ndị ahịa na igwe ojii. Otu anyị si achịkọta data site na iji usoro nlele na ndị ahịa, ma jiri data akụkọ ihe mere eme anakọtara na-ebugharị arịrịọ mmepụta sitere n'aka ndị ahịa site na ụzọ kachasị ọsọ na ịntanetị. Otu anyị si eji ụkpụrụ nke usoro netwọkụ, akụrụngwa CDN anyị, netwọk azụ azụ, na sava DNS iji nweta ọrụ a.

Agbanyeghị, ihe ngwọta anyị bụ naanị ihe atụ nke otu anyị na Netflix siri mejuputa usoro dị otú ahụ. Gịnị rụpụtara anyị. Akụkụ etinyere nke akụkọ m maka gị bụ ụkpụrụ mmepe na nkwado anyị na-agbaso wee nweta nsonaazụ dị mma.

Ngwọta anyị maka nsogbu ahụ nwere ike ọ gaghị adabara gị. Agbanyeghị, tiori na ụkpụrụ imewe ka dị, ọbụlagodi na ịnweghị akụrụngwa CDN nke gị, ma ọ bụ ọ dị iche na nke anyị.

Mkpa nke ọsọ nke azụmahịa arịrịọ na-anọgidekwa mkpa. Na ọbụna maka ọrụ dị mfe ị ga-eme nhọrọ: n'etiti ndị na-eweta igwe ojii, ọnọdụ nkesa, CDN na ndị na-enye DNS. Nhọrọ gị ga-emetụta ịdị irè nke ajụjụ ịntanetị maka ndị ahịa gị. Ma ọ dị mkpa ka ị tụọ ma ghọta mmetụta a.

Malite na ngwọta dị mfe, lezie anya ka ị si agbanwe ngwaahịa ahụ. Mụta ka ị na-aga ma melite sistemụ dabere na data sitere na ndị ahịa gị, akụrụngwa gị na azụmaahịa gị. Chee echiche banyere ohere nke mmebi na-atụghị anya ya n'oge usoro nhazi. Ma mgbe ahụ, ị ​​​​nwere ike ime ka usoro mmepe gị dịkwuo ngwa, melite arụmọrụ ngwọta, zere ibu nkwado na-enweghị isi ma hie ụra n'udo.

Afọ a A ga-enwe ọgbakọ ahụ site na Julaị 6 ruo 10 na online usoro. Ị nwere ike ịjụ otu n'ime ndị nna DevOps, John Willis n'onwe ya!

isi: www.habr.com

Tinye a comment