
Netflix waa hogaamiyaha suuqa telefishinka internetka - shirkadda abuuray oo si firfircoon u horumarinaysa qaybtan. Netflix looma yaqaan oo keliya buug-yaraha filimada iyo taxanaha TV-ga ee laga heli karo ku dhawaad gees kasta oo meeraha iyo aalad kasta oo leh bandhig, laakiin sidoo kale kaabayaasha la isku halayn karo iyo dhaqanka injineernimada gaarka ah.
Tusaale cad oo ah habka Netflix ee horumarinta iyo taageeridda nidaamyada adag ayaa lagu soo bandhigay DevOops 2019 - Agaasimaha Horumarinta ee Netflix. Ka qalin jabiyay Kuliyadda Xisaabaadka iyo Xisaabta ee Jaamacadda Gobolka Nizhny Novgorod. Lobachevsky, Sergey, mid ka mid ah injineerada ugu horreeya ee Open Connect - kooxda CDN ee Netflix. Waxa uu dhisay nidaamyo lagu kormeero laguna falanqeeyo xogta muuqaalka ah, waxa uu bilaabay adeeg caan ah oo lagu qiimeeyo xawaaraha xidhiidhka Internetka ee FAST.com, dhawrkii sano ee u dambeeyay waxa uu ka shaqaynayay tayaynta codsiyada Internetka si codsiga Netflix uu ugu shaqeeyo sida ugu dhakhsaha badan ee suurtogalka ah ee isticmaalayaasha.
Warbixintu waxay heshay dib u eegistii ugu wacnayd ee ka qaybgalayaasha shirka, waxaanan kuu diyaarinay nuqul qoraal ah.

Warbixintiisa, Sergei wuxuu si faahfaahsan uga hadlay
- ku saabsan waxa saameeya dib u dhaca codsiyada internetka ee u dhexeeya macmiilka iyo server;
- sida loo yareeyo dib u dhacan;
- sida loo naqshadeeyo, loo ilaaliyo loona kormeero nidaamyada u dulqaadan kara khaladaadka;
- sida loo gaaro natiijooyin waqti gaaban, iyo khatarta ugu yar ee ganacsiga;
- sida loo falanqeeyo natiijooyinka loogana barto khaladaadka.
Jawaabaha su'aalahan looma baahna oo kaliya kuwa ka shaqeeya shirkadaha waaweyn.
Mabaadi'da iyo farsamooyinka la soo bandhigay waa in la yaqaan oo ku dhaqmaa qof kasta oo horumariya oo taageera alaabta internetka.
Midda xigta waa sheekadu marka laga eego dhinaca hadalka.
Muhiimadda xawaaraha internetka
Xawaaraha codsiyada internetka ayaa si toos ah ula xiriira ganacsiga. Tixgeli warshadaha wax iibsiga: Amazon 2009 in dib u dhac 100ms ah uu keeno khasaare 1% iibka ah.
Waxaa sii badanaya aaladaha mobilada, oo ay ku xigto shabakadaha mobilada iyo codsiyada. Haddii boggaagu uu qaato in ka badan 3 ilbiriqsi in la soo shubo, waxa aad luminaysaa kala badh isticmaalayaashaada. leh Google waxa ay ku xisaabtamaysaa xawaaraha rarka boggaaga ee natiijooyinka raadinta: hadba sida uu boggu u dhakhsaha badan yahay, waxa uu sare ugu qaadaa booskiisa Google.
Xawaaraha isku xidhka ayaa sidoo kale muhiim u ah hay'adaha maaliyadeed halkaas oo daahitaanku ay muhiim tahay. 2015, Shabakadda Hibernia xadhig $400 milyan ah oo u dhexeeya New York iyo London si loo yareeyo daahitaanka u dhexeeya magaalooyinka 6ms. Bal qiyaas $66 milyan 1 ms ee dhimista daahitaanka!
Sida laga soo xigtay , Xawaaraha isku xirka ka sarreeya 5 Mbit/s si toos ah uma saameynayo xawaaraha rarka ee mareegaha caadiga ah. Si kastaba ha ahaatee, waxa jira xidhiidh toosan oo ka dhexeeya daahitaanka xidhiidhka iyo xawaaraha bogga:

Si kastaba ha noqotee, Netflix maaha badeecad caadi ah. Saamaynta daahitaanka iyo xawaaraha isticmaaluhu waa aag firfircoon oo falanqayn iyo horumarin ah. Waxaa jira rarid codsi iyo xulasho nuxur ku xiran daahitaanka, laakiin rarka walxaha taagan iyo qulqulka ayaa sidoo kale ku xiran xawaaraha isku xirka. Falanqaynta iyo wanaajinta qodobbada muhiimka ah ee saameeya khibradda adeegsadaha waa aag firfircoon oo horumarineed oo loogu talagalay kooxo badan oo Netflix ah. Mid ka mid ah yoolalka ayaa ah in la yareeyo daahitaanka codsiyada u dhexeeya aaladaha Netflix iyo kaabayaasha daruuraha.
Warbixinta waxaan si gaar ah diiradda u saari doonaa yareynta daahitaanka iyadoo la adeegsanayo tusaale ahaan kaabayaasha Netflix. Aynu ka fikirno aragti wax ku ool ah sida loo wajaho hababka naqshadaynta, horumarinta iyo hawlgalka nidaamyada la qaybiyey ee adag oo aan waqti ku bixinno hal-abuurka iyo natiijooyinka, halkii aan ogaan lahayn dhibaatooyinka hawlgalka iyo burburka.
Gudaha Netflix
Kumanaan qalab oo kala duwan ayaa taageera barnaamijyada Netflix. Waxaa soo saaray afar kooxood oo kala duwan, mid walbana wuxuu u sameeyaa noocyo macaamiil oo gaar ah Android, iOS, TV, iyo biraawsarrada shabakadda. Waxaan sidoo kale si adag uga shaqeyneynaa sidii aan u horumarin lahayn oo aan u shaqsiyeyn lahayn khibradda isticmaalaha, annagoo fulinayna boqolaal tijaabo oo A/B ah oo isku mar ah.
Shakhsiyeynta waxaa taageera boqolaal adeeg yar oo ku jira daruurta AWS, iyadoo bixisa xogta isticmaale ee gaarka ah, diritaanka weydiinta, telemetry, Xogta Weyn iyo Codeynta. Aragtida gaadiidku waxay u egtahay sidan:
Dhanka bidix waxaa ku yaal barta laga soo galo, ka dibna taraafikada waxaa loo qaybiyaa dhowr boqol oo adeeg yar yar oo ay taageerayaan kooxo kala duwan.
Qayb kale oo muhiim ah oo ka mid ah kaabayaashayada waa Open Connect CDN, kaas oo u gudbiya nuxurka joogtada ah isticmaalaha ugu dambeeya - fiidiyowyada, sawirada, lambarka macmiilka, iwm. CDN-gu waxa uu ku yaalaa adeegayaasha gaarka ah (OCA - Fur Connect Appliance). Gudaha waxaa ku jira habab SSD iyo HDD ah oo ku shaqeeya FreeBSD la hagaajiyay, oo leh NGINX iyo adeegyo kala duwan. Waxaan naqshadeynaa oo aan wanaajinaa qaybaha qalabka iyo softiweerka si server-ka CDN uu u soo diro xogta ugu badan ee suurtogalka ah isticmaaleyaasha.
"Darbiga" server-yadan oo ku yaal barta isweydaarsiga taraafikada internetka (Internet eXchange - IX) waxay u egtahay sidan:

Isweydaarsiga Internetka waxa uu siiya awooda adeeg bixiyayaasha Internetka iyo bixiyayaasha macluumaadka in ay “ku xidhmaan” midba midka kale si ay si toos ah ugu beddelaan xogta internetka. Waxaa jira ku dhawaad 70-80 goobood oo Isweydaarsiga Internetka oo adduunka oo dhan lagu rakibay seerfaradayada, waxaanan si madaxbanaan u rakibnay una ilaalinayna:

Intaa waxaa dheer, waxaan sidoo kale si toos ah u siinaa adeegayaasha internetka bixiyeyaasha internetka, kuwaas oo ay ku rakibaan shabakadooda, hagaajinta degaanka ee taraafikada Netflix iyo tayada qulqulka isticmaalayaasha:

Qayb ka mid ah adeegyada AWS ayaa mas'uul ka ah u dirida codsiyada fiidyowga macaamiisha CDN server-yada, iyo sidoo kale habaynta server-yada laftooda - cusbooneysiinta nuxurka, code code, settings, iwm. Midda dambe, waxaan sidoo kale dhisnay shabakad laf-dhabarta oo isku xirta server-yada dhibcaha Is-weydaarsiga Internetka iyo AWS. Shabakadda laf-dhabarta waa shabakad caalami ah oo fiilooyinka fiber optic iyo router kuwaas oo aan naqshadeyn karno kuna habeyn karno baahidayada.
By Kaabayaashayada CDN waxay bixiyaan ku dhawaad ⅛ taraafikada internetka adduunka saacadaha ugu sarreeya iyo ⅓ taraafikada Waqooyiga Ameerika, halkaasoo Netflix ay ku jirtay muddada ugu dheer. Tirooyinka cajiibka ah, laakiin aniga mid ka mid ah guulaha ugu yaabka badan ayaa ah in dhammaan nidaamka CDN ay horumariyaan oo ay ilaaliyaan koox ka yar 150 qof.
Markii hore, kaabayaasha CDN waxaa loogu talagalay in lagu gudbiyo xogta fiidiyowga. Si kastaba ha ahaatee, wakhti ka dib waxaan ogaanay inaan sidoo kale u isticmaali karno si aan u wanaajino codsiyada firfircoon ee macaamiisha ku jira daruuraha AWS.
Ku saabsan dardargelinta internetka
Maanta, Netflix waxay leedahay gobollada 3 AWS, iyo daahitaanka codsiyada daruuraha waxay ku xirnaan doontaa inta uu macaamiishu uga fog yahay gobolka ugu dhow. Isla mar ahaantaana, waxaanu haynaa adeegayaal badan oo CDN ah oo loo isticmaalo in lagu gudbiyo nuxurka taagan. Ma jirtaa hab loo isticmaalo qaabkan si loo dedejiyo weydiimaha firfircoon? Si kastaba ha ahaatee, nasiib daro, suurtagal maaha in la kaydiyo codsiyadan - API-yadu waa kuwo la gaaryeelay, natiijaduna waa mid gaar ah.
Aan ku samayno wakiil ka mid ah server-ka CDN oo aan bilowno diritaanka taraafiga dhexdiisa. Ma dhakhso badan doontaa?
Materiel
Aynu xasuusanno sida borotokoolka shabakadu u shaqeeyaan. Maanta, inta badan taraafikada internetka waxay isticmaashaa HTTPs, taas oo ku xidhan borotokoolka lakabka hoose ee TCP iyo TLS. Si macmiilku ugu xidhmo server-ka, waxa uu samaynayaa gacan-qaad, iyo si loo sameeyo xidhiidh sugan, macmiilku waxa uu u baahan yahay in uu farriimaha is dhaafsado serverka saddex jeer iyo ugu yaraan hal mar oo kale si uu xogta u gudbiyo. Iyadoo daahitaanka safar wareeg ah (RTT) oo ah 100 ms, waxay nagu qaadanaysaa 400 ms si aan u helno xogta ugu horreysa:

Haddii aan ku dhejino shahaadooyinka server-ka CDN, markaa wakhtiga is-gacan-qaadka ee u dhexeeya macmiilka iyo server-ka ayaa si weyn hoos loogu dhigi karaa haddii CDN-gu u dhow yahay. Aynu ka soo qaadno daahitaanka serverka CDN waa 30ms. Markaa waxay qaadan doontaa 220 ms in la helo qaybta ugu horreysa:

Laakiin faa'iidooyinka halkaas kuma dhammaan. Marka xiriirka la sameeyo, TCP waxay kordhisaa daaqada ciriiriga ah (xadadka macluumaadka ay u gudbin karto xiriirkaas barbar socda). Haddii xirmo xogeed lumo, ka dib hirgelinta caadiga ah ee borotokoolka TCP (sida TCP New Reno) waxay yaraynaysaa "daaqadda" furan nus. Koritaanka daaqada ciriiriga ah, iyo xawaaraha ka soo kabashada khasaaraha mar kale waxay ku xiran tahay dib u dhigista (RTT) ee server-ka. Haddii xiriirkani uu gaaro oo kaliya ilaa server-ka CDN, soo kabashadani waxay noqon doontaa mid degdeg ah. Isla mar ahaantaana, luminta xirmooyinka waa dhacdo caadi ah, gaar ahaan shabakadaha wireless.
Xawaaladaha intarneedka ayaa laga yaabaa in la dhimo, gaar ahaan saacadaha ugu sarreeya, taas oo ay ugu wacan tahay taraafikada isticmaalayaasha, taas oo keeni karta ciriiriga gaadiidka. Si kastaba ha ahaatee, ma jirto hab internetka ah oo looga hormariyo codsiyada qaar kuwa kale. Tusaale ahaan, mudnaanta sii codsiyada yaryar iyo kuwa xasaasiga ah ee daahsoon ee qulqulka xogta "culus" ee ku shuba shabakadda. Si kastaba ha ahaatee, kiiskeena, haysashada shabakad laf dhabarta ayaa noo ogolaanaysa inaan tan ku samayno qayb ka mid ah jidka codsiga - inta u dhaxaysa CDN iyo daruuraha, waxaanan si buuxda u habeyn karnaa. Waxaad hubin kartaa in xirmooyinka yaryar iyo kuwa xasaasiga ah ee daahsoon ay mudnaanta siiyaan, iyo socodka xogta weyni wax yar ka dib. Marka uu CDN-gu u dhawaado macmiilka, ayaa hufnaanta sii weynaysaa.
Nidaamyada heerka codsiga (Heerka OSI 7) ayaa sidoo kale saameyn ku leh daahitaanka. Nidaamyada cusub sida HTTP/2 waxay wanaajiyaan waxqabadka codsiyada barbar socda. Si kastaba ha ahaatee, waxaan haynaa macaamiisha Netflix oo wata qalab duug ah oo aan taageerin borotokoolka cusub. Dhammaan macaamiisha lama cusbooneysiin karo ama si wanaagsan loo habeyn karo Isla mar ahaantaana, inta u dhaxaysa wakiilka CDN iyo daruurta waxaa jira xakameyn dhamaystiran iyo awoodda isticmaalka cusub, borotokoolka ugu fiican iyo goobaha. Qaybta aan waxtarka lahayn ee leh borotokoollada hore waxay ka dhex shaqayn doontaa oo kaliya inta u dhaxaysa macmiilka iyo serverka CDN. Waxaa intaa dheer, waxaan ku samayn karnaa codsiyo isku dhafan oo ku saabsan xiriir hore loo aasaasay oo u dhexeeya CDN iyo daruuraha, hagaajinta isticmaalka xiriirka ee heerka TCP:

Waxaan cabbirnaa
Inkasta oo xaqiiqda ah in aragtidu ay ballanqaadayso hagaajinta, kuma degdegno inaan bilowno nidaamka wax soo saarka. Taa beddelkeeda, waa in aan marka hore caddaynno in fikraddu ay si dhab ah u shaqayn doonto. Si aad tan u samayso waxaad u baahan tahay inaad ka jawaabto dhawr su'aalood:
- Xawaaraha: wakiilku ma dhakhso badan doonaa?
- Halaynta: Marar badan ma jabin doontaa?
- Kacsanaanta: sida loo dhexgalo codsiyada?
- qiimahaImmisa ayay ku kacaysaa in la geeyo kaabayaal dheeraad ah?
Aynu si faahfaahsan u tixgelinno habkayaga qiimaynta qodobka koowaad. Inta soo hartayna si la mid ah ayaa loola dhaqmaa.
Si loo falanqeeyo xawaaraha codsiyada, waxaan rabnaa inaan helno xogta dhammaan isticmaaleyaasha, iyada oo aan waqti badan ku bixin horumarinta iyo iyada oo aan jebin wax soo saarka. Waxaa jira dhowr habab oo tan:
- RUM, ama cabbirka codsiga dadban. Waxaan cabbirnaa waqtiga fulinta codsiyada hadda jira ee isticmaalayaasha waxaanan hubineynaa caynsanaanta isticmaaleha. Khasaaraha ayaa ah in calaamaduhu aanu aad u xasilloonayn sababo badan awgood, tusaale ahaan, iyadoo ay ugu wacan tahay cabbirrada codsiyada kala duwan, wakhtiga habaynta server-ka iyo macmiilka. Intaa waxaa dheer, ma tijaabin kartid qaabeyn cusub iyada oo aan saameyn ku yeelan wax soo saarka.
- Baaritaannada shaybaadhka. Seerfayaal gaar ah iyo kaabayaal u eg macaamiisha. Caawinaadkooda waxaan ku qaadeynaa imtixaanada lagama maarmaanka ah. Sidan ayaanu ku helaynaa xakamayn buuxda oo ku saabsan natiijooyinka cabbirka iyo calaamad cad. Laakiin ma jiro dabool dhammaystiran oo ku saabsan aaladaha iyo goobaha isticmaaleyaasha (gaar ahaan adeegga adduunka oo dhan iyo taageerada kumanaan aaladood oo qalab ah).
Sideed isugu dari kartaa faa'iidooyinka labada hab?
Kooxdayadu waxay heleen xal. Waxaan qornay qayb yar oo kood ah - muunad - kaas oo aan ku dhex dhisnay codsigeena. Tijaabooyinku waxay noo oggolaanayaan inaan samayno tijaabooyin shabakadeed oo si buuxda loo xakameeyay oo ka yimid aaladahayaga. Waxay u shaqeysaa sidatan:
- Wax yar ka dib markii la shubo arjiga oo aan dhamaystirno hawshii hore, waxaanu wadnaa baadhitaanadayada.
- Macmiilku waxa uu codsi u dirayaa server-ka oo waxa uu helayaa "recipe" imtixaanka. Cuntadani waa liiska URL-yada loo baahan yahay in HTTP(-yada) la codsado. Intaa waxaa dheer, cunto karintu waxay habaysaa cabbirrada codsiyada: dib u dhacyada u dhexeeya codsiyada, qaddarka xogta la codsaday, madaxyada HTTP, iwm. Isla mar ahaantaana, waxaan tijaabin karnaa cuntooyin kala duwan oo kala duwan oo isku mid ah - marka la codsanayo qaabeynta, waxaan si aan kala sooc lahayn u go'aamineynaa cuntada la soo saarayo.
- Waqtiga bilaabista baaritaanka ayaa la doortaa si aysan uga hor imaan isticmaalka firfircoon ee ilaha shabakada ee macmiilka. Asal ahaan, wakhtiga ayaa la doortaa marka macmiilku aanu firfircoonayn.
- Ka dib markii la helo cunto karinta, macmiilku wuxuu codsi u sameeyaa URL kasta, oo barbar socda. Codsiga cinwaan kasta waa lagu soo celin karaa - waxa loogu yeero. "pulses". Wadnaha ugu horreeya, waxaan ku cabbireynaa inta ay qaadatay in la sameeyo xiriirinta iyo soo dejinta xogta. Wadnaha labaad, waxaanu ku cabbirnaa wakhtiga ay qaadanayso in lagu shubo xogta xidhiidh hore loo aasaasay. Midka saddexaad ka hor, waxaan dejin karnaa dib u dhac waxaanan cabbiri karnaa xawaaraha samaynta dib-u-habaynta, iwm.
Inta lagu jiro tijaabada, waxaan cabbirnaa dhammaan cabbirrada uu qalabku heli karo:
- Waqtiga codsiga DNS;
- Waqtiga dejinta isku xirka TCP;
- Waqtiga dejinta isku xirka TLS;
- waqtiga helitaanka xogta ugu horreysa;
- wadarta wakhtiga rarida;
- code natiijada xaaladda.
- Ka dib marka ay dhammaato garaacyada garaaca wadnaha, muunadku waxay ku shubaysaa dhammaan cabbirada si loo baaro.

Qodobbada muhiimka ah waa ku-tiirsanaanta ugu yar ee macquulka ah ee macmiilka, habaynta xogta serverka iyo cabbirka codsiyada barbar socda. Sidaa darteed, waxaan awoodnaa inaan go'doominno oo tijaabino saameynta arrimo kala duwan oo saameeya waxqabadka weydiinta, ku kala beddelo hal cunto, oo aan natiijooyin ka helno macaamiisha dhabta ah.
Kaabayaashani waxay caddeeyeen inay faa'iido u leeyihiin in ka badan oo keliya falanqaynta waxqabadka weydiinta. Hadda waxaan haynaa 14 cuntooyin firfircoon, in ka badan 6000 oo muunado ilbiriqsikii, anagoo xogta ka helayna geesaha dhulka iyo daboolida qalabka oo dhan. Haddii Netflix ay ka iibsato adeeg la mid ah qolo saddexaad, waxay ku kici doontaa malaayiin doolar sannadkii, oo leh caymis aad u xun.
Tijaabada aragtida ficil ahaan: prototype
Nidaamkan oo kale, waxaan awoodnay inaan qiimeyno waxtarka wakiilada CDN marka la helo daahitaanka codsiga. Hadda waxaad u baahan tahay:
- samee prototype wakiil;
- dhig tusaalaha CDN;
- go'aamiyo sida loogu jiheeyo macaamiisha wakiil ka ah server CDN gaar ah;
- Is barbar dhig waxqabadka codsiyada AWS la'aanteed wakiil.
Hawshu waa in la qiimeeyo waxtarka xalka la soo jeediyay sida ugu dhakhsaha badan. Waxaan dooranay Go si aan u hirgelino tusaalaha sababtoo ah helitaanka maktabado iskuxiran oo wanaagsan. Seerfar kasta oo CDN ah, waxaanu ku rakibnay prototype proxy as binary si aan u yarayn ku tiirsanaanta oo loo fududeeyo is dhexgalka. Hirgelinta bilawga ah, waxaanu isticmaalnay qaybaha caadiga ah intii suurtogal ah iyo wax ka bedel yar oo loogu talagalay isku dhafka HTTP/2 waxaanu codsanay isku-dhufashada.
Si loo dheelitiro inta u dhaxaysa gobollada AWS, waxaan isticmaalnay xogta juqraafiyeed ee DNS, isla midda loo isticmaalo in lagu dheellitiro macaamiisha. Si loo doorto adeegaha CDN macmiilka, waxaan u isticmaalnaa TCP Anycast server-yada ku jira Isweydaarsiga Internetka (IX). Doorashadan, waxaan u isticmaalnaa hal ciwaanka IP ee dhammaan adeegayaasha CDN, macmiilka waxaa lagu jiheyn doonaa server-ka CDN oo leh tirada ugu yar ee hops-ka IP. Adeegayaasha CDN ee ay ku rakiban yihiin bixiyeyaasha Internetka (ISPs), ma hayno kantaroolka router si uu u habeeyo TCP Anycast, sidaa darteed waxaan isticmaalnaa , kaas oo ku hagaya macaamiisha bixiyeyaasha internetka si ay u daawataan fiidiyowyada.
Markaa, waxaan haynaa saddex nooc oo dariiqooyin codsi ah: Daruuraha iyada oo loo marayo Internetka furan, iyada oo loo marayo server-ka CDN ee IX, ama iyada oo loo marayo server CDN oo ku yaal bixiyaha internetka. Hadafkayagu waa inaan fahamno habka ugu wanaagsan, iyo maxay tahay faa'iidada wakiilka, marka la barbardhigo sida codsiyada loo diro wax soo saarka. Si taas loo sameeyo, waxaan u isticmaalnaa nidaamka muunad sida soo socota:

Mid kasta oo ka mid ah waddooyinka ayaa noqda bartilmaameed gaar ah, waxaanan eegnaa waqtiga aan helnay. Falanqaynta, waxaanu isku darnaa natiijooyinka wakiillada hal koox (dooro wakhtiga ugu fiican inta u dhaxaysa IX iyo wakiilada ISP), oo barbar dhig wakhtiga codsiyada daruuraha iyada oo aan wakiil lahayn:

Sida aad arki karto, natiijadu waxay ahaayeen kuwo isku dhafan - inta badan kiisaska wakiilku wuxuu bixiyaa xawaare fiican, laakiin sidoo kale waxaa jira tiro ku filan oo macaamiisha ah kuwaas oo xaaladdu aad uga sii dari doonto.
Natiijo ahaan, waxaan sameynay dhowr arrimood oo muhiim ah:
- Waxaan ku qiimeynay waxqabadka la filayo ee codsiyada macaamiisha ilaa daruuraha anagoo adeegsanayna wakiilka CDN.
- Waxaan ka helnay xogta macaamiisha dhabta ah, dhammaan noocyada qalabka.
- Waxaan ogaanay in aragtida aan 100% la xaqiijin iyo soo jeedinta bilowga ah ee wakiilka CDN ma shaqeyn doono annaga.
- Ma aanan qaadin khataro - ma aanan bedelin qaabeynta wax soo saarka ee macaamiisha.
- Waxba ma jabin.
Prototype 2.0
Markaa, dib ugu noqo guddiga sawirka oo ku celi habka mar kale.
Fikradda ayaa ah in halkii laga isticmaali lahaa 100% wakiil, waxaan go'aamin doonaa dariiqa ugu dhakhsaha badan ee macmiil kasta, waxaanan u diri doonaa codsiyo halkaas - taas oo ah, waxaan samayn doonaa waxa loo yaqaan 'client steering'.

Sidee loo hirgeliyaa tan? Ma isticmaali karno macquul dhinaca server-ka, sababtoo ah... Ujeedadu waa in lagu xidho serfarkan. Waxaa loo baahan yahay in loo helo hab lagu sameeyo tan macmiilka. Iyo sida ugu habboon, tan ku samee qadarka ugu yar ee macquulka adag, si aan loo xalin arrinta isdhexgalka oo leh tiro badan oo ah xarumaha macaamiisha.
Jawaabtu waa in la isticmaalo DNS. Xaaladeena, waxaan leenahay kaabayaal DNS ah oo noo gaar ah, waxaanan samayn karnaa aag domain ah kaas oo adeegayaashayadu ay u noqon doonaan kuwo awood leh. Waxay u shaqeysaa sidatan:
- Macmiilku wuxuu codsi u sameeyaa server-ka DNS isagoo isticmaalaya martigeliyaha, tusaale ahaan api.netflix.xom.
- Codsigu waxa uu imanayaa server-kayaga DNS
- Adeegga DNS wuxuu garanayaa dariiqa ugu dhaqsiyaha badan macmiilkan wuxuuna soo saaraa cinwaanka IP-ga ee u dhigma.
Xalku waxa uu leeyahay kakanaanta dheeraadka ah: bixiyayaasha DNS ee awooda leh ma arkaan ciwaanka IP-ga macmiilka oo waxa ay akhriyi karaan oo keliya ciwaanka IP-ga ee xaliyaha soo noqnoqda ee macmiilku isticmaalo.
Natiijadu waxay tahay, xaliyaheenna awoodda leh waa inuu go'aan u gaaro macaamiil gaar ah, laakiin koox macaamiisha ah oo ku saleysan xallinta soo noqnoqda.
Si loo xalliyo, waxaan isticmaalnaa isla muunado isku mid ah, isku geyn natiijooyinka cabbirka macaamiisha mid kasta oo ka mid ah xaliyayaal soo noqnoqda oo go'aan ka gaarno halka loo diro kooxdan iyaga ka mid ah - wakiil IX isticmaalaya TCP Anycast, iyada oo loo marayo wakiil ISP, ama si toos ah daruuraha.
Waxaan helnaa nidaamka soo socda:

Qaabka isteerinka DNS ee ka dhashay wuxuu kuu oggolaanayaa inaad toosiso macaamiisha ku saleysan indho-indheynta taariikhiga ah ee xawaaraha isku xirka macaamiisha ilaa daruuraha.
Mar labaad, su'aashu waxay tahay sida ugu waxtarka badan ee habkani u shaqeyn doono? Si aan uga jawaabno, waxaan mar kale isticmaalnaa nidaamka baaritaanka. Sidaa darteed, waxaan dejineynaa qaabeynta soo-bandhigaha, halkaas oo mid ka mid ah bartilmaameedyadu ay raacaan jihada ka socota isteerinka DNS, kan kalena wuxuu si toos ah u aadayaa daruuraha (wax soo saarka hadda).

Natiijo ahaan, waxaan is barbar dhigeynaa natiijooyinka waxaana helnaa qiimeyn ku saabsan waxtarka:

Natiijo ahaan, waxaan baranay dhowr waxyaalood oo muhiim ah:
- Waxaan qiimeynay waxqabadka la filayo ee codsiyada macaamiisha ilaa daruurta anagoo adeegsanayna DNS Steering.
- Waxaan ka helnay xogta macaamiisha dhabta ah, dhammaan noocyada qalabka.
- Waxtarka fikradda la soo jeediyay waa la xaqiijiyay.
- Ma aanan qaadin khataro - ma aanan bedelin qaabeynta wax soo saarka ee macaamiisha.
- Waxba ma jabin.
Hadda oo ku saabsan qaybta adag - waxaan ku bilaabeynaa wax soo saarka
Qaybtii fududayd hadda way dhammaatay - waxaa jira prototype shaqo. Hadda qaybta adag ayaa bilaabaysa xalka dhammaan taraafikada Netflix, iyada oo la geynayo 150 milyan isticmaale, kumanaan qalab, boqollaal adeeg-yar oo yaryar, iyo badeecad iyo kaabayaal is-beddelaya. Adeegayaasha Netflix waxay helaan malaayiin codsi ah ilbiriqsi kasta, wayna fududahay in adeegga lagu jebiyo ficil taxaddar la'aan ah. Isla mar ahaantaana, waxaan rabnaa in aan si firfircoon u marino taraafikada kumanaanka CDN server-yada ee internetka, halkaas oo wax isbedelaan oo jebiyaan si joogto ah iyo waqtiga aan munaasabka ahayn.
Oo waxaas oo dhan, kooxdu waxay leedahay 3 injineer oo mas'uul ka ah horumarinta, geynta iyo taageerada buuxda ee nidaamka.
Sidaa darteed, waxaan sii wadi doonaa inaan ka hadalno hurdo nasasho leh oo caafimaad leh.
Sida loo sii wado horumarka oo aanad wakhtigaaga oo dhan ku bixin taageerada? Habkayagu waxa uu ku salaysan yahay 3 qodob:
- Waxaan hoos u dhignaa cabbirka burburka ee suurtagalka ah (radius qaraxa).
- Waxaan isku diyaarineynaa wax lala yaabo - waxaan fileynaa in wax jaban doonaan, inkastoo tijaabinta iyo khibrad shakhsi ahaaneed.
- Hoos-u-dhac wanaagsan - haddii shay uusan si sax ah u shaqeynin, waa in si toos ah loo hagaajiyaa, xitaa haddii aysan ahayn sida ugu waxtarka badan.
Waxaa soo baxday in kiiskeena, habkan loo wajahayo dhibaatada, waxaan heli karnaa xal fudud oo wax ku ool ah oo si weyn loo fududeeyo taageerada nidaamka. Waxaan ogaanay inaan ku dari karno gabal yar oo kood ah macmiilka oo aan la socon karno khaladaadka codsiga shabakadda ee ay sababaan dhibaatooyinka isku xirka. Haddii ay dhacdo khaladaad shabakadeed, waxaan si toos ah dib ugu dhacnay daruuraha. Xalkani uma baahna dadaal weyn oo loogu talagalay kooxaha macmiilka, laakiin wuxuu si weyn u yareynayaa khatarta burburka lama filaanka ah iyo la yaabyada annaga.
Dabcan, inkasta oo dib-u-dhacu jiro, haddana waxaan raacnaa anshax cad inta lagu jiro horumarka:
- Tijaabada muunad
- Imtixaanka A/B ama Canaries.
- Horusocod u bixid
Muunado, habka ayaa lagu sifeeyay - isbeddelada ayaa marka hore la tijaabiyaa iyadoo la isticmaalayo cunto karinta habaysan.
Imtixaanka kanary-ga, waxaan u baahanahay inaan helno lammaane is barbar dhig ah oo server ah kuwaas oo aan ku barbar dhigi karno sida nidaamku u shaqeeyo ka hor iyo ka dib isbeddelada. Si tan loo sameeyo, laga bilaabo bogaggeena CDN ee badan, waxaan ka dooranaa lammaane server ah oo hela taraafikada la midka ah:

Kadibna waxaan ku dhejineynaa dhismaha oo leh isbeddelada server-ka Canary. Si loo qiimeeyo natiijooyinka, waxaan wadnaa nidaam isbarbar dhigaya ku dhawaad 100-150 mitir iyo muunad ka mid ah server-yada kantaroolka:

Haddii baaritaanka Canary uu guuleysto, ka dibna waxaan u sii deynaa si tartiib tartiib ah, mowjadaha. Ma cusboonaysiinno server-yada goob kasta isku mar - luminta goobta oo dhan dhibaatooyinka dartiis waxay saameyn weyn ku leedahay adeegga isticmaalayaasha marka loo eego tirada isku midka ah ee server-yada ee meelo kala duwan.
Guud ahaan, waxtarka iyo badbaadada habkani waxay ku xidhan tahay tirada iyo tayada cabbirada la ururiyey. Nidaamka dardargelinta weydiintayada, waxaanu ka soo ururinnaa cabbirada dhammaan qaybaha suurtogalka ah:
- laga bilaabo macaamiisha - tirada fadhiyada iyo codsiyada, heerarka dib u dhaca;
- wakiil - tirakoobka tirada iyo waqtiga codsiyada;
- DNS - tirada iyo natiijooyinka codsiyada;
- Cloud gees - lambarka iyo wakhtiga habaynta codsiyada daruuraha.
Waxaas oo dhan waxaa lagu soo ururiyaa hal dhuumo, oo, iyadoo ku xiran baahiyaha, waxaan go'aansanay cabbirada loo dirayo falanqaynta waqtiga-dhabta ah, iyo kan Elasticsearch ama Xogta Weyn si loo helo ogaanshaha faahfaahsan.
Waanu la soconaa

Xaaladeena, waxaanu ku samaynaynaa isbeddelo ku saabsan jidka muhiimka ah ee codsiyada u dhexeeya macmiilka iyo serverka. Isla mar ahaantaana, tirada qaybaha kala duwan ee macmiilka, server-ka, iyo habka loo marayo internetka ayaa ah mid aad u weyn. Isbeddelka macmiilka iyo server-ka ayaa si joogto ah u dhaca - inta lagu jiro shaqada daraasiin kooxeed iyo isbeddellada dabiiciga ah ee nidaamka deegaanka. Waxaan ku jirnaa dhexda - marka la ogaanayo dhibaatooyinka, waxaa jirta fursad wanaagsan oo aan ku lug yeelan doono. Sidaa darteed, waxaan u baahanahay inaan si cad u fahamno sida loo qeexo, loo ururiyo oo loo falanqeeyo cabbirada si dhaqso ah loo go'doomiyo dhibaatooyinka.
Fikrad ahaan, helitaan buuxa dhammaan noocyada cabbirada iyo filtarrada waqtiga dhabta ah. Laakiin waxaa jira qiyaaso badan, markaa su'aasha kharashka ayaa soo baxa. Xaaladeena, waxaanu u kala saarnaa cabbirada iyo qalabka horumarinta sida soo socota:

Si aan u ogaano oo aan u kala saarno dhibaatooyinka waxaan isticmaalnaa il furan oo noo gaar ah nidaamka waqtiga-dhabta ah и - waayo aragnimada. Waxay ku kaydisaa halbeegyada la isku daray ee xusuusta, waa la isku halayn karo oo waxay la midaysaa nidaamka digniinta. Meelaynta iyo ogaanshaha, waxaan marin u helnaa diiwaannada Elasticsearch iyo Kibana. Falanqaynta tirakoobka iyo qaabaynta, waxaan ku isticmaalnaa xog weyn iyo muuqaal muuqaal gudaha Tableau.
Waxay u muuqataa in habkani uu yahay mid aad u adag in lagu shaqeeyo. Si kastaba ha ahaatee, anagoo u habeynayna mitirka iyo agabka si heersare ah, waxaan si deg deg ah u falanqeyn karnaa dhibaatada, go'aamin karnaa nooca dhibaatada, ka dibna hoos u dhigi karnaa cabbirro faahfaahsan. Guud ahaan, waxaan ku bixinaa ilaa 1-2 daqiiqo si aan u aqoonsano isha burburka. Taas ka dib, waxaan la shaqeynaa koox gaar ah oo ku saabsan ogaanshaha - min tobanaan daqiiqo ilaa dhowr saacadood.
Xitaa haddii ogaanshaha si dhakhso ah loo sameeyo, ma rabno inay tani marar badan dhacdo. Fikrad ahaan, waxaan heli doonaa kaliya digniin muhiim ah marka ay saameyn weyn ku yeelato adeegga. Nidaamkeena dardargelinta weydiinta, waxaan haynaa 2 digniinood oo ogeysiin doona:
- Boqolkiiba dib-u-dhaca macmiilka - qiimaynta hab-dhaqanka macmiilka;
- boqolkiiba khaladaadka baaritaanka - xogta xasiloonida qaybaha shabakada.
Ogeysiisyadan muhiimka ah waxay kormeerayaan in nidaamku u shaqeeyo inta badan isticmaalayaasha. Waxaan eegnaa inta macmiil ee isticmaalay dib u dhac haddii ay awoodi waayeen inay helaan dardargelinta codsiga. Waxaan celcelis ahaan in ka yar 1 heegan muhiim ah todobaadkii, inkastoo ay jiraan tiro badan oo isbedel ah oo ku socda nidaamka. Waa maxay sababta tani noogu filan tahay?
- Waxaa jira dib-u-dhac macmiilka ah haddii wakiilkeennu aanu shaqayn.
- Waxa jira nidaam isteerin oo toos ah oo ka jawaabaya dhibaatooyinka.
Faahfaahin dheeraad ah oo ku saabsan tan dambe. Nidaamkayaga tijaabada ah, iyo nidaamka si toos ah loo go'aamiyo dariiqa ugu habboon ee codsiyada macmiilka ilaa daruuraha, ayaa noo ogolaanaya inaan si toos ah ula qabsano dhibaatooyinka qaarkood.
Aan ku soo laabano qaabeynta muunadayada iyo 3 qaybood oo waddooyin ah. Marka lagu daro wakhtiga rarida, waxaan eegi karnaa xaqiiqda bixinta lafteeda. Haddii aysan suurtagal ahayn in lagu shubo xogta, ka dib marka la eego natiijooyinka iyada oo la raacayo wadooyin kala duwan waxaan go'aamin karnaa meesha iyo waxa jabay, iyo haddii aan si toos ah u hagaajin karno annaga oo beddeleyno waddada codsiga.
tusaalooyin:



Habkan si toos ah ayaa loo samayn karaa. Ku dar habka isteerinka. Oo baro inay ka jawaabto dhibaatooyinka waxqabadka iyo kalsoonida. Haddii ay wax bilaabaan inay jabaan, ka fal celi haddii ay jirto doorasho ka wanaagsan. Isla mar ahaantaana, falcelinta degdega ah maahan mid muhiim ah, taas oo ay ugu wacan tahay dib u dhaca macaamiisha.
Haddaba, mabaadi'da taageerada nidaamka waxaa loo dejin karaa sida soo socota:
- yaraynta miisaanka burburka;
- ururinta qiyaasaha;
- Waxaan si toos ah u hagaajinaa burburka haddii aan awoodno;
- haddii aysan awoodin, waan ku ogeysiineynaa;
- Waxaan ka shaqaynaynaa dashboards iyo qalabka kala-soocidda si jawaab degdeg ah loo helo.
Duruusta La Bartay
Waqti badan kuma qaadato in la qoro prototype. Xaaladeena, waxay ahayd diyaar ka dib 4 bilood. Iyada oo aan helnay cabbirro cusub, iyo 10 bilood ka dib bilawga horumarinta waxaan helnay taraafikada ugu horreysa ee wax soo saarka. Kadibna shaqada aad u adag oo aad u adag ayaa bilaabatay: si tartiib tartiib ah u soo saar oo cabbir nidaamka, haajiraan taraafikada ugu weyn oo wax ka bartaan khaladaadka. Si kastaba ha ahaatee, habkan wax ku oolka ah ma noqon doono mid toosan - inkastoo dhammaan dadaallada, wax walba lama saadaalin karo. Aad bay waxtar u badan tahay in si degdeg ah loo soo celiyo oo looga jawaabo xogta cusub.

Iyada oo ku saleysan khibradeena, waxaan ku talin karnaa kuwa soo socda:
- Ha aaminin dareenkaaga.
Dareenkayaga ayaa si joogto ah noogu guul daraystay, in kasta oo ay waayo-aragnimada ballaadhan u leeyihiin xubnaha kooxdayada. Tusaale ahaan, waxaan si khaldan u saadaalinay xawaaraha la filayo isticmaalka CDN proxy, ama habdhaqanka TCP Anycast.
- Ka hel xogta wax soo saarka
Waa muhiim in la helo ugu yaraan qadar yar oo ah xogta wax soo saarka sida ugu dhakhsaha badan ee suurtogalka ah. Waa wax aan macquul aheyn in la helo tirada kiisaska gaarka ah, qaabeynta, iyo dejinta xaaladaha shaybaarka. Helitaanka degdega ah ee natiijooyinka waxay kuu oggolaan doontaa inaad si dhakhso leh u barato dhibaatooyinka iman kara oo aad ku xisaabtanto qaab dhismeedka nidaamka.
- Ha raacin talada iyo natiijooyinka dadka kale - ururso xogtaada.
Raac mabaadi'da ururinta iyo falanqaynta xogta, laakiin si indho la'aan ah ha u aqbalin natiijooyinka iyo odhaahyada dadka kale. Adiga kaliya ayaa si sax ah u ogaan kara waxa u shaqeeya isticmaalayaashaada. Nidaamyadaada iyo macaamiishaadu waxay aad uga duwanaan karaan shirkadaha kale. Nasiib wanaag, qalabka falanqaynta hadda waa la heli karaa waana fududahay in la isticmaalo. Natiijooyinka aad hesho waxaa laga yaabaa inaysan ahayn waxa Netflix, Facebook, Akamai iyo shirkado kale ay sheeganayaan. Xaaladeena, waxqabadka TLS, HTTP2 ama tirakoobyada codsiyada DNS way ka duwan yihiin natiijooyinka Facebook, Uber, Akamai - sababtoo ah waxaan leenahay qalabyo kala duwan, macaamiisha iyo socodka xogta.
- Ha u raacin isbeddellada moodada si aan loo baahnayn oo qiimee waxtarka.
Ku bilow fudud Way fiicantahay in la sameeyo nidaam shaqo oo fudud wakhti gaaban intii aad wakhti badan ku bixin lahayd horumarinta qaybo aanad u baahnayn. Xalli hawlaha iyo mashaakilaadka muhiimka ah iyadoo lagu salaynayo cabbiradaada iyo natiijooyinkaaga.
- U diyaargarow codsiyo cusub
Sida ay u adag tahay in la saadaaliyo dhammaan dhibaatooyinka, way adag tahay in la saadaaliyo faa'iidooyinka iyo codsiyada hore. Ka fiirso kuwa bilowga ah - awooddooda la qabsiga xaaladaha macaamiisha. Xaaladdaada, waxaad ogaan kartaa dhibaatooyin cusub iyo xalalkooda. Mashruucayada, waxaanu dejinay yoolka lagu dhimayo codsiga daahitaanka. Si kastaba ha ahaatee, intii lagu jiray falanqaynta iyo falanqaynta, waxaan ogaanay inaan sidoo kale isticmaali karno server-yada wakiillada:
- si loo dheelitiro isu socodka guud ahaan gobolada AWS lana yareeyo kharashaadka;
- si loo qaabeeyo xasilloonida CDN;
- si loo habeeyo DNS;
- si loo habeeyo TLS/TCP.
gunaanad
Warbixinta, waxaan ku qeexay sida Netflix u xalliso dhibaatada dardargelinta codsiyada internetka ee u dhexeeya macaamiisha iyo daruuraha. Sida aan u ururino xogta anagoo adeegsanayna nidaamka muunad ee macaamiisha, oo aan u isticmaalno xogta taariikhiga ah ee la ururiyay si aan ugu marno codsiyada wax soo saarka macaamiisha iyada oo loo marayo dariiqa ugu dhakhsaha badan ee internetka. Sida aan u isticmaalno mabaadi'da borotokoolka shabakada, kaabayaashayada CDN, shabakada laf dhabarta, iyo adeegayaasha DNS si aan u gaarno hawshan.
Si kastaba ha ahaatee, xalkeenu waa tusaale ahaan sida aanu Netflix u hirgelinay nidaamkan oo kale. Maxaa noo hirgalay. Qaybta lagu dabaqay ee warbixintayda aan kuu sheegay waa mabaadi'da horumarka iyo taageerada ee aan raacno oo aan gaarno natiijooyin wanaagsan.
Xalkayaga dhibaatada waxa laga yaabaa in aanu kugu habboonayn. Si kastaba ha ahaatee, aragtida iyo mabaadi'da naqshadeynta ayaa weli ah, xitaa haddii aadan haysan kaabayaasha CDN ee adiga kuu gaar ah, ama haddii ay si weyn uga duwan tahay kuweenna.
Muhiimadda xawaaraha codsiyada ganacsigu sidoo kale waa muhiim. Xitaa adeeg fudud waxaad u baahan tahay inaad doorato: inta u dhaxaysa bixiyeyaasha daruuraha, goobta server-ka, bixiyeyaasha CDN iyo DNS. Doorashadaada waxay saameyn doontaa waxtarka su'aalaha internetka ee macaamiishaada. Waxayna muhiim kuu tahay inaad cabbirto oo aad fahanto saamayntan.
Ka bilow xalal fudud, ka taxadar sida aad u bedesho alaabta. Baro markaad tagto oo hagaajiso nidaamka ku salaysan xogta macaamiishaada, kaabayaashaaga, iyo ganacsigaaga. Ka fikir suurtogalnimada burburka lama filaanka ah inta lagu jiro habka naqshadaynta. Kadibna waxaad dardar gelin kartaa habkaaga horumarineed, hagaajinta waxtarka xalalka, iska ilaali culeyska taageerada aan loo baahnayn oo aad si nabad ah u seexan karto.
Sannadkan qaab online ah. Waxaad su'aalo weydiin kartaa mid ka mid ah aabbayaasha DevOps, John Willis laftiisa!
Source: www.habr.com
