CDN - Content Delivery Network (Чумаченко) (1185963)
Текст из файла
Сетидоставкиконтента(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.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.