CDN - Content Delivery Network (Чумаченко) (дополнительное)
Описание файла
Файл "CDN - Content Delivery Network (Чумаченко)" внутри архива находится в папке "дополнительное". PDF-файл из архива "дополнительное", который расположен в категории "". Всё это находится в предмете "облачные вычисления и виртуализация (vcc)" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Сетидоставкиконтента(CDN)ЧумаченкоК.В.БудемзнакомыКонстантинЧумаченкоГенеральныйдиректорисо-основательNGENIX,первогороссийскогооператораCDN(2007).k.chumachenko@ngenix.nethttps://www.linkedin.com/in/chumachenko2Вчёмвызов?Трафикитранзакциивинтернетерастутвзрывнымитемпами.Какмасштабироватьинфраструктуру?CiscoVNIGlobalIPTrafficForecast,2015–20203ПочемуCDN?• Возможно,старейшаяоблачнаятехнология.– 1995-1998,MIT,TomLeighton&DanielLewin->Akamai.• Связующеезвеномеждувебомителекоммуникациями.– Охватываетуровни2-7моделиOSI.– ИспользуетпротоколыTCP/IP,HTTP,DNS.• Используетсябольшинствомкрупныхвеб-ресурсов.– Каксобственнаятехнологияиликаквнешнийсервис.– РынокуслугCDNв2016году–3,6млрд.долл.4Какустроенинтернет?• Интернетсостоитизмножестванезависимыхсетей.• AutonomousSystem(автономнаясистема)–группаIPхостовсединойполитикоймаршрутизациивинтернете.– AS2848–МГУ– AS12389– Ростелеком– AS16509– AmazonВсего~80тыс.AS• ASпопарностыкуютсяиобмениваютсямаршрутнойинформациейпопротоколуBGP.ИзвзаимодействияASскладываетсяэкосистемаинтернет.56Видывеб-контентаКонтент–файлыипотокиданныхнасерверах,доступныедляконечныхпользователейинтернета.СтатическийДинамическийХранитсянасервереимногократнозагружаетсяпользователямивнеизменномвиде.Формируетсянасерверепозапросупользователяизагружаетсяоднократно.• Изображения,CSS,JS.• Файлы,обновленияПО,документы.• Новостнаялента,поисковаявыдача,комментариипользователей.• Видео(линейноевещаниеилиVoD)• Информация«банк-клиент».• Видеоконференция1:1,игры.7Типичныепроблемыдоставкиконтента• Медленнаязагрузка.• Долгоеожидание1-гобайта.• Обрывсоединения.8Каквозникаютпроблемы?НизкаянагрузкаСерверПользователиИнтернет9Каквозникаютпроблемы?ВысокаянагрузкаНедостаточноресурсовсервераСетевыепотериизадержки(внутриинастыкахAS)СерверПользователиПерегрузкапортаподключениякинтернетуИнтернет10Какихрешать?ПроблемаРешениеНедостатоксерверныхресурсовИспользоватьмасштабируемуюархитектурувеб-приложенийПерегрузкаполосыпропусканияИспользоватьраспределенныеподключениякинтернету11Архитектуравысоконагруженныхвеб-приложенийКлиентКлиентФронтендСерверБэкенд• • • • Кэшированиестатики.Реверс-проксирование.Балансировка.Авторизация,ssl,gzip.• • • • Серверприложений.Базаданных.Хранилище.…12CDNкакраспределённыйкэширующийфронтендКэширование–временноехранениеконтентанасервересцельюускоренияегодоставкипользователям.CDN(ContentDeliveryNetwork)– географическираспределеннаясетькэширующихсерверовдлядоставкиконтентапользователям.1. Пользовательобращаетсяквеб-сайту.2. Запросперенаправляетсяна«оптимальный»серверCDN.3. ЕсликонтентнаходитсявкэшесервераCDN,ондоставляетсяпользователю.4. Есликонтентотсутствуетвкэше,серверCDNзагружаетеговкэшссервераоригинацииидоставляетпользователю.5. Повторныезапросыпользователейкконтентуобрабатываютсяизкэшейсерверовдоставкибезобращенияксерверуоригинации.13ДоставкаконтентачерезCDNСервероригинацииИнтернетПользователиСерверыдоставкиCDN14КакиезадачирешаетCDNдлясайта?• Ускорениезагрузкисайта.• Снижениенагрузкинаоригинальныйсервер.• Доставкабольших(пиковых)объемоввидеотрафика.• Повышениеотказоустойчивости/защитаотDDoS.Нерешаетпроблем:- ДоставкиконтентаизАвБ.- Преодоления«последнеймили»допользователя*- Ускорениядинамическогоинепопулярногоконтента*____________________________*естьварианты.15Протоколыдоставкиконтентавинтернете16Кодекииконтейнерыдляцифровыхмедиа• Кодек–алгоритмкомпрессииданных.– H.264,HEVC,DivX,mp3…• Контейнер–форматзаписиданныхиметаданныхвфайлиливпоток.– MKV,AVI,MP4,MPEG-TS,WebM…• Протокол–протоколпередачиданных.– RTMP,HLS,DASHПример:HLS– этопротоколдоставкиH.264-видеоиAACаудиовконтейнерахMPEG-TS.Разрабатываютсясучетомсредыпримененияизадач.17Эволюциядоставкивидео• Прогрессивнаязагрузкавидеофайловàпотоковоевидео.– Меньшенагрузканасеть.– Непредполагаетхранениянапользовательскомустройстве.– Возможностьадаптациибитрейтакскоростиподключенияивозможностямпользовательскогоустройства.– Поддержкалинейноговещанияипрямыхтрансляций.18Потоковоевидео:недавняяистория• RTMP,RTP,RTSP,MMS,– протоколысустановлениемсессии.– – – – – ТребовалиспециализированногоПО(медиасерверов,плееров).Плохоадаптированыкпередачеданныхспотерями.Плохоадаптированыкбалансировкемеждусерверами.Легкоблокировалисьнафайерволлахвкорп.сетях.Зависелиотпроприетарныхтехнологий(Flash,Silverlight,…)• Исчезаютизвеба,некоторыесохраняютсявспециализированныхсетях(телевещание).19Потоковоевидео:современность• Видео,какпотокHTTP-объектов.– Видеонарезаетсянафрагменты(.MP4.MPEG-TS),которыепередаютсяпоHTTP.– Клиентпериодическизагружаетфайл-манифестсURLфрагментовиметаинформацией.– HTTP-объектыпередаютсяикэшируютсялюбымHTTP-сервером(CDN).– Адаптивныйбитрейт(выборпотоканаклиенте).– Эффективнаябалансировканагрузки.– УнификациятехнологийCDN(РазницамеждуLiveиVoDтольковразмерекэша).• Актуальныепротоколы:– DASH:DynamicAdaptiveStreamingOverHTTP.– HLS:AppleHTTPLiveStreaming(AppleнепускаетDASHнаiOS).• Актуальныекодеки:– H.264,перспектива-H.265,VP920ДоставкапотоковоговидеопоHTTP76Файлыманифесты55433Серверсегментации21765432176543217654321Сегментированноевидео746554332136Сервердоставки7251ПользовательАдаптивныйбитрейт21DASH:DynamicAdaptiveStreamingOverHTTP• Открытыйстандарт.• Нативноподдерживаетсямногимисовременнымибраузерами(MSE-расширениеHTML5)– кромеiOS.• Совместимслюбымкодеком(H.264,VP9,H.265,…).• СовместимснесколькимисистемамиDRM(защитаотпиратства).• Быстрыйстартпотокаприпроигрывании.• Bells&whistles(статистика,вставкарекламы,…)22ЭволюцияHTTPHTTP/2(RFC7540,май2015):• Бинарныйобмен(HTTP1.1– текстовый).• Компрессиязаголовков.• МультиплексированиеиприоритезацияHTTP-потоковврамкаходнойTCP-сессии.• ServerPush(отправкаданныхклиентупоинициативесервера).23МультиплексированиевHTTP/224Роутингпользовательскихзапросов(балансировка)25Особенностиконтент-роутингавCDN• CDNможетсостоятьизтысячсерверов.Каквыбратьоптимальныйсервердляответапользователю,если:– Дистанциявинтернете≠географии(геобазыIP-адресовнеработают).– ПользовательисервераCDNнаходятсявразныхсетяхиничегонезнаютдругодругедомоментаобращенияпользователяксайту.– Нельзянаправлятьзапросксерверу,которыйнеможетответить.– СистемабалансировкидолжнауправлятьнагрузкойнасетьисервераCDN.– Системабалансировкидолжнасамамасштабироватьсясростомнагрузки.• Напрактикеприменяетсямиксмеханизмовсетевых(L2-L3)иприкладных(L4-L7)уровней.26ПринципиальнаясхемабалансировкивCDNМониторингсостояниясетиисерверовМеханизмбалансировкиПользовательСерверыCDNАлгоритмперенаправленияможетучитывать:• Длинусетевыхмаршрутовдопользователей• Состояниесерверовиотдельныхсистем.• Состояниесети.27BGPAnycast123.10.10.1123.10.10.1123.10.10.1НесколькимсерверамCDNназначаетсяодинIP(однасетьанонсируетсяизнесколькихлокаций).ВыигрываеткратчайшийBGP-маршрутотпользователя.• Балансировка=маршрутизация.Минимальныезадержки,надежно,неограниченноемасштабирование.• ТребуетсяIP-сеть/24иподдержкаBGP.• Нетуправлениянагрузкой(всёилиничего).• Нетпривязкипользователяксерверу(affinity/persistence).• Маршрутызависятотвнешнихфакторов(ISP).Применяетсядлябалансировкибалансировщиков.28DNS-балансировкаIPwww.example.com?123.10.10.1DNS-резолверпользователя• Скорость,надежность,масштабируемость.123.10.10.1123.10.10.2123.10.10.3Балансировщик–DNS-сервер(облако)CDN.ВладелецделегируетдоменнаDNS-серверCDN.ПользовательскийDNS-резолверобращаетсякDNSсерверуCDN,которыйвозвращаетIPсервераCDN.DNS-серверCDN(авторитативныйдляwww.example.com)• Низкаяточность(IPрезолвера≠IPпользователя).• Низкая«гранулярность»(науровнедомена).• ДолгаяинвалидациявнешнихкэширующихDNS.Применяетсядлябалансировкистатическогоконтентаибалансировщиков.29HTTP-балансировкаПроксиПрокси(1шаг)• Nginx,проприетарныерешения.СерверURL(2шага)СерверURL• HTTP302MovedTemporarily.• Javascriptвкодесайтаилиплеера.• Отличная«гранулярность»(perrequest),гибкоеуправлениенагрузкой.• Низкаяскорость,высокаянагрузканабалансировщик.• Требуеткодаилиприложенияупользователя.ПрименяетсядлятяжёлогоконтентаиHTTP-стриминга.30(ВозвратURLвплейлисте-манифесте).Оттеориикпрактике31CDN++Собственнаясеть(AS)• Суперузлыдоставки• Хранилище• Приложения• УправлениеСерверыдоставкиуоператоров32CDNкаксобственнаятехнологияПользовательскийконтент,миллиардывидео.17%вебтрафикавСШАПремиальныйконтент(фильмы),десяткитысячвидео.33%веб-трафикавСША• Бэкендвсетидата-центровGoogle.• БэкенднаAWS.• Суперузлы:GoogleEdgeNetwork.• Cуперузлы:сетьOpenConnect.• ЛегкиекэширующиеузлыуISP(GGC).• ЛегкиекэширующиеузлыуISP(OCA)• Протоколыдоставки:DASHиHLS.• Протоколыдоставки:DASHиHLS.Непредсказуемыйинтересаудитории:«толстыйхвост»,случайныепики.• Многоуровневоекэширование.• КлиентскийDNS-резолвер8.8.8.8споддержкойeDNS.Прогнозируемоесмотрение.• Проактивнаязагрузкавидео(off-peakfill).33CDNкаксервис• Высокопроизводительныйфронтенд.• Мониторингибалансировка.Атакже:• Сервисыдляразныхпрофилейконтента(Live,VoD,Сайт,ОбновленияПО,…).• Управлениеэкземплярамисервисов(CRUD:Create,Retrieve,Update,Delete).• Управлениересурсами(CPU,диски,память,полоса).• ВнешнийивнутреннийAPI.• Статистика,репортинг,биллинг(BigDataиnon-SQL).• Функционалирешениядлясмежныхзадачзаказчиков(хранениеданных,транскодированиевидео,защитаконтентаит.п.)• Прочиеинтерфейсысэкосистемойонлайн-видео,е-коммерции,инфобезопасности.3435БудущееCDN• Мобилизацияклиентскихустройств.– Адаптацияконтентакустройству(imageresizing,adaptivestreaming,etc.)– Адаптациятранспортакмобильнымсетям:глубокоекэширование,UDPвместоTCPсконтролемнауровнеприложений.• БольшефункцийдляОТТ-видео(SmartTVменяетТВ).• ЗащитасайтовотDDoS-атакивторженийнауровнеприложений.– АнализифильтрацияTCP,DNS,HTTP(S)-сессий.• ИнтеграцияссетямиISPисоблачнымисервисами.– ИспользованиемеханизмовSDNвбалансировкезапросовкCDNивнутриCDN.– API– цифровойклейдляоблачныхсервисов.36Спасибозавнимание!Вопросы?Слайдыиматериалыпотеме:https://goo.gl/CYSY5g37.