Aċċellera t-talbiet tal-internet u torqod bil-paċi

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Netflix huwa l-mexxej fis-suq tat-televiżjoni bl-Internet - il-kumpanija li ħolqot u qed tiżviluppa b'mod attiv dan is-segment. Netflix hija magħrufa mhux biss għall-katalgu estensiv tagħha ta 'films u serje televiżivi disponibbli minn kważi kull rokna tal-pjaneta u kwalunkwe apparat b'displej, iżda wkoll għall-infrastruttura affidabbli u l-kultura unika tal-inġinerija tagħha.

Eżempju ċar tal-approċċ Netflix għall-iżvilupp u l-appoġġ ta’ sistemi kumplessi ġie ppreżentat f’DevOops 2019 Sergey Fedorov - Direttur tal-Iżvilupp fuq Netflix. Gradwat tal-Fakultà tal-Matematika Kompjutazzjonali u l-Matematika tal-Università Statali ta' Nizhny Novgorod. Lobachevsky, Sergey wieħed mill-ewwel inġiniera f'Open Connect - tim CDN fuq Netflix. Huwa bena sistemi għall-monitoraġġ u l-analiżi tad-dejta tal-vidjo, nieda servizz popolari għall-valutazzjoni tal-veloċità tal-konnessjoni tal-Internet FAST.com, u għal dawn l-aħħar ftit snin ilu jaħdem biex jottimizza t-talbiet tal-Internet sabiex l-applikazzjoni Netflix taħdem malajr kemm jista’ jkun għall-utenti.

Ir-rapport irċieva l-aħjar reviżjonijiet mill-parteċipanti tal-konferenza, u ħejjejna verżjoni test għalik.

Fir-rapport tiegħu, Sergei tkellem fid-dettall

  • dwar x'jaffettwa d-dewmien tat-talbiet tal-Internet bejn il-klijent u s-server;
  • kif jitnaqqas dan id-dewmien;
  • kif tiddisinja, iżżomm u timmonitorja sistemi li jittolleraw l-iżbalji;
  • kif tikseb riżultati fi żmien qasir, u b'riskju minimu għan-negozju;
  • kif tanalizza r-riżultati u titgħallem mill-iżbalji.

It-tweġibiet għal dawn il-mistoqsijiet huma meħtieġa mhux biss minn dawk li jaħdmu f'korporazzjonijiet kbar.

Il-prinċipji u t-tekniki ppreżentati għandhom ikunu magħrufa u pprattikati minn kull min jiżviluppa u jappoġġja prodotti tal-Internet.

Li jmiss hija n-narrazzjoni mill-perspettiva tal-kelliem.

L-importanza tal-veloċità tal-internet

Il-veloċità tat-talbiet għall-Internet hija direttament relatata man-negozju. Ikkunsidra l-industrija tax-xiri: Amazon fl-2009 tkellemli dewmien ta' 100ms jirriżulta f'telf ta' 1% tal-bejgħ.

Hemm aktar u aktar apparat mobbli, segwit minn siti u applikazzjonijiet mobbli. Jekk il-paġna tiegħek tieħu aktar minn 3 sekondi biex titgħabba, qed titlef madwar nofs l-utenti tiegħek. MA Lulju 2018 Google tqis il-veloċità tat-tagħbija tal-paġna tiegħek fir-riżultati tat-tfittxija: aktar ma tkun mgħaġġla l-paġna, iktar tkun għolja l-pożizzjoni tagħha fil-Google.

Il-veloċità tal-konnessjoni hija importanti wkoll f'istituzzjonijiet finanzjarji fejn il-latenza hija kritika. Fl-2015, Hibernia Networks lest kejbil ta’ $400 miljun bejn New York u Londra biex inaqqas il-latency bejn l-ibliet b’6ms. Immaġina $66 miljun għal 1 ms ta 'tnaqqis ta' latenza!

Skond riċerka, veloċitajiet ta 'konnessjoni 'l fuq minn 5 Mbit/s m'għadhomx jaffettwaw direttament il-veloċità tat-tagħbija ta' websajt tipika. Madankollu, hemm relazzjoni lineari bejn il-latenza tal-konnessjoni u l-veloċità tat-tagħbija tal-paġna:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Madankollu, Netflix mhuwiex prodott tipiku. L-impatt tal-latenza u l-veloċità fuq l-utent huwa qasam attiv ta 'analiżi u żvilupp. Hemm tagħbija ta 'applikazzjoni u għażla ta' kontenut li jiddependu fuq il-latency, iżda t-tagħbija ta 'elementi statiċi u l-istriming jiddependu wkoll fuq il-veloċità tal-konnessjoni. L-analiżi u l-ottimizzazzjoni tal-fatturi ewlenin li jinfluwenzaw l-esperjenza tal-utent hija qasam attiv ta 'żvilupp għal diversi timijiet fuq Netflix. Wieħed mill-għanijiet huwa li titnaqqas il-latenza tat-talbiet bejn l-apparati Netflix u l-infrastruttura tal-cloud.

Fir-rapport se niffukaw speċifikament fuq it-tnaqqis tal-latenza bl-użu tal-eżempju tal-infrastruttura Netflix. Ejja nikkunsidraw mil-lat prattiku kif tavviċinaw il-proċessi ta 'disinn, żvilupp u tħaddim ta' sistemi distribwiti kumplessi u nqattgħu ħin fuq l-innovazzjoni u r-riżultati, aktar milli niddijanjosi problemi operattivi u ħsarat.

Ġewwa Netflix

Eluf ta 'apparati differenti jappoġġjaw apps Netflix. Huma żviluppati minn erba 'timijiet differenti, li jagħmlu verżjonijiet separati tal-klijent għal Android, iOS, TV u web browsers. U nofqu ħafna sforz biex intejbu u nippersonalizzaw l-esperjenza tal-utent. Biex nagħmlu dan, aħna nmexxu mijiet ta 'testijiet A/B b'mod parallel.

Il-personalizzazzjoni hija appoġġjata minn mijiet ta’ mikroservizzi fil-cloud tal-AWS, li jipprovdu dejta personalizzata tal-utent, dispaċċ ta’ mistoqsijiet, telemetrija, Big Data u Kodifikazzjoni. Il-viżwalizzazzjoni tat-traffiku tidher bħal din:

Link għall-vidjo bid-dimostrazzjoni (6:04-6:23)

Fuq ix-xellug hemm il-punt tad-dħul, u mbagħad it-traffiku jitqassam fost bosta mijiet ta 'mikroservizzi li huma appoġġjati minn timijiet backend differenti.

Komponent ieħor importanti tal-infrastruttura tagħna huwa l-Open Connect CDN, li jwassal kontenut statiku lill-utent aħħari - vidjows, stampi, kodiċi tal-klijent, eċċ. Is-CDN jinsab fuq servers tad-dwana (OCA - Open Connect Appliance). Ġewwa hemm arrays ta’ drives SSD u HDD li jaħdmu FreeBSD ottimizzat, b’NGINX u sett ta’ servizzi. Aħna niddisinjaw u nottimizzaw il-komponenti tal-ħardwer u tas-softwer sabiex tali server tas-CDN ikun jista' jibgħat kemm jista' jkun data lill-utenti.

Il-“ħajt” ta’ dawn is-servers fil-punt tal-iskambju tat-traffiku tal-Internet (Internet eXchange - IX) jidher bħal dan:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

L-Iskambju tal-Internet jipprovdi l-abbiltà għall-fornituri tas-servizz tal-Internet u l-fornituri tal-kontenut li "jikkonnettjaw" ma 'xulxin biex jiskambjaw id-dejta b'mod aktar dirett fuq l-Internet. Hemm bejn wieħed u ieħor 70-80 punt tal-Iskambju tal-Internet madwar id-dinja fejn is-servers tagħna huma installati, u aħna ninstallawhom u nżommuhom b'mod indipendenti:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Barra minn hekk, aħna nipprovdu wkoll servers direttament lill-fornituri tal-Internet, li huma jinstallaw fin-netwerk tagħhom, u jtejbu l-lokalizzazzjoni tat-traffiku Netflix u l-kwalità tal-istreaming għall-utenti:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Sett ta 'servizzi AWS huwa responsabbli biex jibgħat talbiet tal-vidjow minn klijenti għal servers CDN, kif ukoll jikkonfigura s-servers infushom - aġġornament tal-kontenut, kodiċi tal-programm, settings, eċċ. Għal dan tal-aħħar, bnejna wkoll netwerk tas-sinsla li jgħaqqad is-servers fil-punti tal-Iskambju tal-Internet ma 'AWS. In-netwerk tas-sinsla huwa netwerk globali ta 'kejbils u routers tal-fibra ottika li nistgħu niddisinjaw u kkonfiguraw abbażi tal-bżonnijiet tagħna.

Fuq Stimi Sandvine, l-infrastruttura tas-CDN tagħna twassal bejn wieħed u ieħor ⅛ tat-traffiku tal-Internet fid-dinja matul is-sigħat peak u ⅓ tat-traffiku fl-Amerika ta 'Fuq, fejn Netflix ilu madwar l-itwal. Numri impressjonanti, iżda għalija waħda mill-aktar kisbiet aqwa hija li s-sistema CDN kollha hija żviluppata u miżmuma minn tim ta 'inqas minn 150 ruħ.

Inizjalment, l-infrastruttura tas-CDN kienet iddisinjata biex twassal data tal-vidjo. Madankollu, maż-żmien indunajna li nistgħu nużawha wkoll biex nottimizzaw it-talbiet dinamiċi mill-klijenti fil-cloud AWS.

Dwar l-aċċelerazzjoni tal-Internet

Illum, Netflix għandha 3 reġjuni AWS, u l-latenza tat-talbiet lill-cloud se tiddependi minn kemm il-klijent ikun mill-eqreb reġjun. Fl-istess ħin, għandna ħafna servers CDN li jintużaw biex iwasslu kontenut statiku. Hemm xi mod kif tuża dan il-qafas biex tħaffef mistoqsijiet dinamiċi? Madankollu, sfortunatament, huwa impossibbli li dawn it-talbiet jiġu cache - l-APIs huma personalizzati u kull riżultat huwa uniku.

Ejja nagħmlu proxy fuq is-CDN server u nibdew nibagħtu t-traffiku minnu. Se jkun aktar mgħaġġel?

Materjal

Ejja niftakru kif jaħdmu l-protokolli tan-netwerk. Illum, il-biċċa l-kbira tat-traffiku fuq l-Internet juża HTTPs, li jiddependi fuq il-protokolli tas-saff t'isfel TCP u TLS. Sabiex klijent jikkonnettja mas-server, jagħmel handshake, u biex jistabbilixxi konnessjoni sigura, il-klijent jeħtieġ li jiskambja messaġġi mas-server tliet darbiet u mill-inqas darba oħra biex jittrasferixxi d-data. B'latency għal kull vjaġġ bir-ritorn (RTT) ta '100 ms, ikollna bżonnna 400 ms biex nirċievu l-ewwel bit ta' dejta:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Jekk inpoġġu ċ-ċertifikati fuq is-server CDN, allura l-ħin tal-handshake bejn il-klijent u s-server jista 'jitnaqqas b'mod sinifikanti jekk is-CDN ikun eqreb. Ejja nassumu li l-latency għas-server CDN hija ta '30ms. Imbagħad se tieħu 220 ms biex tirċievi l-ewwel bit:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Iżda l-vantaġġi ma jispiċċawx hemm. Ladarba konnessjoni tkun ġiet stabbilita, TCP iżid it-tieqa tal-konġestjoni (l-ammont ta 'informazzjoni li jista' jittrasmetti fuq dik il-konnessjoni b'mod parallel). Jekk jintilef pakkett tad-dejta, allura l-implimentazzjonijiet klassiċi tal-protokoll TCP (bħal TCP New Reno) inaqqsu t-“tieqa” miftuħa bin-nofs. It-tkabbir tat-tieqa tal-konġestjoni, u l-veloċità tal-irkupru tagħha mit-telf jerġa 'jiddependi fuq id-dewmien (RTT) lis-server. Jekk din il-konnessjoni tmur biss sas-server CDN, dan l-irkupru se jkun aktar mgħaġġel. Fl-istess ħin, it-telf tal-pakketti huwa fenomenu standard, speċjalment għan-netwerks mingħajr fili.

Il-bandwidth tal-internet jista' jitnaqqas, speċjalment waqt l-aktar ħinijiet, minħabba t-traffiku mill-utenti, li jista' jwassal għal konġestjonijiet tat-traffiku. Madankollu, m'hemm l-ebda mod fuq l-Internet biex tagħti prijorità lil xi talbiet fuq oħrajn. Pereżempju, agħti prijorità lil talbiet żgħar u sensittivi għal-latency fuq flussi ta' data "tqal" li jgħabbu n-netwerk. Madankollu, fil-każ tagħna, li jkollna n-netwerk tas-sinsla tagħna stess jippermettilna nagħmlu dan fuq parti mill-mogħdija tat-talba - bejn is-CDN u s-sħaba, u nistgħu kkonfigurawh bis-sħiħ. Tista 'tiżgura li pakketti żgħar u sensittivi għal-latency huma prijoritizzati, u flussi kbar ta' data jmorru ftit aktar tard. L-eqreb is-CDN huwa qrib il-klijent, l-effiċjenza akbar.

Il-protokolli tal-livell tal-applikazzjoni (OSI Level 7) għandhom ukoll impatt fuq il-latency. Protokolli ġodda bħal HTTP/2 jottimizzaw il-prestazzjoni tat-talbiet paralleli. Madankollu, għandna klijenti Netflix b'apparat anzjani li ma jappoġġjawx il-protokolli l-ġodda. Mhux il-klijenti kollha jistgħu jiġu aġġornati jew konfigurati bl-aħjar mod. Fl-istess ħin, bejn il-proxy tas-CDN u l-cloud hemm kontroll sħiħ u l-abbiltà li jintużaw protokolli u settings ġodda u ottimali. Il-parti ineffettiva bi protokolli qodma se topera biss bejn il-klijent u s-server CDN. Barra minn hekk, nistgħu nagħmlu talbiet multiplex fuq konnessjoni diġà stabbilita bejn is-CDN u l-cloud, u ntejbu l-użu tal-konnessjoni fil-livell TCP:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Aħna nkejlu

Minkejja l-fatt li t-teorija twiegħed titjib, aħna ma ngħaġġlux immedjatament biex inniedu s-sistema fil-produzzjoni. Minflok, l-ewwel irridu nippruvaw li l-idea se taħdem fil-prattika. Biex tagħmel dan, trid twieġeb diversi mistoqsijiet:

  • Veloċità: prokura se tkun aktar mgħaġġla?
  • Affidabilità: Se jinkiser aktar spiss?
  • Kumplessità: kif tintegra mal-applikazzjonijiet?
  • Cost: Kemm tiswa biex tintuża infrastruttura addizzjonali?

Ejja nikkunsidraw fid-dettall l-approċċ tagħna biex nevalwaw l-ewwel punt. Il-bqija huma ttrattati b'mod simili.

Biex tanalizza l-veloċità tat-talbiet, irridu niksbu data għall-utenti kollha, mingħajr ma nqattgħu ħafna ħin fuq l-iżvilupp u mingħajr ma nkissru l-produzzjoni. Hemm diversi approċċi għal dan:

  1. RUM, jew kejl passiv talba. Aħna nkejlu l-ħin tal-eżekuzzjoni tat-talbiet attwali mill-utenti u niżguraw kopertura sħiħa tal-utent. L-iżvantaġġ huwa li s-sinjal mhuwiex stabbli ħafna minħabba ħafna fatturi, pereżempju, minħabba daqsijiet differenti ta 'talba, ħin tal-ipproċessar fuq is-server u l-klijent. Barra minn hekk, ma tistax tittestja konfigurazzjoni ġdida mingħajr effett fil-produzzjoni.
  2. Testijiet tal-laboratorju. Servers speċjali u infrastruttura li jissimulaw klijenti. Bl-għajnuna tagħhom nagħmlu t-testijiet meħtieġa. Dan il-mod niksbu kontroll sħiħ fuq ir-riżultati tal-kejl u sinjal ċar. Iżda m'hemm l-ebda kopertura sħiħa ta 'apparati u postijiet tal-utenti (speċjalment b'servizz u appoġġ mad-dinja kollha għal eluf ta' mudelli ta 'apparat).

Kif tista 'tgħaqqad il-vantaġġi taż-żewġ metodi?

It-tim tagħna sab soluzzjoni. Aħna ktibna biċċa żgħira ta 'kodiċi - kampjun - li bnejna fl-applikazzjoni tagħna. Is-sondi jippermettulna nagħmlu testijiet tan-netwerk kompletament ikkontrollati mill-apparati tagħna. Taħdem hekk:

  1. Ftit wara t-tagħbija tal-applikazzjoni u t-tlestija tal-attività inizjali, inħaddmu s-sondi tagħna.
  2. Il-klijent jagħmel talba lis-server u jirċievi "riċetta" għat-test. Ir-riċetta hija lista ta' URLs li għalihom trid issir talba HTTP(s). Barra minn hekk, ir-riċetta tikkonfigura l-parametri tat-talba: dewmien bejn it-talbiet, l-ammont ta’ dejta mitluba, headers HTTP(s), eċċ. Fl-istess ħin, nistgħu nittestjaw diversi riċetti differenti b'mod parallel - meta nitolbu konfigurazzjoni, niddeterminaw b'mod każwali liema riċetta noħorġu.
  3. Il-ħin tat-tnedija tas-sonda jintgħażel sabiex ma jkunx f'kunflitt mal-użu attiv tar-riżorsi tan-netwerk fuq il-klijent. Essenzjalment, il-ħin jintgħażel meta l-klijent ma jkunx attiv.
  4. Wara li jirċievi r-riċetta, il-klijent jagħmel talbiet lil kull wieħed mill-URLs, b'mod parallel. It-talba għal kull wieħed mill-indirizzi tista 'tiġi ripetuta - l-hekk imsejħa. "pulsijiet". Fuq l-ewwel polz, aħna nkejlu kemm dam biex tiġi stabbilita konnessjoni u niżżel id-dejta. Fit-tieni polz, aħna nkejlu l-ħin li tieħu biex tagħbija data fuq konnessjoni diġà stabbilita. Qabel it-tielet waħda, nistgħu nissettjaw dewmien u nkejlu l-veloċità li nistabbilixxu konnessjoni mill-ġdid, eċċ.

    Matul it-test, aħna nkejlu l-parametri kollha li l-apparat jista 'jikseb:

    • Ħin tat-talba DNS;
    • Ħin tas-setup tal-konnessjoni TCP;
    • Ħin tas-setup tal-konnessjoni TLS;
    • il-ħin tar-riċeviment tal-ewwel byte tad-dejta;
    • ħin totali tat-tagħbija;
    • kodiċi tar-riżultat tal-istatus.
  5. Wara li l-impulsi kollha jkunu tlestew, il-kampjun jgħabbi l-kejl kollu għall-analiżi.

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Il-punti ewlenin huma dipendenza minima fuq il-loġika fuq il-klijent, l-ipproċessar tad-dejta fuq is-server u l-kejl ta 'talbiet paralleli. Għalhekk, aħna kapaċi niżolaw u nittestjaw l-influwenza ta 'diversi fatturi li jaffettwaw il-prestazzjoni tal-mistoqsija, ivarjawhom f'riċetta waħda, u niksbu riżultati minn klijenti reali.

Din l-infrastruttura wriet utli għal aktar minn sempliċiment analiżi tal-prestazzjoni tal-mistoqsijiet. Bħalissa għandna 14-il riċetta attiva, aktar minn 6000 kampjun kull sekonda, li nirċievu data mill-irkejjen kollha tad-dinja u kopertura sħiħa tal-apparat. Jekk Netflix xtara servizz simili mingħand parti terza, dan jiswa miljuni ta’ dollari fis-sena, b’kopertura ferm agħar.

It-teorija tal-ittestjar fil-prattika: prototip

B'sistema bħal din, stajna nevalwaw l-effettività tal-prokuri CDN fuq talba tal-latenza. Issa għandek bżonn:

  • toħloq prototip ta' prokura;
  • poġġi l-prototip fuq CDN;
  • tiddetermina kif tidderieġi lill-klijenti lejn proxy fuq server CDN speċifiku;
  • Qabbel il-prestazzjoni mat-talbiet fl-AWS mingħajr prokura.

Il-kompitu huwa li tiġi evalwata l-effettività tas-soluzzjoni proposta malajr kemm jista 'jkun. Għażilna Mur biex timplimenta l-prototip minħabba d-disponibbiltà ta’ libreriji ta’ netwerking tajbin. Fuq kull server CDN, installajna l-prokura prototip bħala binarju statiku biex innaqqsu d-dipendenzi u tissimplifika l-integrazzjoni. Fl-implimentazzjoni inizjali, użajna komponenti standard kemm jista 'jkun u modifiki minuri għall-ġbir tal-konnessjoni HTTP/2 u l-multiplexing tat-talbiet.

Biex nibbilanċjaw bejn ir-reġjuni AWS, użajna database DNS ġeografika, l-istess waħda użata biex tibbilanċja l-klijenti. Biex tagħżel server CDN għall-klijent, nużaw TCP Anycast għal servers fl-Internet Exchange (IX). F'din l-għażla, nużaw indirizz IP wieħed għas-servers CDN kollha, u l-klijent ikun dirett lejn is-server CDN bl-inqas numru ta 'ħops IP. F'servers CDN installati minn fornituri tal-Internet (ISPs), m'għandniex kontroll fuq ir-router biex tikkonfigura TCP Anycast, għalhekk nużaw l-istess loġika, li tidderieġi lill-klijenti lejn fornituri tal-Internet għall-istrimjar tal-vidjo.

Allura, għandna tliet tipi ta 'mogħdijiet ta' rikjesti: lejn is-sħab permezz tal-Internet miftuħ, permezz ta 'server CDN f'IX, jew permezz ta' server CDN li jinsab f'fornitur tal-Internet. L-għan tagħna huwa li nifhmu liema mod huwa aħjar, u x'inhu l-benefiċċju ta 'prokura, meta mqabbla ma' kif it-talbiet jintbagħtu lill-produzzjoni. Biex tagħmel dan, nużaw sistema ta 'kampjunar kif ġej:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Kull waħda mill-mogħdijiet issir mira separata, u nħarsu lejn il-ħin li wasalna. Għall-analiżi, aħna ngħaqqdu r-riżultati tal-prokura fi grupp wieħed (agħżel l-aħjar ħin bejn il-prokuri IX u ISP), u nqabbluhom mal-ħin tat-talbiet lill-cloud mingħajr prokura:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Kif tistgħu taraw, ir-riżultati kienu mħallta - f'ħafna każijiet il-prokura tagħti veloċità tajba, iżda hemm ukoll numru suffiċjenti ta 'klijenti li għalihom is-sitwazzjoni se tmur għall-agħar b'mod sinifikanti.

Bħala riżultat, għamilna diversi affarijiet importanti:

  1. Aħna vvalutajna l-prestazzjoni mistennija tat-talbiet mill-klijenti lill-cloud permezz ta 'proxy CDN.
  2. Irċevejna dejta minn klijenti reali, minn kull tip ta 'apparat.
  3. Indunajna li t-teorija ma kinitx 100% ikkonfermata u l-offerta inizjali bi prokura CDN ma kinitx se taħdimna.
  4. Aħna ma ħadniex riskji - ma bdilniex il-konfigurazzjonijiet tal-produzzjoni għall-klijenti.
  5. Xejn kien miksur.

Prototip 2.0

Allura, lura għall-bord tat-tpinġija u rrepeti l-proċess mill-ġdid.

L-idea hija li minflok nużaw prokura 100%, niddeterminaw l-iktar triq mgħaġġla għal kull klijent, u nibagħtu talbiet hemmhekk - jiġifieri, nagħmlu dak li jissejjaħ client steering.

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Kif timplimenta dan? Ma nistgħux nużaw il-loġika fuq in-naħa tas-server, għax... L-għan huwa li tikkonnettja ma 'dan is-server. Jeħtieġ li jkun hemm xi mod biex tagħmel dan fuq il-klijent. U idealment, tagħmel dan b'ammont minimu ta 'loġika kumplessa, sabiex ma ssolvix il-kwistjoni ta' integrazzjoni ma 'numru kbir ta' pjattaformi tal-klijenti.

It-tweġiba hija li tuża DNS. Fil-każ tagħna, għandna l-infrastruttura DNS tagħna stess, u nistgħu nwaqqfu żona ta 'dominju li għaliha s-servers tagħna jkunu awtoritarji. Taħdem hekk:

  1. Il-klijent jagħmel talba lis-server DNS billi juża host, pereżempju api.netflix.xom.
  2. It-talba tasal fis-server DNS tagħna
  3. Is-server DNS jaf liema mogħdija hija l-aktar mgħaġġla għal dan il-klijent u joħroġ l-indirizz IP korrispondenti.

Is-soluzzjoni għandha kumplessità addizzjonali: il-fornituri awtoritarji tad-DNS ma jarawx l-indirizz IP tal-klijent u jistgħu jaqraw biss l-indirizz IP tas-solvent rikorsiv li juża l-klijent.

Bħala riżultat, is-solvent awtoritarju tagħna għandu jieħu deċiżjoni mhux għal klijent individwali, iżda għal grupp ta 'klijenti bbażati fuq is-solvent rikorsiv.

Biex insolvu, nużaw l-istess kampjuni, naggregaw ir-riżultati tal-kejl mill-klijenti għal kull wieħed mir-solventi rikorsivi u niddeċiedu fejn tibgħat dan il-grupp minnhom - prokura permezz ta 'IX bl-użu ta' TCP Anycast, permezz ta 'prokura ISP, jew direttament lill-sħaba.

Aħna jkollna s-sistema li ġejja:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Il-mudell tal-isteering DNS li jirriżulta jippermettilek tidderieġi klijenti abbażi ta' osservazzjonijiet storiċi tal-veloċità tal-konnessjonijiet mill-klijenti għall-cloud.

Għal darb'oħra, il-mistoqsija hija kemm se jaħdem b'mod effettiv dan l-approċċ? Biex inwieġbu, nerġgħu nużaw is-sistema tas-sonda tagħna. Għalhekk, aħna kkonfigurat il-konfigurazzjoni tal-preżentatur, fejn waħda mill-miri ssegwi d-direzzjoni mill-isteering tad-DNS, l-oħra tmur direttament lejn is-sħab (produzzjoni kurrenti).

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Bħala riżultat, inqabblu r-riżultati u niksbu valutazzjoni tal-effettività:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Bħala riżultat, tgħallimna diversi affarijiet importanti:

  1. Aħna vvalutajna l-prestazzjoni mistennija tat-talbiet mill-klijenti lill-cloud bl-użu tad-DNS Steering.
  2. Irċevejna dejta minn klijenti reali, minn kull tip ta 'apparat.
  3. L-effettività tal-idea proposta ġiet ippruvata.
  4. Aħna ma ħadniex riskji - ma bdilniex il-konfigurazzjonijiet tal-produzzjoni għall-klijenti.
  5. Xejn kien miksur.

Issa dwar il-parti diffiċli - innieduha fil-produzzjoni

Il-parti faċli issa spiċċat - hemm prototip li jaħdem. Issa l-parti diffiċli hija tniedi soluzzjoni għat-traffiku kollu ta 'Netflix, skjerament għal 150 miljun utent, eluf ta' tagħmir, mijiet ta 'mikroservizzi, u prodott u infrastruttura li dejjem jinbidlu. Is-servers Netflix jirċievu miljuni ta 'talbiet kull sekonda, u huwa faċli li tkisser is-servizz b'azzjoni traskurata. Fl-istess ħin, irridu ngħaddu b'mod dinamiku t-traffiku permezz ta 'eluf ta' servers CDN fuq l-Internet, fejn xi ħaġa tinbidel u tinqasam b'mod kostanti u fl-iktar mument inopportun.

U b'dan kollu, it-tim għandu 3 inġiniera responsabbli għall-iżvilupp, l-iskjerament u l-appoġġ sħiħ tas-sistema.

Għalhekk, se nkomplu nitkellmu dwar irqad ta 'mistrieħ u b'saħħtu.

Kif tkompli l-iżvilupp u ma tonfoqx il-ħin kollu tiegħek fuq l-appoġġ? L-approċċ tagħna huwa bbażat fuq 3 prinċipji:

  1. Aħna nnaqqsu l-iskala potenzjali ta 'ħsarat (raġġ tal-blast).
  2. Qed nippreparaw għal sorpriżi - nistennew li xi ħaġa tinkiser, minkejja l-ittestjar u l-esperjenza personali.
  3. Degradazzjoni graceful - jekk xi ħaġa ma taħdimx sew, għandha tiġi ffissata awtomatikament, anke jekk mhux bl-aktar mod effiċjenti.

Irriżulta li fil-każ tagħna, b'dan l-approċċ għall-problema, nistgħu nsibu soluzzjoni sempliċi u effettiva u nissimplifikaw b'mod sinifikanti l-appoġġ tas-sistema. Irrealizzajna li nistgħu nżidu biċċa żgħira ta 'kodiċi mal-klijent u nissorveljaw għal żbalji ta' rikjesta tan-netwerk ikkawżati minn problemi ta 'konnessjoni. F'każ ta 'żbalji tan-netwerk, nagħmlu riżerva direttament lill-cloud. Din is-soluzzjoni ma teħtieġx sforz sinifikanti għat-timijiet tal-klijenti, iżda tnaqqas ħafna r-riskju ta 'ħsarat mhux mistennija u sorpriżi għalina.

Naturalment, minkejja r-riżerva, aħna madankollu nsegwu dixxiplina ċara waqt l-iżvilupp:

  1. Test tal-kampjun.
  2. A/B testing jew Kanarji.
  3. Tnedija progressiva.

B'kampjuni, l-approċċ ġie deskritt - il-bidliet l-ewwel jiġu ttestjati bl-użu ta 'riċetta apposta.

Għall-ittestjar tal-kanarji, irridu nġibu pari ta 'servers komparabbli li fuqhom nistgħu nqabblu kif taħdem is-sistema qabel u wara l-bidliet. Biex tagħmel dan, mill-ħafna siti tas-CDN tagħna, aħna nagħżlu pari ta' servers li jirċievu traffiku komparabbli:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Imbagħad ninstallaw il-bini bil-bidliet fuq is-server Canary. Biex nevalwaw ir-riżultati, aħna nħaddmu sistema li tqabbel bejn wieħed u ieħor 100-150 metrika ma’ kampjun ta’ servers ta’ Kontroll:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Jekk l-ittestjar tal-Kanarji jirnexxi, allura nirħilsu gradwalment, f'mewġ. Aħna ma naġġornawx is-servers fuq kull sit fl-istess ħin - it-telf ta 'sit sħiħ minħabba problemi għandu impatt aktar sinifikanti fuq is-servizz għall-utenti milli jitilfu l-istess numru ta' servers f'postijiet differenti.

B'mod ġenerali, l-effettività u s-sikurezza ta 'dan l-approċċ jiddependu fuq il-kwantità u l-kwalità tal-metriċi miġbura. Għas-sistema ta' aċċelerazzjoni tal-mistoqsijiet tagħna, aħna niġbru metriċi mill-komponenti kollha possibbli:

  • mill-klijenti - numru ta 'sessjonijiet u talbiet, rati ta' riżerva;
  • prokura - statistika dwar in-numru u l-ħin tat-talbiet;
  • DNS - in-numru u r-riżultati tat-talbiet;
  • cloud edge - numru u ħin għall-ipproċessar tat-talbiet fil-cloud.

Dan kollu jinġabar f'pipeline wieħed, u, skont il-ħtiġijiet, niddeċiedu liema metriċi nibagħtu lill-analiżi f'ħin reali, u liema lil Elasticsearch jew Big Data għal dijanjostiċi aktar dettaljati.

Aħna nissorveljaw

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Fil-każ tagħna, qed nagħmlu bidliet fit-triq kritika tat-talbiet bejn il-klijent u s-server. Fl-istess ħin, in-numru ta 'komponenti differenti fuq il-klijent, fuq is-server, u fit-triq permezz tal-Internet huwa enormi. Bidliet fuq il-klijent u s-server iseħħu kontinwament - matul ix-xogħol ta 'għexieren ta' timijiet u bidliet naturali fl-ekosistema. Aħna qegħdin fin-nofs - meta niddijanjostikaw il-problemi, hemm ċans tajjeb li nkunu involuti. Għalhekk, jeħtieġ li nifhmu b'mod ċar kif niddefinixxu, niġbru u janalizzaw il-metriċi biex niżolaw malajr il-problemi.

Idealment, aċċess sħiħ għat-tipi kollha ta 'metriċi u filtri f'ħin reali. Iżda hemm ħafna metriċi, għalhekk tqum il-kwistjoni tal-ispiża. Fil-każ tagħna, nisseparaw il-metriċi u l-għodod ta 'żvilupp kif ġej:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Biex tiskopri u tgħaddi l-problemi nużaw is-sistema tagħna stess ta’ sors miftuħ f’ħin reali Atlas и Lumen - għall-viżwalizzazzjoni. Taħżen metriċi aggregati fil-memorja, hija affidabbli u tintegra mas-sistema ta 'twissija. Għal lokalizzazzjoni u dijanjostika, għandna aċċess għal zkuk minn Elasticsearch u Kibana. Għall-analiżi u l-immudellar statistiku, nużaw dejta kbira u viżwalizzazzjoni f'Tableau.

Jidher li dan l-approċċ huwa diffiċli ħafna biex taħdem miegħu. Madankollu, billi norganizzaw metriċi u għodod b'mod ġerarkiku, nistgħu nanalizzaw malajr problema, niddeterminaw it-tip ta 'problema, u mbagħad drill down f'metriċi dettaljati. B'mod ġenerali, nqattgħu madwar 1-2 minuti biex nidentifikaw is-sors tat-tqassim. Wara dan, naħdmu ma 'tim speċifiku fuq id-dijanjostika - minn għexieren ta' minuti għal diversi sigħat.

Anke jekk id-dijanjosi ssir malajr, ma rridux li dan iseħħ spiss. Idealment, aħna nirċievu biss twissija kritika meta jkun hemm impatt sinifikanti fuq is-servizz. Għas-sistema ta' aċċelerazzjoni tal-mistoqsijiet tagħna, għandna 2 twissijiet biss li jinnotifikaw:

  • Persentaġġ ta' Fallback tal-Klijent - valutazzjoni tal-imġieba tal-klijent;
  • perċentwali Probe żbalji - dejta tal-istabbiltà tal-komponenti tan-netwerk.

Dawn it-twissijiet kritiċi jimmonitorjaw jekk is-sistema hijiex taħdem għall-maġġoranza tal-utenti. Aħna nħarsu lejn kemm klijenti użaw riżerva jekk ma setgħux jiksbu aċċelerazzjoni tat-talba. Aħna medja ta 'inqas minn twissija kritika 1 fil-ġimgħa, minkejja li hemm ton ta' bidliet għaddejjin fis-sistema. Għaliex dan huwa biżżejjed għalina?

  1. Hemm riżerva tal-klijent jekk il-prokura tagħna ma taħdimx.
  2. Hemm sistema ta 'istering awtomatika li twieġeb għall-problemi.

Aktar dettalji dwar dan tal-aħħar. Is-sistema ta 'prova tagħna, u s-sistema biex tiddetermina awtomatikament l-aħjar triq għal talbiet mill-klijent għall-sħaba, tippermettilna awtomatikament ilaħħqu ma' xi problemi.

Ejja nerġgħu lura għall-konfigurazzjoni tal-kampjun tagħna u 3 kategoriji ta 'passaġġ. Minbarra l-ħin tat-tagħbija, nistgħu nħarsu lejn il-fatt tal-kunsinna innifsu. Jekk ma kienx possibbli li titgħabba d-dejta, allura billi nħarsu lejn ir-riżultati tul mogħdijiet differenti nistgħu niddeterminaw fejn u x'kisser, u jekk nistgħux nirranġawha awtomatikament billi nbiddlu t-triq tat-talba.

Eżempji:

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Dan il-proċess jista 'jiġi awtomatizzat. Inkludiha fis-sistema tal-istering. U għallimha tirrispondi għal problemi ta 'prestazzjoni u affidabilità. Jekk xi ħaġa tibda tkisser, irreaġixxi jekk ikun hemm għażla aħjar. Fl-istess ħin, reazzjoni immedjata mhix kritika, grazzi għal fallback fuq il-klijenti.

Għalhekk, il-prinċipji tal-appoġġ tas-sistema jistgħu jiġu fformulati kif ġej:

  • it-tnaqqis tal-iskala tal-ħsarat;
  • ġbir ta' metriċi;
  • Aħna awtomatikament insewwu ħsarat jekk nistgħu;
  • jekk ma tistax, aħna ninnotifikawk;
  • Qegħdin naħdmu fuq dashboards u sett ta' għodod ta' triage għal rispons rapidu.

Lezzjonijiet Mgħallma

Ma jieħux ħafna ħin biex tikteb prototip. Fil-każ tagħna, kien lest wara 4 xhur. Magħha rċevejna metriċi ġodda, u 10 xhur wara l-bidu tal-iżvilupp irċevejna l-ewwel traffiku tal-produzzjoni. Imbagħad beda x-xogħol tedious u diffiċli ħafna: gradwalment tipproduċi u skala s-sistema, jemigra t-traffiku prinċipali u titgħallem mill-iżbalji. Madankollu, dan il-proċess effettiv mhux se jkun lineari - minkejja l-isforzi kollha, kollox ma jistax jitbassar. Huwa ħafna aktar effettiv li wieħed itenni malajr u jirrispondi għal data ġdida.

Aċċellera t-talbiet tal-internet u torqod bil-paċi

Ibbażat fuq l-esperjenza tagħna, nistgħu nirrakkomandaw dan li ġej:

  1. Tafdax l-intuwizzjoni tiegħek.

    L-intuwizzjoni tagħna fallietna kontinwament, minkejja l-esperjenza vasta tal-membri tat-tim tagħna. Per eżempju, aħna mbassra b'mod żbaljat il-veloċità mistennija mill-użu ta 'proxy CDN, jew l-imġieba ta' TCP Anycast.

  2. Ikseb data mill-produzzjoni.

    Huwa importanti li tikseb aċċess għal mill-inqas ammont żgħir ta 'dejta tal-produzzjoni malajr kemm jista' jkun. Huwa kważi impossibbli li tinkiseb in-numru ta 'każijiet uniċi, konfigurazzjonijiet, u settings f'kundizzjonijiet tal-laboratorju. Aċċess rapidu għar-riżultati jippermettilek titgħallem malajr dwar problemi potenzjali u tqishom fl-arkitettura tas-sistema.

  3. M'għandekx issegwi l-pariri u r-riżultati ta 'nies oħrajn - iġbor id-dejta tiegħek stess.

    Segwi l-prinċipji għall-ġbir u l-analiżi tad-dejta, iżda ma taċċettax bl-addoċċ ir-riżultati u d-dikjarazzjonijiet ta’ nies oħra. Int biss tista' tkun taf eżattament x'jaħdem għall-utenti tiegħek. Is-sistemi tiegħek u l-klijenti tiegħek jistgħu jkunu differenti b'mod sinifikanti minn kumpaniji oħra. Fortunatament, għodod ta 'analiżi issa huma disponibbli u faċli biex jintużaw. Ir-riżultati li tikseb jistgħu ma jkunux dak li jsostnu Netflix, Facebook, Akamai u kumpaniji oħra. Fil-każ tagħna, il-prestazzjoni ta 'TLS, HTTP2 jew statistika dwar talbiet DNS hija differenti mir-riżultati ta' Facebook, Uber, Akamai - għaliex għandna apparati, klijenti u flussi ta 'dejta differenti.

  4. M'għandekx issegwi t-tendenzi tal-moda bla bżonn u tevalwa l-effettività.

    Ibda sempliċi. Huwa aħjar li tagħmel sistema ta 'ħidma sempliċi fi żmien qasir milli tqatta' ammont kbir ta 'ħin tiżviluppa komponenti li m'għandekx bżonn. Issolvi l-kompiti u l-problemi li huma importanti bbażati fuq il-kejl u r-riżultati tiegħek.

  5. Lestu għal applikazzjonijiet ġodda.

    Hekk kif huwa diffiċli li wieħed ibassar il-problemi kollha, huwa diffiċli li wieħed ibassar il-benefiċċji u l-applikazzjonijiet minn qabel. Ħu sinjal minn startups - il-kapaċità tagħhom li jadattaw għall-kundizzjonijiet tal-klijenti. Fil-każ tiegħek, tista 'tiskopri problemi ġodda u s-soluzzjonijiet tagħhom. Fil-proġett tagħna, waqqafna mira li nnaqqsu l-latenza tat-talba. Madankollu, waqt l-analiżi u d-diskussjonijiet, indunajna li nistgħu nużaw ukoll proxy servers:

    • biex tibbilanċja t-traffiku madwar ir-reġjuni tal-AWS u tnaqqas l-ispejjeż;
    • biex timmudella l-istabbiltà tas-CDN;
    • biex tikkonfigura d-DNS;
    • biex tikkonfigura TLS/TCP.

Konklużjoni

Fir-rapport, iddeskrivejt kif Netflix issolvi l-problema tal-aċċellerazzjoni tat-talbiet tal-Internet bejn il-klijenti u l-cloud. Kif niġbru d-dejta bl-użu ta’ sistema ta’ kampjunar fuq il-klijenti, u nużaw id-dejta storika miġbura biex inwasslu t-talbiet tal-produzzjoni mill-klijenti permezz tal-iktar triq mgħaġġla fuq l-Internet. Kif nużaw il-prinċipji tal-protokolli tan-netwerk, l-infrastruttura CDN tagħna, in-netwerk tas-sinsla, u s-servers DNS biex niksbu dan il-kompitu.

Madankollu, is-soluzzjoni tagħna hija biss eżempju ta’ kif aħna f’Netflix implimentajna sistema bħal din. Dak li ħadem għalina. Il-parti applikata tar-rapport tiegħi għalik hija l-prinċipji ta’ żvilupp u appoġġ li nsegwu u niksbu riżultati tajbin.

Is-soluzzjoni tagħna għall-problema tista' ma tkunx adattata għalik. Madankollu, it-teorija u l-prinċipji tad-disinn jibqgħu, anke jekk m'għandekx l-infrastruttura tas-CDN tiegħek stess, jew jekk tkun differenti b'mod sinifikanti minn tagħna.

L-importanza tal-ħeffa tat-talbiet tan-negozju tibqa' importanti wkoll. U anke għal servizz sempliċi trid tagħmel għażla: bejn il-fornituri tal-cloud, il-post tas-server, il-fornituri tas-CDN u DNS. L-għażla tiegħek se tinfluwenza l-effettività tal-mistoqsijiet tal-Internet għall-klijenti tiegħek. U huwa importanti għalik li tkejjel u tifhem din l-influwenza.

Ibda b'soluzzjonijiet sempliċi, tieħu ħsieb kif tibdel il-prodott. Tgħallem kif tmur u ttejjeb is-sistema bbażata fuq data mill-klijenti tiegħek, l-infrastruttura tiegħek, u n-negozju tiegħek. Aħseb dwar il-possibbiltà ta 'ħsarat mhux mistennija matul il-proċess tad-disinn. U mbagħad tista 'tħaffef il-proċess ta' żvilupp tiegħek, ittejjeb l-effiċjenza tas-soluzzjoni, tevita piż ta 'appoġġ bla bżonn u torqod b'mod paċifiku.

Din is-sena il-konferenza se ssir mis-6 sal-10 ta’ Lulju f'format onlajn. Tista' tistaqsi mistoqsijiet lil wieħed mill-missirijiet tad-DevOps, John Willis innifsu!

Sors: www.habr.com

Żid kumment