Akselere demann entènèt ak dòmi anpè

Akselere demann entènèt ak dòmi anpè

Netflix se lidè nan mache televizyon Entènèt la - konpayi an ki te kreye ak ap devlope aktivman segman sa a. Netflix se pa sèlman li te ye pou katalòg vaste li yo nan fim ak seri televizyon ki disponib nan prèske tout kwen nan planèt la ak nenpòt aparèy ki gen yon ekspozisyon, men tou pou enfrastrikti serye li yo ak kilti jeni inik.

Yon egzanp klè sou apwòch Netflix pou devlope ak sipòte sistèm konplèks yo te prezante nan DevOops 2019. Sergey Fedorov - Direktè Devlopman nan Netflix. Gradye nan Fakilte Matematik Konputasyonèl ak Matematik nan Nizhny Novgorod State University. Lobachevsky, Sergey youn nan premye enjenyè yo nan Open Connect - ekip CDN nan Netflix. Li te bati sistèm pou kontwole ak analize done videyo, te lanse yon sèvis popilè pou evalye vitès koneksyon Entènèt FAST.com, epi pou kèk ane ki sot pase yo te travay sou optimize demann entènèt pou aplikasyon Netflix la travay pi vit posib pou itilizatè yo.

Rapò a te resevwa pi bon revizyon nan men patisipan konferans yo, epi nou te prepare yon vèsyon tèks pou ou.

Nan rapò li a, Sergei te pale an detay

  • sou sa ki afekte reta nan demann entènèt ant kliyan an ak sèvè;
  • ki jan diminye reta sa a;
  • ki jan yo konsepsyon, kenbe ak kontwole sistèm ki toleran erè;
  • ki jan yo reyalize rezilta nan yon ti tan, ak risk minim nan biznis la;
  • kijan pou analize rezilta yo epi aprann nan erè.

Repons kesyon sa yo pa sèlman bezwen moun ki travay nan gwo kòperasyon.

Prensip ak teknik yo prezante yo ta dwe konnen ak pratike pa tout moun ki devlope ak sipòte pwodwi entènèt.

Apre sa, se narasyon an nan pèspektiv oratè a.

Enpòtans vitès entènèt la

Vitès demann entènèt la dirèkteman gen rapò ak biznis. Konsidere endistri makèt la: Amazon an 2009 paleke yon reta 100ms rezilta nan yon pèt 1% nan lavant yo.

Gen plis ak plis aparèy mobil, ki te swiv pa sit mobil ak aplikasyon. Si paj ou a pran plis pase 3 segonn pou chaje, w ap pèdi apeprè mwatye nan itilizatè ou yo. AK Jiyè 2018 Google pran an kont vitès chaje paj ou a nan rezilta rechèch la: plis paj la pi vit, se pi wo pozisyon li nan Google.

Vitès koneksyon enpòtan tou nan enstitisyon finansye kote latansi enpòtan. Nan 2015, Hibernia Networks fini yon kab $400 milyon ant New York ak Lond pou redwi latansi ant vil yo a 6ms. Imajine 66 milyon dola pou 1 ms rediksyon latansi!

Dapre rechèch, vitès koneksyon ki pi wo a 5 Mbit/s pa afekte dirèkteman vitès loading yon sit entènèt tipik. Sepandan, gen yon relasyon lineyè ant latansi koneksyon ak vitès chaje paj:

Akselere demann entènèt ak dòmi anpè

Sepandan, Netflix se pa yon pwodwi tipik. Enpak latansi ak vitès sou itilizatè a se yon zòn aktif nan analiz ak devlopman. Gen chaj aplikasyon ak seleksyon kontni ki depann de latansi, men chaje eleman estatik ak difizyon tou depann de vitès koneksyon. Analize ak optimize faktè kle ki enfliyanse eksperyans itilizatè a se yon zòn aktif nan devlopman pou plizyè ekip nan Netflix. Youn nan objektif yo se diminye latansi demann ant aparèy Netflix ak enfrastrikti nwaj la.

Nan rapò a nou pral konsantre espesyalman sou diminye latansi lè l sèvi avèk egzanp enfrastrikti Netflix la. Ann konsidere nan yon pwen de vi pratik ki jan yo apwoche pwosesis yo nan konsepsyon, devlopman ak operasyon nan sistèm distribiye konplèks ak pase tan sou inovasyon ak rezilta, olye ke dyagnostik pwoblèm operasyonèl ak pann.

Anndan Netflix

Dè milye de aparèy diferan sipòte aplikasyon Netflix. Yo devlope pa kat ekip diferan, ki fè vèsyon separe nan kliyan an pou android, iOS, televizyon ak navigatè entènèt. Epi nou depanse anpil efò sou amelyore ak pèsonalize eksperyans itilizatè a. Pou fè sa, nou fè plizyè santèn tès A/B an paralèl.

Pèsonalizasyon sipòte pa plizyè santèn mikwosèvis nan nwaj AWS la, ki bay done itilizatè pèsonalize, dispatch demann, telemetri, gwo done ak kodaj. Vizyalizasyon trafik sanble sa a:

Link nan videyo ak demonstrasyon (6:04-6:23)

Sou bò gòch la se pwen an antre, ak Lè sa a, trafik la distribye pami plizyè santèn mikwosèvis ki sipòte pa ekip backend diferan.

Yon lòt eleman enpòtan nan enfrastrikti nou an se Open Connect CDN, ki delivre kontni estatik itilizatè final la - videyo, imaj, kòd kliyan, elatriye. CDN a sitiye sou sèvè koutim (OCA - Open Connect Appliance). Anndan gen etalaj SSD ak HDD kondwi ki optimize FreeBSD, ak NGINX ak yon seri sèvis. Nou desine ak optimize pyès ki nan konpitè ak konpozan lojisyèl pou yon sèvè CDN konsa ka voye done otank posib bay itilizatè yo.

"Mi" sèvè sa yo nan pwen echanj trafik entènèt la (Internet eXchange - IX) sanble sa a:

Akselere demann entènèt ak dòmi anpè

Echanj Entènèt bay founisè sèvis Entènèt ak founisè kontni kapasite pou yo "konekte" youn ak lòt pou fè echanj done pi dirèkteman sou entènèt la. Gen apeprè 70-80 pwen Echanj Entènèt atravè mond lan kote sèvè nou yo enstale, epi nou enstale yo epi kenbe yo poukont yo:

Akselere demann entènèt ak dòmi anpè

Anplis de sa, nou tou bay sèvè dirèkteman bay founisè entènèt yo, ke yo enstale nan rezo yo, amelyore lokalizasyon trafik Netflix ak kalite difizyon pou itilizatè yo:

Akselere demann entènèt ak dòmi anpè

Yon seri sèvis AWS responsab pou voye demann videyo ki soti nan kliyan yo nan sèvè CDN yo, ansanm ak konfigirasyon sèvè yo tèt yo - mete ajou kontni, kòd pwogram, anviwònman, elatriye. Pou lèt la, nou tou bati yon rezo zo rèl do ki konekte sèvè nan pwen Echanj Entènèt ak AWS. Rezo zo rèl do a se yon rezo mondyal fib optik câbles ak routeurs ke nou ka konsepsyon ak konfigirasyon ki baze sou bezwen nou yo.

Sou Estimasyon Sandvine, enfrastrikti CDN nou an delivre apeprè ⅛ nan trafik entènèt nan mond lan pandan lè pik yo ak ⅓ nan trafik la nan Amerik di Nò, kote Netflix te alantou pi lontan an. Nimewo enpresyonan, men pou mwen youn nan reyalizasyon yo ki pi etonan se ke tout sistèm CDN la devlope ak konsève pa yon ekip ki gen mwens pase 150 moun.

Okòmansman, enfrastrikti CDN te fèt pou delivre done videyo. Sepandan, sou tan nou reyalize ke nou ka sèvi ak li tou pou optimize demann dinamik soti nan kliyan nan nwaj la AWS.

Konsènan akselerasyon entènèt

Jodi a, Netflix gen 3 rejyon AWS, ak latansi demann nan nwaj la pral depann de ki distans kliyan an soti nan rejyon ki pi pre a. An menm tan an, nou gen anpil sèvè CDN ki itilize pou delivre kontni estatik. Èske gen nenpòt fason yo sèvi ak kad sa a akselere demann dinamik? Sepandan, malerezman, li enposib pou kache demann sa yo - API yo pèsonalize epi chak rezilta inik.

Ann fè yon prokurasyon sou sèvè CDN a epi kòmanse voye trafik atravè li. Èske li pral pi vit?

Materyèl

Ann sonje kijan pwotokòl rezo yo travay. Jodi a, pifò trafik sou entènèt la sèvi ak HTTP, ki depann de pwotokòl kouch ki pi ba yo TCP ak TLS. Nan lòd pou yon kliyan konekte ak sèvè a, li fè yon lanmen, ak etabli yon koneksyon an sekirite, kliyan an bezwen fè echanj mesaj ak sèvè a twa fwa ak omwen yon fwa plis transfere done. Avèk yon latansi pou chak vwayaj ale (RTT) 100 ms, li ta pran 400 ms pou nou resevwa premye ti done:

Akselere demann entènèt ak dòmi anpè

Si nou mete sètifika yo sou sèvè CDN a, Lè sa a, tan an lanmen ant kliyan an ak sèvè a ka siyifikativman redwi si CDN a pi pre. Ann sipoze latansi sèvè CDN a se 30ms. Lè sa a, li pral pran 220 ms pou resevwa premye bit la:

Akselere demann entènèt ak dòmi anpè

Men, avantaj yo pa fini la. Yon fwa yo te etabli yon koneksyon, TCP ogmante fenèt konjesyon an (kantite enfòmasyon li ka transmèt sou koneksyon sa a an paralèl). Si yon pake done pèdi, Lè sa a, aplikasyon klasik nan pwotokòl la TCP (tankou TCP New Reno) diminye "fenèt la" louvri a mwatye. Kwasans nan fenèt anbouteyaj la, ak vitès la nan rekiperasyon li yo soti nan pèt ankò depann sou reta a (RTT) nan sèvè a. Si koneksyon sa a sèlman ale osi lwen ke sèvè CDN la, rekiperasyon sa a pral pi vit. An menm tan an, pèt pake se yon fenomèn estanda, espesyalman pou rezo san fil.

Bandwidth Entènèt yo ka redwi, espesyalman nan lè pik yo, akòz trafik itilizatè yo, ki ka mennen nan anbouteyaj. Sepandan, pa gen okenn fason sou entènèt la bay priyorite nan kèk demann sou lòt. Pou egzanp, bay priyorite demann ti ak latansi-sansib sou kouran done "lou" ki chaje rezo a. Sepandan, nan ka nou an, gen pwòp rezo zo rèl do nou an pèmèt nou fè sa sou yon pati nan chemen an demann - ant CDN a ak nwaj la, epi nou ka konplètman konfigirasyon li. Ou ka asire w ke ti pake ak latansi-sansib yo priyorite, ak gwo koule done ale yon ti kras pita. Plis CDN a pwòch kliyan an, se plis efikasite a.

Pwotokòl nivo aplikasyon yo (OSI Nivo 7) tou gen yon enpak sou latansi. Nouvo pwotokòl tankou HTTP/2 optimize pèfòmans demann paralèl yo. Sepandan, nou gen kliyan Netflix ak ansyen aparèy ki pa sipòte nouvo pwotokòl yo. Se pa tout kliyan yo ka mete ajou oswa konfigirasyon optimal. An menm tan an, ant prokurasyon CDN a ak nwaj la gen yon kontwòl konplè ak kapasite pou sèvi ak nouvo pwotokòl ak anviwònman pi bon. Pati ki pa efikas ak ansyen pwotokòl pral sèlman opere ant kliyan an ak sèvè CDN la. Anplis, nou ka fè demann multiplex sou yon koneksyon deja etabli ant CDN ak nwaj la, amelyore itilizasyon koneksyon nan nivo TCP:

Akselere demann entènèt ak dòmi anpè

Nou mezire

Malgre lefèt ke teyori a pwomèt amelyorasyon, nou pa imedyatman prese lanse sistèm nan nan pwodiksyon an. Olye de sa, nou dwe premye pwouve ke lide a pral travay nan pratik. Pou fè sa, ou bezwen reponn plizyè kesyon:

  • Speed: Èske yon prokurasyon ap pi vit?
  • Fyab: Èske l ap kraze pi souvan?
  • Difikilte: ki jan yo entegre ak aplikasyon yo?
  • Koute: Konbyen sa koute pou deplwaye enfrastrikti adisyonèl?

Ann konsidere an detay apwòch nou pou evalye premye pwen an. Rès yo trete nan yon fason menm jan an.

Pou analize vitès demann yo, nou vle jwenn done pou tout itilizatè yo, san yo pa depanse anpil tan nan devlopman ak san yo pa kraze pwodiksyon an. Gen plizyè apwòch pou sa:

  1. RUM, oswa mezi demann pasif. Nou mezire tan egzekisyon demann aktyèl soti nan itilizatè yo epi asire pwoteksyon itilizatè konplè. Dezavantaj la se ke siyal la pa trè estab akòz anpil faktè, pou egzanp, akòz gwosè demann diferan, tan pwosesis sou sèvè a ak kliyan. Anplis de sa, ou pa ka teste yon nouvo konfigirasyon san efè nan pwodiksyon an.
  2. Tès laboratwa. Sèvè espesyal ak enfrastrikti ki simulation kliyan. Avèk èd yo, nou fè tès ki nesesè yo. Nan fason sa a nou jwenn kontwòl konplè sou rezilta mezi yo ak yon siyal klè. Men, pa gen okenn pwoteksyon konplè sou aparèy ak kote itilizatè yo (sitou ak yon sèvis atravè lemond ak sipò pou dè milye de modèl aparèy).

Ki jan ou ka konbine avantaj ki genyen nan tou de metòd?

Ekip nou an te jwenn yon solisyon. Nou te ekri yon ti moso kòd - yon echantiyon - ke nou te bati nan aplikasyon nou an. Sond pèmèt nou fè tès rezo konplètman kontwole nan aparèy nou yo. Li travay tankou sa a:

  1. Yon ti tan apre yo fin chaje aplikasyon an epi fini aktivite inisyal la, nou kouri sond nou yo.
  2. Kliyan an fè yon demann nan sèvè a epi li resevwa yon "resèt" pou tès la. Resèt la se yon lis URL kote yo bezwen yon demann HTTP (yo). Anplis de sa, resèt la configured paramèt demann yo: reta ant demann, kantite done yo mande yo, HTTP (yo) headers, elatriye. An menm tan an, nou ka teste plizyè resèt diferan nan paralèl - lè nou mande yon konfigirasyon, nou detèmine owaza ki resèt bay.
  3. Se tan an lansman pwofonde chwazi pou yo pa konfli ak itilizasyon aktif resous rezo yo sou kliyan an. Esansyèlman, lè a chwazi lè kliyan an pa aktif.
  4. Apre li fin resevwa resèt la, kliyan an fè demann nan chak nan URL yo, an paralèl. Ka demann lan nan chak nan adrès yo dwe repete - sa yo rele an. "batman kè". Sou premye batman kè a, nou mezire konbyen tan li te pran pou etabli yon koneksyon ak telechaje done. Sou dezyèm batman kè a, nou mezire tan li pran pou chaje done sou yon koneksyon deja etabli. Anvan twazyèm youn nan, nou ka mete yon reta ak mezire vitès la nan etabli yon rekoneksyon, elatriye.

    Pandan tès la, nou mezire tout paramèt aparèy la ka jwenn:

    • DNS demann tan;
    • TCP koneksyon tan konfigirasyon;
    • TLS tan konfigirasyon koneksyon;
    • tan pou resevwa premye byte done yo;
    • total chaj tan;
    • estati kòd rezilta.
  5. Apre tout pulsasyon yo fini, echantiyon an chaje tout mezi pou analiz.

Akselere demann entènèt ak dòmi anpè

Pwen kle yo se depandans minim sou lojik sou kliyan an, pwosesis done sou sèvè a ak mezi demann paralèl la. Kidonk, nou kapab izole epi teste enfliyans divès faktè ki afekte pèfòmans rechèch, varye yo nan yon sèl resèt, epi jwenn rezilta nan men kliyan reyèl.

Enfrastrikti sa a pwouve itil pou plis pase analiz pèfòmans rechèch. Kounye a nou gen 14 resèt aktif, plis pase 6000 echantiyon pou chak segonn, k ap resevwa done ki sòti nan tout kwen sou latè ak pwoteksyon konplè aparèy. Si Netflix te achte yon sèvis menm jan an nan men yon twazyèm pati, li ta koute dè milyon de dola pa ane, ak pi mal kouvèti asirans.

Tès teyori nan pratik: pwototip

Avèk yon sistèm konsa, nou te kapab evalye efikasite nan proxy CDN sou latansi demann. Kounye a ou bezwen:

  • kreye yon pwototip prokurasyon;
  • mete pwototip la sou yon CDN;
  • detèmine kijan pou dirije kliyan yo nan yon proxy sou yon sèvè CDN espesifik;
  • Konpare pèfòmans ak demann nan AWS san yon prokurasyon.

Travay la se evalye efikasite solisyon yo pwopoze a pi vit posib. Nou te chwazi Go pou aplike pwototip la akòz disponiblite bon bibliyotèk rezo. Sou chak sèvè CDN, nou enstale proxy pwototip la kòm yon binè estatik pou minimize depandans ak senplifye entegrasyon. Nan premye aplikasyon an, nou te itilize konpozan estanda otank posib ak modifikasyon minè pou HTTP/2 koneksyon pisin ak demann multiplexage.

Pou balans ant rejyon AWS yo, nou te itilize yon baz done jeyografik DNS, menm yon sèl ki itilize pou balanse kliyan yo. Pou chwazi yon sèvè CDN pou kliyan an, nou itilize TCP Anycast pou sèvè nan Echanj Entènèt (IX). Nan opsyon sa a, nou itilize yon adrès IP pou tout sèvè CDN, epi kliyan an pral dirije sou sèvè CDN la ak pi piti kantite IP hop. Nan sèvè CDN ki enstale pa founisè Entènèt (ISP), nou pa gen kontwòl sou routeur pou konfigirasyon TCP Anycast, kidonk nou itilize menm lojik, ki dirije kliyan yo bay founisè entènèt pou difizyon videyo.

Se konsa, nou gen twa kalite chemen demann: nan nwaj la atravè entènèt la louvri, atravè yon sèvè CDN nan IX, oswa atravè yon sèvè CDN ki sitiye nan yon founisè entènèt. Objektif nou se konprann ki fason ki pi bon, ak ki benefis yon proxy, konpare ak fason yo voye demann nan pwodiksyon an. Pou fè sa, nou itilize yon sistèm echantiyon jan sa a:

Akselere demann entènèt ak dòmi anpè

Chak nan chemen yo vin tounen yon sib separe, epi nou gade nan tan an nou te resevwa. Pou analiz, nou konbine rezilta prokurasyon yo nan yon sèl gwoup (chwazi pi bon moman ant prokurasyon IX ak ISP), epi konpare yo ak tan demann nan nwaj la san yon prokurasyon:

Akselere demann entènèt ak dòmi anpè

Kòm ou ka wè, rezilta yo te melanje - nan pifò ka yo prokurasyon bay yon vitès bon, men gen tou yon kantite ase nan kliyan pou moun sitiyasyon an ap vin pi mal anpil.

Kòm rezilta, nou te fè plizyè bagay enpòtan:

  1. Nou evalye pèfòmans espere demann kliyan yo nan nwaj la atravè yon proxy CDN.
  2. Nou te resevwa done ki soti nan kliyan reyèl, ki soti nan tout kalite aparèy.
  3. Nou reyalize ke teyori a pa te konfime 100% ak òf inisyal la ak yon proxy CDN pa ta travay pou nou.
  4. Nou pa t pran risk - nou pa t chanje konfigirasyon pwodiksyon pou kliyan yo.
  5. Pa gen anyen ki te kraze.

Pwototip 2.0

Se konsa, tounen nan tablo a desen epi repete pwosesis la tout lòt peyi sou ankò.

Lide a se ke olye pou yo sèvi ak yon prokurasyon 100%, nou pral detèmine chemen ki pi rapid pou chak kliyan, epi nou pral voye demann la - se sa ki, nou pral fè sa yo rele kliyan direction.

Akselere demann entènèt ak dòmi anpè

Ki jan yo aplike sa a? Nou pa ka sèvi ak lojik sou bò sèvè a, paske... Objektif la se konekte ak sèvè sa a. Li bezwen gen kèk fason pou fè sa sou kliyan an. Ak depreferans, fè sa ak yon kantite minimòm lojik konplèks, se konsa yo pa rezoud pwoblèm nan nan entegrasyon ak yon gwo kantite tribin kliyan.

Repons lan se sèvi ak DNS. Nan ka nou an, nou gen pwòp enfrastrikti DNS nou, epi nou ka mete kanpe yon zòn domèn pou ki sèvè nou yo pral otoritè. Li travay tankou sa a:

  1. Kliyan an fè yon demann nan sèvè dns la lè l sèvi avèk yon lame, pou egzanp api.netflix.xom.
  2. Demann lan rive sou sèvè dns nou an
  3. Sèvè dns la konnen ki chemen ki pi rapid pou kliyan sa a epi li bay adrès IP ki koresponn lan.

Solisyon an gen yon konpleksite adisyonèl: founisè DNS otoritè yo pa wè adrès IP kliyan an epi yo ka sèlman li adrès IP rezolisyon repetitif kliyan an itilize.

Kòm yon rezilta, rezolisyon otoritè nou an dwe pran yon desizyon pa pou yon kliyan endividyèl, men pou yon gwoup kliyan ki baze sou rezolisyon repetitif la.

Pou rezoud, nou itilize menm echantiyon yo, nou rasanble rezilta mezi kliyan yo pou chak rezolisyon repetitif yo epi nou deside ki kote pou nou voye gwoup sa a - yon prokurasyon atravè IX lè l sèvi avèk TCP Anycast, atravè yon proxy ISP, oswa dirèkteman nan nwaj la.

Nou jwenn sistèm sa a:

Akselere demann entènèt ak dòmi anpè

Modèl volan DNS ki kapab lakòz ou pèmèt ou dirije kliyan ki baze sou obsèvasyon istorik sou vitès koneksyon ki soti nan kliyan ak nwaj la.

Yon fwa ankò, kesyon an se ki jan efektivman apwòch sa a pral travay? Pou reponn, nou ankò itilize sistèm sonde nou an. Se poutèt sa, nou konfigirasyon konfigirasyon prezantatè a, kote youn nan objektif yo swiv direksyon DNS volan, lòt la ale dirèkteman nan nwaj la (pwodiksyon aktyèl la).

Akselere demann entènèt ak dòmi anpè

Kòm yon rezilta, nou konpare rezilta yo epi jwenn yon evalyasyon efikasite nan:

Akselere demann entènèt ak dòmi anpè

Kòm rezilta, nou te aprann plizyè bagay enpòtan:

  1. Nou te evalye pèfòmans espere demann kliyan yo nan nwaj la lè l sèvi avèk DNS Steering.
  2. Nou te resevwa done ki soti nan kliyan reyèl, ki soti nan tout kalite aparèy.
  3. Efikasite lide pwopoze a te pwouve.
  4. Nou pa t pran risk - nou pa t chanje konfigirasyon pwodiksyon pou kliyan yo.
  5. Pa gen anyen ki te kraze.

Koulye a, sou pati nan difisil - nou lanse li nan pwodiksyon an

Pati ki fasil se kounye a fini - gen yon pwototip k ap travay. Koulye a, pati difisil la se lanse yon solisyon pou tout trafik Netflix la, deplwaye nan 150 milyon itilizatè, dè milye de aparèy, dè santèn de mikwosèvis, ak yon pwodwi ak enfrastrikti ki toujou ap chanje. Sèvè Netflix resevwa dè milyon de demann pou chak segonn, epi li fasil pou kraze sèvis la ak aksyon neglijan. An menm tan an, nou vle dinamik wout trafik atravè dè milye de sèvè CDN sou entènèt la, kote yon bagay chanje ak kraze toujou ap ak nan moman ki pi inoportun.

Ak tout bagay sa yo, ekip la gen 3 enjenyè ki responsab pou devlopman, deplwaman ak sipò konplè nan sistèm nan.

Se poutèt sa, nou pral kontinye pale sou dòmi anrestant ak an sante.

Ki jan yo kontinye devlopman epi pa pase tout tan ou sou sipò? Apwòch nou an baze sou 3 prensip:

  1. Nou redwi echèl potansyèl pann yo (reyon eksplozyon).
  2. Nou ap prepare pou sipriz - nou espere ke yon bagay pral kraze, malgre tès ak eksperyans pèsonèl.
  3. Graceful degradasyon - si yon bagay pa travay byen, li ta dwe fiks otomatikman, menm si se pa nan fason ki pi efikas.

Li te tounen soti ke nan ka nou an, ak apwòch sa a nan pwoblèm nan, nou ka jwenn yon solisyon senp ak efikas ak siyifikativman senplifye sipò sistèm. Nou reyalize ke nou ta ka ajoute yon ti moso kòd nan kliyan an epi kontwole pou erè demann rezo ki te koze pa pwoblèm koneksyon. Nan ka ta gen erè rezo, nou fè yon repli dirèkteman nan nwaj la. Solisyon sa a pa mande gwo efò pou ekip kliyan yo, men anpil diminye risk pou pann inatandi ak supriz pou nou.

Natirèlman, malgre repli a, nou toujou swiv yon disiplin klè pandan devlopman:

  1. Egzanp tès.
  2. Tès A/B oswa Canaries.
  3. Pwogresisman deplwaye.

Avèk echantiyon, yo te dekri apwòch la - chanjman yo premye teste lè l sèvi avèk yon resèt Customized.

Pou tès Canary, nou bezwen jwenn pè konparab nan sèvè sou ki nou ka konpare ki jan sistèm nan travay anvan ak apre chanjman yo. Pou fè sa, nan anpil sit CDN nou yo, nou chwazi pè sèvè ki resevwa trafik konparab:

Akselere demann entènèt ak dòmi anpè

Lè sa a, nou enstale bati a ak chanjman yo sou sèvè Canary a. Pou evalye rezilta yo, nou kouri yon sistèm ki konpare apeprè 100-150 paramèt ak yon echantiyon sèvè kontwòl:

Akselere demann entènèt ak dòmi anpè

Si tès Canary gen siksè, Lè sa a, nou lage li piti piti, nan vag. Nou pa mete ajou sèvè sou chak sit an menm tan - pèdi yon sit antye akòz pwoblèm gen yon enpak pi enpòtan sou sèvis la pou itilizatè pase pèdi menm kantite sèvè nan diferan kote.

An jeneral, efikasite ak sekirite apwòch sa a depann de kantite ak kalite mezi yo kolekte. Pou sistèm akselerasyon rechèch nou an, nou kolekte mezi nan tout konpozan posib:

  • soti nan kliyan - kantite sesyon ak demann, pousantaj repli;
  • prokurasyon - estatistik sou kantite ak lè demann yo;
  • DNS - nimewo ak rezilta demann yo;
  • nwaj kwen - nimewo ak tan pou tretman demann nan nwaj la.

Tout bagay sa yo kolekte nan yon sèl tiyo, epi, tou depann de bezwen yo, nou deside ki mezi yo voye nan analiz an tan reyèl, ak kilès nan Elasticsearch oswa Big Data pou dyagnostik plis detay.

Nou kontwole

Akselere demann entènèt ak dòmi anpè

Nan ka nou an, nou ap fè chanjman sou chemen kritik demann ant kliyan an ak sèvè. An menm tan an, kantite eleman diferan sou kliyan an, sou sèvè a, ak sou wout la atravè entènèt la se menmen. Chanjman sou kliyan an ak sèvè fèt toujou - pandan travay plizyè douzèn ekip ak chanjman natirèl nan ekosistèm la. Nou nan mitan - lè dyagnostik pwoblèm, gen yon bon chans nou pral patisipe. Se poutèt sa, nou bezwen klèman konprann ki jan yo defini, kolekte ak analize mezi yo byen vit izole pwoblèm.

Idealman, aksè konplè a tout kalite mezi ak filtè an tan reyèl. Men, gen yon anpil nan mezi, kidonk kesyon pri a rive. Nan ka nou an, nou separe mezi ak zouti devlopman jan sa a:

Akselere demann entènèt ak dòmi anpè

Pou detekte ak triyay pwoblèm nou sèvi ak pwòp sistèm louvri-sous nou an tan reyèl Atlas и Lumen - pou vizyalizasyon. Li estoke mezi total nan memwa, li serye epi li entegre ak sistèm alèt la. Pou lokalizasyon ak dyagnostik, nou gen aksè a mòso bwa ki soti nan Elasticsearch ak Kibana. Pou analiz estatistik ak modèl, nou itilize gwo done ak vizyalizasyon nan Tableau.

Li sanble ke apwòch sa a trè difisil pou travay avèk yo. Sepandan, lè nou òganize metrik ak zouti yerarchikman, nou ka byen vit analize yon pwoblèm, detèmine kalite pwoblèm nan, ak Lè sa a, fè egzèsis nan mezi detaye. An jeneral, nou pase apeprè 1-2 minit pou idantifye sous pann lan. Apre sa, nou travay ak yon ekip espesifik sou dyagnostik - soti nan dè dizèn de minit jiska plizyè èdtan.

Menm si yo fè dyagnostik la byen vit, nou pa vle sa a rive souvan. Idealman, nou pral resevwa yon alèt kritik sèlman lè gen yon enpak enpòtan sou sèvis la. Pou sistèm akselerasyon demann nou an, nou gen sèlman 2 alèt ki pral notifye:

  • Kliyan Fallback pousantaj - evalyasyon konpòtman kliyan;
  • pousantaj Probe erè - done estabilite nan eleman rezo yo.

Alèt kritik sa yo kontwole si sistèm nan ap travay pou majorite itilizatè yo. Nou gade konbyen kliyan ki itilize repli si yo pa t kapab jwenn akselerasyon demann. Nou mwayèn mwens pase 1 alèt kritik pa semèn, menm si gen yon tòn chanjman k ap fèt nan sistèm nan. Poukisa sa a ase pou nou?

  1. Gen yon repli kliyan si proxy nou an pa travay.
  2. Gen yon sistèm volan otomatik ki reponn a pwoblèm.

Plis detay sou lèt la. Sistèm jijman nou an, ak sistèm pou detèmine otomatikman chemen an pi bon pou demann soti nan kliyan an nan nwaj la, pèmèt nou otomatikman fè fas ak kèk pwoblèm.

Ann retounen nan konfigirasyon echantiyon nou an ak 3 kategori chemen. Anplis de sa nan chaje tan, nou ka gade nan reyalite a nan livrezon tèt li. Si li pa t 'posib chaje done yo, Lè sa a, lè w gade rezilta yo sou diferan chemen nou ka detèmine ki kote ak sa ki te kraze, epi si nou ka otomatikman ranje li pa chanje chemen demann lan.

Egzanp:

Akselere demann entènèt ak dòmi anpè

Akselere demann entènèt ak dòmi anpè

Akselere demann entènèt ak dòmi anpè

Pwosesis sa a ka otomatize. Mete li nan sistèm volan an. Epi anseye li pou reponn a pwoblèm pèfòmans ak fyab. Si yon bagay kòmanse kraze, reyaji si gen yon pi bon opsyon. An menm tan an, yon reyaksyon imedya se pa kritik, gras a repli sou kliyan yo.

Kidonk, prensip sipò sistèm yo ka formul jan sa a:

  • diminye echèl pann yo;
  • kolekte mezi;
  • Nou otomatikman repare pann si nou kapab;
  • si li pa kapab, nou fè w konnen;
  • Nou ap travay sou tablodbò ak zouti triyaj pou repons rapid.

Leson Aprann

Li pa pran anpil tan pou ekri yon pwototip. Nan ka nou an, li te pare apre 4 mwa. Avèk li nou te resevwa nouvo mezi, ak 10 mwa apre kòmansman devlopman nou te resevwa premye trafik pwodiksyon an. Lè sa a, travay la fatigan ak trè difisil te kòmanse: piti piti pwodwi ak echèl sistèm nan, imigre trafik prensipal la ak aprann nan erè. Sepandan, pwosesis efikas sa a pa pral lineyè - malgre tout efò, tout bagay pa ka prevwa. Li pi efikas pou rapidman repete epi reponn a nouvo done.

Akselere demann entènèt ak dòmi anpè

Dapre eksperyans nou an, nou ka rekòmande sa ki annapre yo:

  1. Pa fè entwisyon w konfyans.

    Entwisyon nou an echwe nou toujou ap, malgre eksperyans nan vas nan manm ekip nou an. Pa egzanp, nou te mal prevwa akselerasyon an te espere nan itilize yon proxy CDN, oswa konpòtman TCP Anycast.

  2. Jwenn done ki soti nan pwodiksyon an.

    Li enpòtan pou jwenn aksè a omwen yon ti kantite done pwodiksyon pi vit ke posib. Li prèske enposib pou jwenn kantite ka inik, konfigirasyon, ak anviwònman nan kondisyon laboratwa. Aksè rapid nan rezilta yo pral pèmèt ou byen vit aprann sou pwoblèm potansyèl yo epi pran yo an kont nan achitekti sistèm lan.

  3. Pa swiv konsèy lòt moun ak rezilta yo - kolekte pwòp done ou.

    Swiv prensip yo pou kolekte ak analize done, men pa avèg aksepte rezilta ak deklarasyon lòt moun. Se sèlman ou ka konnen egzakteman sa ki travay pou itilizatè ou yo. Sistèm ou yo ak kliyan ou yo ka siyifikativman diferan de lòt konpayi yo. Erezman, zouti analiz yo disponib kounye a epi yo fasil pou itilize. Rezilta ou jwenn yo ka pa sa Netflix, Facebook, Akamai ak lòt konpayi yo reklame. Nan ka nou an, pèfòmans TLS, HTTP2 oswa estatistik sou demann DNS diferan de rezilta Facebook, Uber, Akamai - paske nou gen diferan aparèy, kliyan ak koule done.

  4. Pa swiv tandans alamòd san nesesite epi evalye efikasite.

    Kòmanse senp. Li pi bon pou fè yon sistèm k ap travay senp nan yon ti tan pase pase yon gwo kantite tan devlope eleman ke ou pa bezwen. Rezoud travay ak pwoblèm ki gen pwoblèm ki baze sou mezi ou ak rezilta yo.

  5. Pare pou nouvo aplikasyon.

    Menm jan li difisil pou predi tout pwoblèm yo, li difisil pou predi benefis ak aplikasyon yo davans. Pran yon siy nan demaraj - kapasite yo pou adapte yo ak kondisyon kliyan yo. Nan ka w, ou ka dekouvri nouvo pwoblèm ak solisyon yo. Nan pwojè nou an, nou fikse yon objektif pou redwi latansi demann. Sepandan, pandan analiz ak diskisyon yo, nou reyalize ke nou ka itilize tou serveurs proxy:

    • balanse trafik atravè rejyon AWS yo epi redwi depans yo;
    • modèl CDN estabilite;
    • konfigirasyon dns;
    • pou konfigirasyon TLS/TCP.

Konklizyon

Nan rapò a, mwen te dekri kijan Netflix rezoud pwoblèm nan akselere demann entènèt ant kliyan ak nwaj la. Ki jan nou kolekte done lè l sèvi avèk yon sistèm echantiyon sou kliyan yo, epi sèvi ak done istorik yo kolekte nan wout demann pwodiksyon soti nan kliyan atravè chemen ki pi rapid sou entènèt la. Ki jan nou itilize prensip pwotokòl rezo yo, enfrastrikti CDN nou an, rezo zo rèl do nou an, ak sèvè DNS pou reyalize travay sa a.

Sepandan, solisyon nou an se jis yon egzanp sou fason nou nan Netflix aplike yon sistèm konsa. Sa ki te travay pou nou. Pati ki aplike nan rapò mwen an pou ou se prensip devlopman ak sipò ke nou swiv epi reyalize bon rezilta.

Solisyon nou an nan pwoblèm nan ka pa adapte ou. Sepandan, teyori ak prensip konsepsyon yo rete, menm si ou pa gen pwòp enfrastrikti CDN ou, oswa si li diferan anpil ak pa nou an.

Enpòtans vitès demann biznis yo tou rete enpòtan. E menm pou yon sèvis senp ou bezwen fè yon chwa: ant founisè nwaj, kote sèvè, CDN ak founisè dns. Chwa w ap enfliyanse efikasite demann entènèt pou kliyan ou yo. Epi li enpòtan pou w mezire epi konprann enfliyans sa a.

Kòmanse ak solisyon senp, pran swen sou fason ou chanje pwodwi a. Aprann pandan w ap ale epi amelyore sistèm nan ki baze sou done kliyan ou yo, enfrastrikti ou yo ak biznis ou. Reflechi sou posibilite pou pann inatandi pandan pwosesis konsepsyon an. Lè sa a, ou ka akselere pwosesis devlopman ou, amelyore efikasite solisyon, evite fado sipò nesesè ak dòmi anpè.

Ane sa a konferans la ap fèt soti 6 Jiyè rive 10 nan fòma sou entènèt. Ou ka poze kesyon ak youn nan papa DevOps yo, John Willis li menm!

Sous: www.habr.com

Add nouvo kòmantè