Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Netflix пешвои бозори телевизиони интернетӣ мебошад - ширкате, ки ин сегментро таъсис додааст ва фаъолона инкишоф медиҳад. Netflix на танҳо бо феҳристи васеи филмҳо ва сериалҳои телевизионии худ, ки қариб аз ҳар гӯшаи сайёра ва ҳама гуна дастгоҳи дорои дисплей дастрас аст, балки инчунин бо инфрасохтори боэътимод ва фарҳанги беназири муҳандисии худ машҳур аст.

Намунаи равшани муносибати Netflix ба таҳия ва дастгирии системаҳои мураккаб дар DevOops 2019 пешниҳод карда шуд Сергей Федоров - Директори рушд дар Netflix. Хатмкардаи факултети математикаи ҳисоббарор ва математикаи Донишгоҳи давлатии Нижний Новгород. Лобачевский, Сергей яке аз аввалин муҳандисони Open Connect - дастаи CDN дар Netflix. Вай системаҳои назорат ва таҳлили додаҳои видеоиро сохта, як хидмати маъмули арзёбии суръати пайвастшавӣ ба интернет FAST.com-ро ба кор андохтааст ва дар тӯли чанд соли охир барои оптимизатсияи дархостҳои интернет кор кардааст, то барномаи Netflix барои корбарон ҳарчи зудтар кор кунад.

Гузориш аз ҷониби иштирокчиёни конфронс беҳтарин баррасиҳо гирифт ва мо нусхаи матниро барои шумо омода кардем.

Сергей дар маърузаи худ муфассал сухан ронд

  • дар бораи он, ки ба таъхири дархостҳои интернетӣ байни муштарӣ ва сервер чӣ таъсир мерасонад;
  • ин таъхирро чй тавр кам кардан мумкин аст;
  • чӣ гуна тарҳрезӣ, нигоҳдорӣ ва мониторинги системаҳои ба хатогиҳо тобовар;
  • чӣ гуна ба даст овардани натиҷаҳо дар муддати кӯтоҳ ва бо хатари ҳадди ақал барои тиҷорат;
  • чи тавр натичахоро тахлил кардан ва аз хатогихо ибрат гирифтан.

Ҷавобҳо ба ин саволҳо на танҳо ба онҳое лозиманд, ки дар корпоратсияҳои калон кор мекунанд.

Принсипҳо ва усулҳои пешниҳодшуда бояд аз ҷониби ҳар касе, ки маҳсулоти интернетиро таҳия ва дастгирӣ мекунад, донист ва амал кунад.

Баъдан ривоят аз нуқтаи назари суханвар аст.

Муҳимияти суръати интернет

Суръати дархостҳои интернет мустақиман ба тиҷорат вобаста аст. Саноати харидро баррасӣ кунед: Amazon дар 2009 гуфтки 100ms таъхир боиси аз даст додани 1% фурӯш мегардад.

Таҷҳизоти мобилии бештар ва бештари сайтҳо ва замимаҳои мобилӣ вуҷуд доранд. Агар барои боркунии саҳифаи шумо зиёда аз 3 сония вақт лозим бошад, шумо тақрибан нисфи корбарони худро аз даст медиҳед. БО июли 2018 Google суръати боркунии саҳифаи шуморо дар натиҷаҳои ҷустуҷӯ ба назар мегирад: ҳар қадар тезтар саҳифа бошад, мавқеи он дар Google баландтар аст.

Суръати пайвастшавӣ инчунин дар муассисаҳои молиявӣ муҳим аст, ки таъхир дар он муҳим аст. Дар соли 2015, Шабакаҳои Hibernia тамом кард кабели 400 миллион доллар байни Ню-Йорк ва Лондон барои кам кардани таъхири байни шаҳрҳо 6ms. Тасаввур кунед, ки 66 миллион доллар барои 1 мс кам кардани таъхир!

Мувофиқи маълумот тадқиқот, суръати пайвастшавӣ аз 5 Мбит/с дигар ба суръати боркунии вебсайти маъмулӣ мустақиман таъсир намерасонад. Аммо, байни таъхири пайвастшавӣ ва суръати боркунии саҳифа муносибати хатӣ вуҷуд дорад:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Аммо, Netflix маҳсулоти маъмулӣ нест. Таъсири таъхир ва суръат ба корбар як соҳаи фаъоли таҳлил ва рушд мебошад. Боркунии барнома ва интихоби мундариҷа вуҷуд дорад, ки аз таъхир вобаста аст, аммо боркунии унсурҳои статикӣ ва ҷараён низ аз суръати пайвастшавӣ вобаста аст. Таҳлил ва оптимизатсияи омилҳои калидӣ, ки ба таҷрибаи корбар таъсир мерасонанд, як соҳаи фаъоли рушд барои чанд даста дар Netflix мебошад. Яке аз ҳадафҳо кам кардани таъхири дархостҳо байни дастгоҳҳои Netflix ва инфрасохтори абрӣ мебошад.

Дар гузориш мо махсусан ба кам кардани таъхир бо истифода аз мисоли инфрасохтори Netflix тамаркуз хоҳем кард. Биёед аз нуқтаи назари амалӣ дида бароем, ки чӣ гуна ба равандҳои тарҳрезӣ, таҳия ва истифодаи системаҳои мураккаби тақсимшуда ва вақт сарф кардан барои навоварӣ ва натиҷаҳоро сарф кунем, на ташхиси мушкилот ва шикасти амалиёт.

Дар дохили Netflix

Ҳазорҳо дастгоҳҳои гуногун барномаҳои Netflix-ро дастгирӣ мекунанд. Онҳо аз ҷониби чор гурӯҳи гуногун таҳия шудаанд, ки версияҳои алоҳидаи муштариро барои Android, iOS, ТВ ва веб-браузерҳо месозанд. Ва мо барои такмил ва фардӣ кардани таҷрибаи корбар кӯшиши зиёд сарф мекунем. Барои ин, мо садҳо санҷишҳои A/B-ро дар як вақт мегузаронем.

Фардикунонӣ аз ҷониби садҳо хидматҳои хурд дар абри AWS дастгирӣ карда мешавад, ки маълумоти фардии корбар, ирсоли дархост, телеметрия, маълумоти калон ва рамзгузориро таъмин мекунанд. Визуализатсияи трафик чунин менамояд:

Истинод ба видео бо намоиш (6:04-6:23)

Дар тарафи чап нуқтаи вуруд ҷойгир аст ва сипас трафик дар байни садҳо микросервисҳо тақсим карда мешавад, ки аз ҷониби гурӯҳҳои гуногуни пуштибон дастгирӣ карда мешаванд.

Ҷузъи дигари муҳими инфрасохтори мо Open Connect CDN мебошад, ки мундариҷаи статикиро ба корбари ниҳоӣ мерасонад - видеоҳо, тасвирҳо, рамзи муштарӣ ва ғайра. CDN дар серверҳои фармоишӣ ҷойгир аст (OCA - Open Connect Appliance). Дар дохили он массивҳои дискҳои SSD ва HDD мавҷуданд, ки бо FreeBSD оптимизатсияшуда бо NGINX ва маҷмӯи хидматҳо кор мекунанд. Мо ҷузъҳои сахтафзор ва нармафзорро тарҳрезӣ ва оптимизатсия мекунем, то чунин сервери CDN ба корбарон ҳарчи бештар маълумот фиристад.

«Девор»-и ин серверҳо дар нуқтаи мубодилаи трафики интернет (Internet eXchange - IX) чунин менамояд:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Мубодилаи Интернет имкон медиҳад, ки провайдерҳои хидматрасонии интернетӣ ва провайдерҳои мундариҷа бо ҳамдигар барои мубодилаи мустақими маълумот дар Интернет "пайваст шаванд". Дар саросари ҷаҳон тақрибан 70-80 нуқтаи мубодилаи Интернет мавҷуданд, ки серверҳои мо насб шудаанд ва мо мустақилона онҳоро насб ва нигоҳ медорем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Илова бар ин, мо инчунин серверҳоро мустақиман ба провайдерҳои интернетӣ пешниҳод менамоем, ки онҳо дар шабакаи худ насб мекунанд, локализатсияи трафики Netflix ва сифати ҷараёнро барои корбарон беҳтар мегардонем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Маҷмӯи хидматҳои AWS барои фиристодани дархостҳои видеоӣ аз муштариён ба серверҳои CDN, инчунин танзими худи серверҳо - навсозии мундариҷа, рамзи барнома, танзимот ва ғайра масъул аст. Барои охирин, мо инчунин як шабакаи магистралӣ сохтем, ки серверҳоро дар нуқтаҳои мубодилаи Интернет бо AWS мепайвандад. Шабакаи магистралӣ як шабакаи ҷаҳонии кабелҳои нахи оптикӣ ва роутерҳо мебошад, ки мо метавонем дар асоси ниёзҳои худ тарроҳӣ ва танзим кунем.

Бо Sandvine тахмин мезанад, инфрасохтори CDN мо тақрибан ⅛ трафики интернети ҷаҳонро дар соатҳои авҷ ва ⅓ трафикро дар Амрикои Шимолӣ, ки дар он ҷо Netflix тӯлонитарин буд, мерасонад. Рақамҳои таъсирбахш, аммо барои ман яке аз дастовардҳои аҷиб он аст, ки тамоми системаи CDN аз ҷониби як гурӯҳи камтар аз 150 нафар таҳия ва нигоҳдорӣ мешавад.

Дар ибтидо, инфрасохтори CDN барои интиқоли маълумоти видео тарҳрезӣ шуда буд. Аммо, бо гузашти вақт мо фаҳмидем, ки мо инчунин метавонем онро барои оптимизатсияи дархостҳои динамикӣ аз муштариён дар абри AWS истифода барем.

Дар бораи суръатбахшии интернет

Имрӯз, Netflix дорои 3 минтақаи AWS мебошад ва таъхири дархостҳо ба абр аз дур будани муштарӣ аз минтақаи наздиктарин вобаста аст. Ҳамзамон, мо серверҳои зиёди CDN дорем, ки барои интиқоли мундариҷаи статикӣ истифода мешаванд. Оё ягон роҳи истифодаи ин чаҳорчӯба барои суръат бахшидан ба дархостҳои динамикӣ вуҷуд дорад? Аммо, мутаассифона, кэш кардани ин дархостҳо ғайриимкон аст - APIҳо фардӣ карда шудаанд ва ҳар як натиҷа беназир аст.

Биёед дар сервери CDN прокси созем ва тавассути он интиқоли трафикро оғоз кунем. Оё он тезтар мешавад?

Materiel

Биёед ба хотир орем, ки протоколҳои шабака чӣ гуна кор мекунанд. Имрӯз, аксари трафик дар Интернет HTTP-ро истифода мебарад, ки аз протоколҳои қабати поёнии TCP ва TLS вобаста аст. Барои он ки муштарӣ ба сервер пайваст шавад, он дастфишорӣ мекунад ва барои барқарор кардани пайвасти бехатар, муштарӣ бояд се маротиба бо сервер мубодилаи паёмҳо кунад ва ҳадди аққал як маротибаи дигар барои интиқоли маълумот. Бо таъхир дар як сафари даврӣ (RTT) аз 100 мс, барои гирифтани бити аввали маълумот ба мо 400 мс лозим аст:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Агар мо сертификатҳоро дар сервери CDN ҷойгир кунем, пас вақти дастфишори байни муштарӣ ва сервер метавонад ба таври назаррас коҳиш ёбад, агар CDN наздиктар бошад. Фарз мекунем, ки таъхир дар сервери CDN 30 мс аст. Пас барои гирифтани бити аввал 220 мс лозим аст:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Аммо афзалиятҳо бо ин тамом намешаванд. Пас аз таъсиси пайвастшавӣ, TCP равзанаи бандро зиёд мекунад (ҳаҷми иттилооте, ки он метавонад тавассути ин пайвастшавӣ дар як вақт интиқол диҳад). Агар бастаи маълумот гум шавад, он гоҳ татбиқи классикии протоколи TCP (ба монанди TCP New Reno) "равзанаи" кушодаро ду маротиба кам мекунад. Афзоиши равзанаи банд ва суръати барқароршавии он аз талафот боз аз таъхир (RTT) ба сервер вобаста аст. Агар ин пайвастшавӣ танҳо то сервери CDN бошад, ин барқарорсозӣ тезтар мешавад. Дар айни замон, талафоти бастаҳо як падидаи стандартӣ аст, махсусан барои шабакаҳои бесим.

Маҷрои интернет метавонад бахусус дар соатҳои авҷи баланд аз ҳисоби трафики корбарон коҳиш ёбад, ки ин метавонад боиси сарбандии трафик гардад. Бо вуҷуди ин, дар Интернет ҳеҷ роҳе вуҷуд надорад, ки ба баъзе дархостҳо нисбат ба дигарон афзалият дода шавад. Масалан, ба дархостҳои хурд ва ба таъхир ҳассос аз ҷараёнҳои додаҳои "вазнин", ки шабакаро бор мекунанд, афзалият диҳед. Аммо, дар ҳолати мо, доштани шабакаи магистралии худ ба мо имкон медиҳад, ки ин корро дар як қисми роҳи дархост - байни CDN ва абр иҷро кунем ва мо метавонем онро пурра танзим кунем. Шумо метавонед боварӣ ҳосил кунед, ки бастаҳои хурд ва ба таъхир ҳассос афзалият доранд ва ҷараёнҳои бузурги додаҳо каме дертар мераванд. Чӣ қадаре ки CDN ба муштарӣ наздик бошад, ҳамон қадар самаранокӣ зиёд мешавад.

Протоколҳои сатҳи барнома (OSI Level 7) инчунин ба таъхир таъсир мерасонанд. Протоколҳои нав ба монанди HTTP/2 иҷрои дархостҳои мувозиро оптимизатсия мекунанд. Аммо, мо мизоҷони Netflix дорем, ки дастгоҳҳои кӯҳна доранд, ки протоколҳои навро дастгирӣ намекунанд. На ҳама муштариён метавонанд навсозӣ ё ба таври оптималӣ танзим карда шаванд. Дар айни замон, байни прокси CDN ва абр назорати пурра ва қобилияти истифодаи протоколҳо ва танзимоти нав, оптималӣ мавҷуд аст. Қисми бесамар бо протоколҳои кӯҳна танҳо байни муштарӣ ва сервери CDN кор мекунад. Ғайр аз он, мо метавонем дархостҳои мултиплексиро дар робитаи аллакай муқарраршуда байни CDN ва абр гузорем ва истифодаи пайвастро дар сатҳи TCP беҳтар созем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Мо андоза мекунем

Сарфи назар аз он, ки назария пешравиро ваъда медихад, мо барои дар истехсолот чорй намудани система фавран шитоб намекунем. Баръакс, мо бояд аввал исбот кунем, ки идея дар амал амал мекунад. Барои ин ба шумо лозим аст, ки ба якчанд саволҳо ҷавоб диҳед:

  • Суръат: оё прокси тезтар мешавад?
  • Боварӣ: Оё он тез-тез мешиканад?
  • Мушкилот: чӣ гуна бояд бо барномаҳо ҳамгиро шавад?
  • арзиши: Ҷойгир кардани инфрасохтори иловагӣ чӣ қадар арзиш дорад?

Биёед муносибати худро ба арзёбии нуқтаи аввал муфассал баррасӣ кунем. Боқимондаҳо ба ҳамин тарз муносибат мекунанд.

Барои таҳлили суръати дархостҳо, мо мехоҳем маълумотро барои ҳама корбарон бидуни сарф кардани вақти зиёд барои таҳия ва бидуни вайрон кардани истеҳсолот ба даст орем. Барои ин якчанд равиш вуҷуд дорад:

  1. RUM, ё андозагирии дархости ғайрифаъол. Мо вақти иҷрои дархостҳои ҷории корбаронро чен мекунем ва фарогирии пурраи корбаронро таъмин мекунем. Камбудӣ дар он аст, ки сигнал аз сабаби бисёр омилҳо, масалан, аз рӯи андозаҳои гуногуни дархост, вақти коркард дар сервер ва муштарӣ чандон устувор нест. Илова бар ин, шумо наметавонед конфигуратсияи навро бидуни таъсир дар истеҳсолот санҷед.
  2. Санҷишҳои лабораторӣ. Серверҳо ва инфрасохтори махсус, ки муштариёнро тақлид мекунанд. Бо ёрии онҳо мо санҷишҳои заруриро мегузаронем. Бо ин роҳ, мо назорати пурраи натиҷаҳои андозагирӣ ва сигнали равшанро ба даст меорем. Аммо фарогирии пурраи дастгоҳҳо ва маконҳои корбар вуҷуд надорад (хусусан бо хидмати саросари ҷаҳон ва дастгирии ҳазорҳо моделҳои дастгоҳ).

Чӣ тавр шумо бартариҳои ҳарду усулро муттаҳид карда метавонед?

Коллективи мо рохи халли масъаларо ёфт. Мо як пораи хурди код - намуна навиштем, ки мо онро дар замимаи худ сохтаем. Санҷишҳо ба мо имкон медиҳанд, ки аз дастгоҳҳои худ санҷишҳои шабакаи пурраи назоратшаванда гузаронем. Ин чунин кор мекунад:

  1. Чанде пас аз боркунии барнома ва анҷом додани фаъолияти ибтидоӣ, мо санҷишҳои худро иҷро мекунем.
  2. Мизоҷ ба сервер дархост мекунад ва барои санҷиш "рецепт" мегирад. Дорухат рӯйхати URL-ҳоест, ки ба онҳо дархости HTTP(ҳо) лозим аст. Илова бар ин, дорухат параметрҳои дархостро танзим мекунад: таъхир байни дархостҳо, миқдори маълумоти дархостшуда, сарлавҳаҳои HTTP(ҳо) ва ғайра. Ҳамзамон, мо метавонем якчанд рецептҳои гуногунро дар як вақт санҷем - ҳангоми дархост кардани конфигуратсия, мо ба таври тасодуфӣ муайян мекунем, ки кадом рецепт бояд бароварда шавад.
  3. Вақти оғози санҷиш барои он интихоб карда мешавад, ки бо истифодаи фаъоли захираҳои шабакавӣ дар муштарӣ мухолифат накунад. Аслан, вақт интихоб карда мешавад, ки муштарӣ фаъол нест.
  4. Пас аз гирифтани дорухат, муштарӣ дар баробари ҳар як URL дархост мекунад. Дархост ба ҳар як суроға метавонад такрор шавад - ба ном. "набзҳо". Дар набзи аввал мо чен мекунем, ки барои барқарор кардани пайвастшавӣ ва зеркашии маълумот чӣ қадар вақт лозим буд. Дар набзи дуюм, мо вақти боркунии маълумотро аз пайвасти аллакай муқарраршуда чен мекунем. Пеш аз сеюм, мо метавонем таъхирро муқаррар кунем ва суръати барқарорсозии пайвастшавӣ ва ғайраро чен кунем.

    Ҳангоми санҷиш, мо тамоми параметрҳоеро, ки дастгоҳ ба даст оварда метавонад, чен мекунем:

    • вақти дархости DNS;
    • Вақти насби пайвасти TCP;
    • Вақти насби пайвасти TLS;
    • вақти қабули байт аввалин маълумот;
    • вақти умумии боркунӣ;
    • рамзи натиҷаи ҳолати.
  5. Пас аз анҷом додани ҳама импулсҳо, намуна ҳама ченакҳоро барои таҳлил бор мекунад.

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Нуқтаҳои асосӣ ин вобастагии ҳадди ақал аз мантиқ аз муштарӣ, коркарди маълумот дар сервер ва андозагирии дархостҳои мувозӣ мебошанд. Ҳамин тариқ, мо метавонем таъсири омилҳои мухталиферо, ки ба иҷрои дархост таъсир мерасонанд, ҷудо ва озмоиш кунем, онҳоро дар доираи як дорухат фарқ кунем ва аз муштариёни воқеӣ натиҷа гирем.

Ин инфрасохтор барои на танҳо таҳлили иҷрои дархостҳо муфид аст. Дар айни замон мо 14 рецепти фаъол дорем, зиёда аз 6000 намуна дар як сония, маълумотро аз тамоми гӯшаҳои замин ва фарогирии пурраи дастгоҳ мегирем. Агар Netflix як хидмати шабеҳро аз ҷониби сеюм харидорӣ кунад, он дар як сол миллионҳо доллар арзиш дорад ва фарогирии хеле бадтар.

Назарияи озмоиш дар амал: прототип

Бо чунин система, мо тавонистем самаранокии прокси CDN-ро дар таъхири дархост арзёбӣ кунем. Акнун ба шумо лозим аст:

  • сохтани прототипи прокси;
  • прототипро дар CDN ҷойгир кунед;
  • муайян кунед, ки чӣ тавр муштариёнро ба прокси дар сервери мушаххаси CDN равона кардан мумкин аст;
  • Иҷрои корҳоро бо дархостҳо дар AWS бидуни прокси муқоиса кунед.

Вазифа аз он иборат аст, ки самараи карори пешниходшуда харчи зудтар бахо дода шавад. Мо барои татбиқи прототип бо сабаби мавҷудияти китобхонаҳои хуби шабакавӣ Go -ро интихоб кардем. Дар ҳар як сервери CDN, мо прототипи прототипро ҳамчун дуии статикӣ насб кардем, то вобастагиҳоро кам кунад ва ҳамгироиро содда кунад. Дар татбиқи аввал, мо ба қадри имкон ҷузъҳои стандартиро истифода бурдем ва тағироти ночизро барои ҳавзаи пайвастшавӣ HTTP/2 ва мултиплексии дархост истифода кардем.

Барои мувозинат байни минтақаҳои AWS, мо махзани ҷуғрофии DNS-ро истифода бурдем, ки ҳамон маълумоте, ки барои мувозинати муштариён истифода мешуд. Барои интихоби сервери CDN барои муштарӣ, мо TCP Anycast-ро барои серверҳо дар Internet Exchange (IX) истифода мебарем. Дар ин хосият, мо як суроғаи IP-ро барои ҳама серверҳои CDN истифода мебарем ва муштарӣ ба сервери CDN бо камтарин шумораи IP-хопҳо равона карда мешавад. Дар серверҳои CDN, ки аз ҷониби провайдерҳои интернетӣ (ISP) насб шудаанд, мо барои танзими TCP Anycast аз болои роутер назорат надорем, аз ин рӯ мо истифода мебарем ҳамон мантиқ, ки муштариёнро ба провайдерҳои интернетӣ барои пахши видео равона мекунад.

Ҳамин тариқ, мо се намуди роҳҳои дархост дорем: ба абр тавассути Интернети кушода, тавассути сервери CDN дар IX ё тавассути сервери CDN, ки дар провайдери интернет ҷойгир аст. Ҳадафи мо фаҳмидани он аст, ки кадом роҳ беҳтар аст ва аз прокси чӣ фоида дорад, дар муқоиса бо чӣ гуна дархостҳо ба истеҳсолот фиристода мешаванд. Барои ин, мо системаи интихобро ба таври зерин истифода мебарем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Ҳар як роҳ ба ҳадафи алоҳида табдил меёбад ва мо ба вақти ба даст овардаамон назар мекунем. Барои таҳлил, мо натиҷаҳои проксиро ба як гурӯҳ муттаҳид мекунем (вақти беҳтаринро байни прокси IX ва ISP интихоб кунед) ва онҳоро бо вақти дархостҳо ба абр бидуни прокси муқоиса мекунем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Тавре ки шумо мебинед, натиҷаҳо омехта буданд - дар аксари ҳолатҳо прокси суръатбахшии хуб медиҳад, аммо шумораи кофии муштариёне ҳастанд, ки барои онҳо вазъият ба таври назаррас бадтар мешавад.

Дар натиҷа, мо якчанд корҳои муҳимро анҷом додем:

  1. Мо иҷрои интизории дархостҳои муштариёнро ба абр тавассути прокси CDN арзёбӣ кардем.
  2. Мо аз муштариёни воқеӣ, аз ҳама намуди дастгоҳҳо маълумот гирифтем.
  3. Мо фаҳмидем, ки назария 100% тасдиқ нашудааст ва пешниҳоди аввалия бо прокси CDN барои мо кор намекунад.
  4. Мо таваккал накардем - мо конфигуратсияҳои истеҳсолиро барои муштариён тағир надодаем.
  5. Ҳеҷ чиз вайрон нашуд.

Прототипи 2.0

Пас, ба тахтаи рассомӣ баргардед ва равандро дубора такрор кунед.

Идея ин аст, ки ба ҷои истифодаи прокси 100%, мо роҳи зудтаринро барои ҳар як муштарӣ муайян мекунем ва мо ба он ҷо дархостҳо мефиристем - яъне мо кореро мекунем, ки роҳбарияти муштарӣ номида мешавад.

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Инро чӣ тавр амалӣ кардан мумкин аст? Мо наметавонем мантиқро дар тарафи сервер истифода барем, зеро... Мақсад пайваст шудан ба ин сервер аст. Барои муштарӣ ин корро кардан лозим аст. Ва идеалӣ, ин корро бо ҳадди ақали мантиқи мураккаб иҷро кунед, то масъалаи ҳамгироӣ бо шумораи зиёди платформаҳои муштариро ҳал накунед.

Ҷавоб ин аст, ки истифодаи DNS. Дар ҳолати мо, мо инфрасохтори DNS-и худро дорем ва мо метавонем минтақаи доменеро таъсис диҳем, ки барои он серверҳои мо авторитарӣ хоҳанд буд. Ин чунин кор мекунад:

  1. Мизоҷ бо истифода аз ҳост ба сервери DNS дархост мекунад, масалан api.netflix.xom.
  2. Дархост ба сервери DNS мо меояд
  3. Сервери DNS медонад, ки кадом роҳ барои ин муштарӣ зудтарин аст ва суроғаи IP-и мувофиқро медиҳад.

Ҳалли як мушкилии иловагӣ дорад: провайдерҳои авторитарии DNS суроғаи IP-и муштариро намебинанд ва танҳо метавонанд суроғаи IP-и ҳалли рекурсивиеро, ки муштарӣ истифода мебарад, хонад.

Дар натиҷа, ҳалкунандаи авторитарии мо бояд на барои як муштарии инфиродӣ, балки барои як гурӯҳи муштариён дар асоси ҳалли рекурсивӣ қарор қабул кунад.

Барои ҳалли он, мо намунаҳои якхеларо истифода мебарем, натиҷаҳои андозагирии муштариёнро барои ҳар як ҳалкунандаҳои рекурсивӣ ҷамъоварӣ мекунем ва қарор медиҳем, ки ин гурӯҳи онҳоро ба куҷо фиристем - прокси тавассути IX бо истифода аз TCP Anycast, тавассути прокси ISP ё бевосита ба абр.

Мо системаи зеринро мегирем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Модели идоракунии DNS ба шумо имкон медиҳад, ки муштариёнро дар асоси мушоҳидаҳои таърихии суръати пайвастшавӣ аз муштариён ба абр равона кунед.

Боз саволе ин аст, ки ин равиш то чӣ андоза муассир хоҳад буд? Барои ҷавоб додан, мо боз системаи санҷиши худро истифода мебарем. Аз ин рӯ, мо конфигуратсияи барандаро танзим мекунем, ки дар он яке аз ҳадафҳо ба самти идоракунии DNS пайравӣ мекунад, дигаре мустақиман ба абр (истеҳсоли ҷорӣ) меравад.

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Дар натиҷа, мо натиҷаҳоро муқоиса мекунем ва баҳодиҳии самаранокиро мегирем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Дар натиҷа, мо якчанд чизҳои муҳимро фаҳмидем:

  1. Мо иҷрои интизории дархостҳои муштариёнро ба абр бо истифода аз DNS Steering арзёбӣ кардем.
  2. Мо аз муштариёни воқеӣ, аз ҳама намуди дастгоҳҳо маълумот гирифтем.
  3. Самаранокии идеяи пешниходшуда исбот шуд.
  4. Мо таваккал накардем - мо конфигуратсияҳои истеҳсолиро барои муштариён тағир надодаем.
  5. Ҳеҷ чиз вайрон нашуд.

Акнун дар бораи кисми душвор — мо онро дар истехсолот чорй мекунем

Қисми осон ҳоло ба охир расид - прототипи корӣ мавҷуд аст. Ҳоло қисми душвор ин роҳандозии ҳалли тамоми трафики Netflix мебошад, ки ба 150 миллион корбар, ҳазорҳо дастгоҳҳо, садҳо хидматҳои хурд ва маҳсулот ва инфрасохтори доимо тағйирёбанда паҳн карда мешавад. Серверҳои Netflix дар як сония миллионҳо дархост қабул мекунанд ва бо амали беэҳтиётона шикастани хидмат осон аст. Ҳамзамон, мо мехоҳем трафикро тавассути ҳазорҳо серверҳои CDN дар Интернет ба таври динамикӣ интиқол диҳем, ки дар он ҷо чизе пайваста ва дар лаҳзаҳои номуносиб тағир меёбад ва вайрон мешавад.

Ва бо ин ҳама, даста дорои 3 муҳандисест, ки барои таҳия, ҷойгиркунӣ ва дастгирии ҳамаҷонибаи система масъуланд.

Аз ин рӯ, мо дар бораи хоби орому солим сӯҳбатро идома медиҳем.

Чӣ тавр инкишофро идома додан мумкин аст ва тамоми вақти худро барои дастгирӣ сарф накунед? Муносибати мо ба 3 принсип асос ёфтааст:

  1. Мо миқёси эҳтимолии шикастҳоро (радиуси таркиш) кам мекунем.
  2. Мо ба сюрпризҳо омода ҳастем - мо интизорем, ки новобаста аз санҷиш ва таҷрибаи шахсӣ чизе вайрон мешавад.
  3. Деградатсияи зебо - агар чизе дуруст кор накунад, он бояд ба таври худкор ислоҳ карда шавад, ҳатто агар бо роҳи самараноктарин набошад.

Маълум шуд, ки дар ҳолати мо, бо чунин муносибат ба мушкилот, мо метавонем як роҳи ҳалли оддӣ ва муассирро пайдо кунем ва дастгирии системаро ба таври назаррас содда кунем. Мо фаҳмидем, ки мо метавонем як пораи хурди кодро ба муштарӣ илова кунем ва хатогиҳои дархости шабакаро, ки аз мушкилоти пайвастшавӣ ба вуҷуд омадаанд, назорат кунем. Дар сурати хатогиҳои шабакавӣ, мо мустақиман ба абр бармегардем. Ин ҳалли барои дастаҳои муштариён саъю кӯшиши зиёдро талаб намекунад, аммо хатари шикасти ногаҳонӣ ва сюрпризҳоро барои мо хеле коҳиш медиҳад.

Албатта, сарфи назар аз бозгашт, мо ба ҳар ҳол дар давоми рушд як интизоми дақиқро риоя мекунем:

  1. Намунаи санҷиш.
  2. Санҷиши A/B ё Canaries.
  3. Интиқоли прогрессивӣ.

Бо намунаҳо, равиш тавсиф шудааст - тағиротҳо аввал бо истифода аз як дорухат фармоишӣ санҷида мешаванд.

Барои санҷиши канарӣ, мо бояд ҷуфтҳои муқоисашавандаи серверҳоро ба даст орем, ки дар онҳо мо метавонем муқоиса кунем, ки чӣ гуна система пеш ва баъд аз тағирот кор мекунад. Барои ин, аз сайтҳои зиёди CDN мо, мо ҷуфтҳои серверҳоеро интихоб мекунем, ки трафики муқоисашавандаро мегиранд:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Сипас мо сохтмонро бо тағирот дар сервери Canary насб мекунем. Барои арзёбии натиҷаҳо, мо системаеро иҷро мекунем, ки тақрибан 100-150 ченакро бо намунаи серверҳои назорат муқоиса мекунад:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Агар озмоиши Канария муваффақ бошад, мо онро тадриҷан, дар мавҷҳо мебарорем. Мо серверҳоро дар ҳар як сайт дар як вақт навсозӣ намекунем - аз даст додани тамоми сайт бо сабаби мушкилот ба хидматрасонӣ барои корбарон назар ба аз даст додани ҳамон шумораи серверҳо дар маконҳои гуногун таъсири бештар дорад.

Умуман, самаранокӣ ва бехатарии ин равиш аз миқдор ва сифати ченакҳои ҷамъшуда вобаста аст. Барои системаи суръатбахшии дархостҳои мо, мо аз ҳама ҷузъҳои имконпазир ченакҳоро ҷамъ мекунем:

  • аз муштариён - шумораи сессияҳо ва дархостҳо, суръати бозгашт;
  • прокси - омор оид ба шумора ва вақти дархостҳо;
  • DNS - рақам ва натиҷаҳои дархостҳо;
  • канори абр - адад ва вақт барои коркарди дархостҳо дар абр.

Ҳамаи ин дар як лӯлаи ягона ҷамъоварӣ карда мешавад ва вобаста ба эҳтиёҷот мо қарор медиҳем, ки кадом ченакҳоро ба таҳлили вақти воқеӣ фиристем ва кадомаш ба Elasticsearch ё Big Data барои ташхиси муфассалтар.

Мо назорат мекунем

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Дар ҳолати мо, мо дар роҳи муҳими дархостҳо байни муштарӣ ва сервер тағирот ворид мекунем. Дар айни замон, шумораи ҷузъҳои гуногун дар мизоҷ, дар сервер ва дар роҳ тавассути Интернет хеле зиёд аст. Тағйирот дар мизоҷ ва сервер пайваста ба амал меоянд - ҳангоми кори даҳҳо гурӯҳҳо ва тағироти табиӣ дар экосистема. Мо дар миёна ҳастем - ҳангоми ташхиси мушкилот, имкони хубе вуҷуд дорад, ки мо ҷалб хоҳем шуд. Аз ин рӯ, мо бояд ба таври возеҳ фаҳмем, ки чӣ гуна муайян кардан, ҷамъоварӣ кардан ва таҳлил кардани метрика барои зуд ҷудо кардани мушкилот.

Идеалӣ, дастрасии пурра ба ҳама намуди ченакҳо ва филтрҳо дар вақти воқеӣ. Аммо ченакҳо зиёданд, бинобар ин саволи арзиш ба миён меояд. Дар ҳолати мо, мо ченакҳо ва воситаҳои рушдро ба таври зерин ҷудо мекунем:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Барои ошкор ва ҳал кардани мушкилот мо системаи вақти воқеии кушодаи худро истифода мебарем харита и Lumen - барои визуализатсия. Он ченакҳои ҷамъшударо дар хотира нигоҳ медорад, боэътимод аст ва бо системаи огоҳкунӣ муттаҳид мешавад. Барои маҳаллисозӣ ва ташхис, мо ба гузоришҳо аз Elasticsearch ва Kibana дастрасӣ дорем. Барои таҳлил ва моделсозии оморӣ, мо маълумоти калон ва визуализатсияро дар Tableau истифода мебарем.

Чунин ба назар мерасад, ки бо ин усул кор кардан хеле душвор аст. Бо вуҷуди ин, бо ташкил кардани метрика ва асбобҳо ба таври иерархӣ, мо метавонем мушкилотро зуд таҳлил кунем, навъи мушкилотро муайян кунем ва сипас ба ченакҳои муфассал ғарқ шавем. Умуман, мо барои муайян кардани сарчашмаи вайроншавӣ тақрибан 1-2 дақиқа вақт сарф мекунем. Пас аз ин, мо бо як гурӯҳи мушаххас оид ба ташхис кор мекунем - аз даҳҳо дақиқа то чанд соат.

Ҳатто агар ташхис зуд анҷом дода шавад ҳам, мо намехоҳем, ки ин зуд-зуд рух диҳад. Идеалӣ, мо танҳо вақте ки таъсири назаррас ба хидмат вуҷуд дорад, огоҳии ҷиддӣ мегирем. Барои системаи суръатбахшии дархости мо, мо танҳо 2 огоҳӣ дорем, ки огоҳ мекунанд:

  • Фоизи Fallback Client - арзёбии рафтори муштарӣ;
  • фоиз Хатогиҳои Probe - маълумоти устувории ҷузъҳои шабака.

Ин огоҳиҳои муҳим назорат мекунанд, ки оё система барои аксарияти корбарон кор мекунад ё не. Мо дида мебароем, ки чӣ қадар муштариён аз бозгашт истифода мебаранд, агар онҳо суръатбахшии дархостро ба даст наоварданд. Мо дар як ҳафта ба ҳисоби миёна камтар аз 1 ҳушдори интиқодӣ мегирем, гарчанде ки дар система як тонна тағйирот ба амал меояд. Чаро ин барои мо басанда аст?

  1. Агар прокси мо кор накунад, паси муштарӣ вуҷуд дорад.
  2. Системаи автоматии идоракунӣ мавҷуд аст, ки ба мушкилот ҷавоб медиҳад.

Тафсилоти бештар дар бораи охирин. Системаи озмоишии мо ва системаи ба таври худкор муайян кардани роҳи оптималии дархостҳо аз муштарӣ ба абр ба мо имкон медиҳад, ки ба таври худкор бо баъзе мушкилот мубориза барем.

Биёед ба конфигуратсияи намунавии худ ва 3 категорияи роҳ баргардем. Ба гайр аз вакти боркунй, мо метавонем худи факти тахеилро дида бароем. Агар бор кардани маълумот имконнопазир бошад, пас бо дидани натиҷаҳо дар роҳҳои гуногун мо метавонем муайян кунем, ки дар куҷо ва чӣ шикастааст ва оё мо метавонем онро тавассути тағир додани роҳи дархост ба таври худкор ислоҳ кунем.

намунаҳои:

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Ин равандро автоматӣ кардан мумкин аст. Онро ба системаи идоракунӣ дохил кунед. Ва ба он таълим диҳед, ки ба мушкилоти кор ва эътимод ҷавоб диҳад. Агар чизе ба шикастан шурӯъ кунад, вокуниш нишон диҳед, агар варианти беҳтаре вуҷуд дошта бошад. Дар айни замон, вокуниши фаврӣ ба туфайли бозгашт ба мизоҷон муҳим нест.

Ҳамин тариқ, принсипҳои дастгирии системаро ба таври зерин ифода кардан мумкин аст:

  • кам кардани миқёси вайроншавӣ;
  • ҷамъоварии нишондиҳандаҳо;
  • Мо ба таври худкор шикастаҳоро таъмир мекунем, агар имконпазир бошад;
  • агар ин имконнопазир бошад, мо шуморо огоҳ мекунем;
  • Мо дар панелҳои идоракунӣ ва асбобҳои триажӣ барои вокуниши зуд кор карда истодаем.

Дарсхои омухташуда

Барои навиштани прототип вақти зиёд лозим нест. Дар мо бошад, пас аз 4 мох тайёр шуд. Бо он мо ченакҳои нав гирифтем ва пас аз 10 моҳи оғози коркард мо трафики аввалини истеҳсолиро гирифтем. Сипас кори дилгиркунанда ва хеле душвор оғоз ёфт: тадриҷан истеҳсол ва васеъ кардани система, интиқоли трафики асосӣ ва аз хатогиҳо омӯхтан. Бо вуҷуди ин, ин раванди муассир хаттӣ нахоҳад буд - сарфи назар аз ҳама кӯшишҳо, ҳама чизро пешгӯӣ кардан мумкин нест. Ба зудӣ такрор кардан ва посух додан ба маълумоти нав хеле самараноктар аст.

Суръати дархостҳои интернетро суръат диҳед ва оромона хоб кунед

Дар асоси таҷрибаи худ, мо метавонем тавсияҳои зеринро пешниҳод кунем:

  1. Ба интуисияи худ бовар накунед.

    Сарфи назар аз таҷрибаи бузурги аъзоёни дастаи мо, ҳисси мо ҳамеша моро ноком мекард. Масалан, мо суръати интизории истифодаи прокси CDN ё рафтори TCP Anycast-ро нодуруст пешгӯӣ кардем.

  2. Маълумотро аз истеҳсолот гиред.

    Зарур аст, ки ҳадди ақалл ба миқдори ками маълумотҳои истеҳсолӣ ҳарчи зудтар дастрас шавед. Гирифтани шумораи ҳолатҳои беназир, конфигуратсияҳо ва танзимот дар шароити лабораторӣ қариб ғайриимкон аст. Дастрасии зуд ба натиҷаҳо ба шумо имкон медиҳад, ки мушкилоти эҳтимолиро зуд омӯзед ва онҳоро дар меъмории система ба назар гиред.

  3. Ба маслиҳат ва натиҷаҳои дигарон пайравӣ накунед - маълумоти шахсии худро ҷамъ кунед.

    Принсипҳои ҷамъоварӣ ва таҳлили маълумотро риоя кунед, аммо натиҷаҳо ва изҳороти дигаронро кӯрона қабул накунед. Танҳо шумо метавонед аниқ донед, ки барои корбарони шумо чӣ кор мекунад. Системаҳои шумо ва муштариёни шумо метавонанд аз ширкатҳои дигар ба таври назаррас фарқ кунанд. Хушбахтона, воситаҳои таҳлил ҳоло дастрасанд ва истифодаашон осон аст. Натиҷаҳое, ки шумо ба даст меоред, шояд он чизест, ки Netflix, Facebook, Akamai ва ширкатҳои дигар даъво мекунанд. Дар ҳолати мо, иҷрои TLS, HTTP2 ё омор оид ба дархостҳои DNS аз натиҷаҳои Facebook, Uber, Akamai фарқ мекунад - зеро мо дастгоҳҳо, муштариён ва ҷараёни маълумотҳои гуногун дорем.

  4. Ба тамоюлҳои мӯд беасос пайравӣ накунед ва самаранокиро арзёбӣ кунед.

    Оғози оддӣ. Беҳтар аст, ки системаи оддии кориро дар як муддати кӯтоҳ сохтан аз сарф кардани вақти зиёд барои таҳияи ҷузъҳои ба шумо лозим нест. Дар асоси ченакҳо ва натиҷаҳои шумо вазифаҳо ва мушкилоти муҳимро ҳал кунед.

  5. Барои барномаҳои нав омода шавед.

    Ҳамон тавре ки пешгӯии ҳама мушкилот душвор аст, пешгӯии манфиатҳо ва барномаҳо душвор аст. Аз стартапҳо ибрат гиред - қобилияти онҳо барои мутобиқ шудан ба шароити муштарӣ. Дар ҳолати шумо, шумо метавонед мушкилоти нав ва роҳҳои ҳалли онҳоро кашф кунед. Дар лоиҳаи худ мо ҳадаф гузоштаем, ки таъхири дархостро кам кунем. Аммо, ҳангоми таҳлил ва муҳокимаҳо мо фаҳмидем, ки мо инчунин метавонем серверҳои проксиро истифода барем:

    • мувозинати трафик дар минтақаҳои AWS ва кам кардани хароҷот;
    • модели устувории CDN;
    • барои танзими DNS;
    • барои танзим кардани TLS/TCP.

хулоса

Дар гузориш ман тавсиф кардам, ки чӣ тавр Netflix мушкилоти суръат бахшидан ба дархостҳои интернетӣ байни муштариён ва абрро ҳал мекунад. Чӣ тавр мо маълумотро бо истифода аз системаи намунагирӣ дар бораи муштариён ҷамъоварӣ мекунем ва маълумоти таърихии ҷамъшударо барои интиқоли дархостҳои истеҳсолӣ аз муштариён тавассути роҳи зудтарин дар Интернет истифода мебарем. Чӣ тавр мо барои ноил шудан ба ин вазифа принсипҳои протоколҳои шабакавӣ, инфрасохтори CDN-и худ, шабакаи магистралӣ ва серверҳои DNS-ро истифода мебарем.

Аммо, ҳалли мо танҳо як мисоли он аст, ки чӣ гуна мо дар Netflix чунин системаро татбиқ кардем. Он чизе ки барои мо кор мекард. Қисми татбиқшудаи гузориши ман барои шумо принсипҳои рушд ва дастгирӣ мебошад, ки мо онҳоро риоя мекунем ва ба натиҷаҳои хуб ноил мешавем.

Ҳалли мушкилоти мо шояд ба шумо мувофиқ наояд. Бо вуҷуди ин, назария ва принсипҳои тарроҳӣ ҳатто агар шумо инфрасохтори CDN-и худро надошта бошед ё он аз мо хеле фарқ кунад, боқӣ мемонад.

Муҳимияти суръати дархостҳои тиҷоратӣ низ муҳим боқӣ мемонад. Ва ҳатто барои як хидмати оддӣ шумо бояд интихоб кунед: байни провайдерҳои абрӣ, ҷойгиршавии сервер, провайдерҳои CDN ва DNS. Интихоби шумо ба самаранокии дархостҳои интернетӣ барои муштариёни шумо таъсир мерасонад. Ва барои шумо муҳим аст, ки ин таъсирро андозагирӣ ва дарк кунед.

Бо ҳалли оддӣ оғоз кунед, дар бораи тағир додани маҳсулот ғамхорӣ кунед. Ҳангоми рафтан омӯзед ва системаро дар асоси маълумоти муштариён, инфрасохтори шумо ва тиҷорати худ такмил диҳед. Дар бораи эҳтимолияти вайроншавии ғайричашмдошт дар ҷараёни тарҳрезӣ фикр кунед. Ва он гоҳ шумо метавонед раванди рушди худро суръат бахшед, самаранокии ҳалли худро беҳтар созед, аз бори нолозими дастгирӣ канорагирӣ кунед ва оромона хоб кунед.

Ин сол конференция аз 6 то 10 июль барпо мегардад дар формати онлайн. Шумо метавонед ба яке аз падарони DevOps, худи Ҷон Уиллис саволҳо диҳед!

Манбаъ: will.com

Илова Эзоҳ