SlideShare una empresa de Scribd logo
1 de 15
Как мы строим CDN
в России
Ярослав Городецкий, CDNvideo
Что такое CDN?
CDN – Content Delivery Network (англ.)
CDN – территориально-распределенная сеть серверов
В трехзвенной Highload-архитектуре CDN соответствует
уровню frontend-серверов
CDN бывают частные (принадлежат крупным контент-
провайдерам) и операторские (предоставляют услуги на
платной основе контент-провайдерам)
Принцип работы CDN
Для чего нужна CDN?
CDN – инструмент для раздачи потокового видео/аудио
(RTMP/RTSP/HTTP Live Streaming) или статического контента
по HTTP.
Услуги операторов CDN позволяют облегчить создание
высоконагруженных и отказоустойчивых сервисов,
предполагающих раздачу «тяжелого» контента (видео, аудио,
фото, flash, CSS/JS, клиенты игр и пр.).
Классификация CDN
• по способу расположения серверов
• по способу распределения нагрузки;
• по способу распространения контента;
• по способу нахождения кратчайшего пути до
пользователя;
• по предоставляемым услугам
Расположение серверов CDN
• на сетях интернет-провайдеров с
большой абонентской базой;
• Akamai, CDNvideo
• на точках обмена трафиком (IX);
• LimeLight, NGENIX
• в сети магистрального оператора
• Level3, Synterra
Распределение нагрузки в CDN
• DNS (перенаправление в момент DNS-запроса)
• используют большинство CDN
• HTTP Redirect (выдается ошибка 304)
• используют некоторые частные CDN
• URL Rewriting (подстановка URL при генерации HTML)
• Anycast (ответ присылает ближайший сервер)
Распространения контента внутри CDN
• Иерархическое дерево
• используют крупные CDN
• Точка-многоточка
• используют большинство CDN
• P2P
• Использует Coral CDN и стриминг-провайдеры
Octoshape и Lavina.TV
Нахождение кратчайшего пути до пользователя
• По географии
• На основании данных о сетевой топологии
• BGP-маршруты в режиме реального времени
• База данных RIPE
• Таблицы локальных адресов региональных провайдеров
• По интегральным метрикам
• сетевая задержка, количество хопов и AS на пути
Особенности Интернет в России
• Централизация значительной части трафика: пропускная способность
московского узла должна быть примерно такой же, как и суммарная
пропускная способность остальной сети («и помни о Москве»)
• «Размазанность» трафика по провайдерам: в каждом городе – лидеры и
много небольших игроков со значительным суммарным трафиком
• Пиринговые войны между провайдерами: если в городе есть узел CDN,
то далеко не факт, что все его жители будут загружать трафик с него
• Не везде безлимитные тарифы: надо договариваться с региональными
операторами о бесплатности трафика с CDN
Как мы строимCDN для Рунета
• способ расположения серверов: на сетях интернет-
провайдеров с большой абонентской базой
• способу распределения нагрузки: DNS;
• по способу распространения контента: точка-многоточка;
• по способу нахождения кратчайшего пути до пользователя:
данные о сетевой топологии + интегральные метрики;
Услуги сетей CDN
• Кэширование HTTP-контента
• статические файлы
• динамический долгоживущий контент
• Потоковое вещание (стриминг) видео/аудио
• прямые трансляции
• стриминг видеороликов
• перекодирование потоков и файлов
Дополнительные сервисы CDN
• Защита контента при распостранении через CDN
• одноразовые ссылки на контент (ссылка кодируется зависит )
• доступ только через авторизованный flash-плеер
• авторизация каждого запроса к контенту на стороне контент-
провайдера
• API для управления услугами
• очистка кэша
• просмотр статуса услуги
Как подключиться к CDN
1. Сообщить CDN-провайдеру данные о том, где находится контент,
который необходимо распространить через CDN
2. Получить от CDN-провайдера ссылку для доступа к своему контенту,
размещенному на CDN
3. (опционально) Замаскировать использование CDN, установив в
настройках своего домена CNAME-запись для одного из поддоменов,
ссылающуюся на домен CDN-провайдера
4. Сослаться на контент, размещенный на CDN, на своем сайте или в
своем приложении (для мобильных/для социальных сетей)
Спасибо за внимание!
Ярослав Городецкий, CDNvideo
gorod@cdnvideo.ru

Más contenido relacionado

Más de Fuenteovejuna

Shared Personalization Service - How To Scale to 15K RPS, Patrice Pelland
Shared Personalization Service - How To Scale to 15K RPS, Patrice PellandShared Personalization Service - How To Scale to 15K RPS, Patrice Pelland
Shared Personalization Service - How To Scale to 15K RPS, Patrice PellandFuenteovejuna
 
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...Fuenteovejuna
 
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий БородинПрактическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий БородинFuenteovejuna
 
Social Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice PellandSocial Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice PellandFuenteovejuna
 
Профилирование памяти в приложениях на Python, Антон Грицай
Профилирование памяти в приложениях на Python, Антон ГрицайПрофилирование памяти в приложениях на Python, Антон Грицай
Профилирование памяти в приложениях на Python, Антон ГрицайFuenteovejuna
 
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...Fuenteovejuna
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Fuenteovejuna
 
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...Fuenteovejuna
 
Динамика DDoS-атак в России, Александр Лямин
Динамика DDoS-атак в России, Александр ЛяминДинамика DDoS-атак в России, Александр Лямин
Динамика DDoS-атак в России, Александр ЛяминFuenteovejuna
 
Extreme Cloud Storage on FreeBSD, Андрей Пантюхин
Extreme Cloud Storage on FreeBSD, Андрей ПантюхинExtreme Cloud Storage on FreeBSD, Андрей Пантюхин
Extreme Cloud Storage on FreeBSD, Андрей ПантюхинFuenteovejuna
 
Мониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима НиконенкоМониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима НиконенкоFuenteovejuna
 
Native Client, Евгений Эльцин
Native Client, Евгений ЭльцинNative Client, Евгений Эльцин
Native Client, Евгений ЭльцинFuenteovejuna
 
Tarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий ВостриковTarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий ВостриковFuenteovejuna
 
Real time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav VorozhkoReal time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav VorozhkoFuenteovejuna
 
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав КрюковSphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав КрюковFuenteovejuna
 
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей НековальМасштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей НековальFuenteovejuna
 
Вы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья КосмодемьянскийВы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья КосмодемьянскийFuenteovejuna
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийFuenteovejuna
 
InnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter ZaitsevInnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter ZaitsevFuenteovejuna
 
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевFuenteovejuna
 

Más de Fuenteovejuna (20)

Shared Personalization Service - How To Scale to 15K RPS, Patrice Pelland
Shared Personalization Service - How To Scale to 15K RPS, Patrice PellandShared Personalization Service - How To Scale to 15K RPS, Patrice Pelland
Shared Personalization Service - How To Scale to 15K RPS, Patrice Pelland
 
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
Оптимизация одного из топовых приложений для социальной сети ВКонтакте: 1000 ...
 
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий БородинПрактическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
 
Social Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice PellandSocial Monitoring Tool codename Looking Glass, Patrice Pelland
Social Monitoring Tool codename Looking Glass, Patrice Pelland
 
Профилирование памяти в приложениях на Python, Антон Грицай
Профилирование памяти в приложениях на Python, Антон ГрицайПрофилирование памяти в приложениях на Python, Антон Грицай
Профилирование памяти в приложениях на Python, Антон Грицай
 
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
 
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
Некоторые аспекты влияния сходимости протокола BGP на доступность сетевых рес...
 
Динамика DDoS-атак в России, Александр Лямин
Динамика DDoS-атак в России, Александр ЛяминДинамика DDoS-атак в России, Александр Лямин
Динамика DDoS-атак в России, Александр Лямин
 
Extreme Cloud Storage on FreeBSD, Андрей Пантюхин
Extreme Cloud Storage on FreeBSD, Андрей ПантюхинExtreme Cloud Storage on FreeBSD, Андрей Пантюхин
Extreme Cloud Storage on FreeBSD, Андрей Пантюхин
 
Мониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима НиконенкоМониторинг XXI-век, Алиса Смирнова, Дима Никоненко
Мониторинг XXI-век, Алиса Смирнова, Дима Никоненко
 
Native Client, Евгений Эльцин
Native Client, Евгений ЭльцинNative Client, Евгений Эльцин
Native Client, Евгений Эльцин
 
Tarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий ВостриковTarantool Silverbox, Юрий Востриков
Tarantool Silverbox, Юрий Востриков
 
Real time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav VorozhkoReal time indexes in Sphinx, Yaroslav Vorozhko
Real time indexes in Sphinx, Yaroslav Vorozhko
 
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав КрюковSphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
 
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей НековальМасштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
Масштабируемая система голосования на базе PostgreSQL PgQ, Сергей Нековаль
 
Вы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья КосмодемьянскийВы решили написать собственное хранилище, Илья Космодемьянский
Вы решили написать собственное хранилище, Илья Космодемьянский
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
 
InnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter ZaitsevInnoDB Architecture and Performance Optimization, Peter Zaitsev
InnoDB Architecture and Performance Optimization, Peter Zaitsev
 
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
 

CDN в России: от теории к практике, Ярослав Городецкий

  • 1. Как мы строим CDN в России Ярослав Городецкий, CDNvideo
  • 2. Что такое CDN? CDN – Content Delivery Network (англ.) CDN – территориально-распределенная сеть серверов В трехзвенной Highload-архитектуре CDN соответствует уровню frontend-серверов CDN бывают частные (принадлежат крупным контент- провайдерам) и операторские (предоставляют услуги на платной основе контент-провайдерам)
  • 4. Для чего нужна CDN? CDN – инструмент для раздачи потокового видео/аудио (RTMP/RTSP/HTTP Live Streaming) или статического контента по HTTP. Услуги операторов CDN позволяют облегчить создание высоконагруженных и отказоустойчивых сервисов, предполагающих раздачу «тяжелого» контента (видео, аудио, фото, flash, CSS/JS, клиенты игр и пр.).
  • 5. Классификация CDN • по способу расположения серверов • по способу распределения нагрузки; • по способу распространения контента; • по способу нахождения кратчайшего пути до пользователя; • по предоставляемым услугам
  • 6. Расположение серверов CDN • на сетях интернет-провайдеров с большой абонентской базой; • Akamai, CDNvideo • на точках обмена трафиком (IX); • LimeLight, NGENIX • в сети магистрального оператора • Level3, Synterra
  • 7. Распределение нагрузки в CDN • DNS (перенаправление в момент DNS-запроса) • используют большинство CDN • HTTP Redirect (выдается ошибка 304) • используют некоторые частные CDN • URL Rewriting (подстановка URL при генерации HTML) • Anycast (ответ присылает ближайший сервер)
  • 8. Распространения контента внутри CDN • Иерархическое дерево • используют крупные CDN • Точка-многоточка • используют большинство CDN • P2P • Использует Coral CDN и стриминг-провайдеры Octoshape и Lavina.TV
  • 9. Нахождение кратчайшего пути до пользователя • По географии • На основании данных о сетевой топологии • BGP-маршруты в режиме реального времени • База данных RIPE • Таблицы локальных адресов региональных провайдеров • По интегральным метрикам • сетевая задержка, количество хопов и AS на пути
  • 10. Особенности Интернет в России • Централизация значительной части трафика: пропускная способность московского узла должна быть примерно такой же, как и суммарная пропускная способность остальной сети («и помни о Москве») • «Размазанность» трафика по провайдерам: в каждом городе – лидеры и много небольших игроков со значительным суммарным трафиком • Пиринговые войны между провайдерами: если в городе есть узел CDN, то далеко не факт, что все его жители будут загружать трафик с него • Не везде безлимитные тарифы: надо договариваться с региональными операторами о бесплатности трафика с CDN
  • 11. Как мы строимCDN для Рунета • способ расположения серверов: на сетях интернет- провайдеров с большой абонентской базой • способу распределения нагрузки: DNS; • по способу распространения контента: точка-многоточка; • по способу нахождения кратчайшего пути до пользователя: данные о сетевой топологии + интегральные метрики;
  • 12. Услуги сетей CDN • Кэширование HTTP-контента • статические файлы • динамический долгоживущий контент • Потоковое вещание (стриминг) видео/аудио • прямые трансляции • стриминг видеороликов • перекодирование потоков и файлов
  • 13. Дополнительные сервисы CDN • Защита контента при распостранении через CDN • одноразовые ссылки на контент (ссылка кодируется зависит ) • доступ только через авторизованный flash-плеер • авторизация каждого запроса к контенту на стороне контент- провайдера • API для управления услугами • очистка кэша • просмотр статуса услуги
  • 14. Как подключиться к CDN 1. Сообщить CDN-провайдеру данные о том, где находится контент, который необходимо распространить через CDN 2. Получить от CDN-провайдера ссылку для доступа к своему контенту, размещенному на CDN 3. (опционально) Замаскировать использование CDN, установив в настройках своего домена CNAME-запись для одного из поддоменов, ссылающуюся на домен CDN-провайдера 4. Сослаться на контент, размещенный на CDN, на своем сайте или в своем приложении (для мобильных/для социальных сетей)
  • 15. Спасибо за внимание! Ярослав Городецкий, CDNvideo gorod@cdnvideo.ru