Скачать презентацию Как мы делали видеораздачу для carambatv ru Скачать презентацию Как мы делали видеораздачу для carambatv ru

669cb064051225e1133af6f9f42af6f0.ppt

  • Количество слайдов: 42

Как мы делали видеораздачу для carambatv. ru Как мы делали видеораздачу для carambatv. ru

Евгений Потапов 10 лет опыта веб-разработки 4 года опыта использования облачных технологий генеральный директор Евгений Потапов 10 лет опыта веб-разработки 4 года опыта использования облачных технологий генеральный директор компании «Сумма Ай. Ти»

Поддержка высоконагруженных веб-сайтов 140 миллионов уникальных посетителей в сутки Более тысячи серверов на поддержке Поддержка высоконагруженных веб-сайтов 140 миллионов уникальных посетителей в сутки Более тысячи серверов на поддержке

производство и дистрибуция развлекательного видео контента. Для интернета и ТВ. 120 000 уникальных посетителей производство и дистрибуция развлекательного видео контента. Для интернета и ТВ. 120 000 уникальных посетителей на сайте Caramba. TV. ru в сутки 18 -20 миллионов просмотров видео на собственном плеере в месяц

Цели своего видео-CDN ๏ Надежная (как минимум с политической точки зрения) раздача видео ๏ Цели своего видео-CDN ๏ Надежная (как минимум с политической точки зрения) раздача видео ๏ Возможность выбора видеоформатов ๏ Гибкость доработки плеера и аналитики ๏ Контроль за расходами

Составляющие ๏ 1. Транскодинг ๏ 2. Распространение видео по серверам ๏ 3. Раздача видео Составляющие ๏ 1. Транскодинг ๏ 2. Распространение видео по серверам ๏ 3. Раздача видео пользователям ๏ 4. Поддержка

1. Транскодинг ๏ Админ-панель ๏ Служба очередей (принимает запросы на процессинг от админ-панели) ๏ 1. Транскодинг ๏ Админ-панель ๏ Служба очередей (принимает запросы на процессинг от админ-панели) ๏ Транскодеры (получают задания из очереди) ๏ Таймер (оценивает общее время процессинга) ๏ AWS клиент – докупает транскодеров

1. Транскодинг – до скейлинга 1. Транскодинг – до скейлинга

1. Транскодинг - скейлинг 1. Транскодинг - скейлинг

1. Транскодинг – реальная жизнь ๏ Не было ни одного случая когда потребовалось бы 1. Транскодинг – реальная жизнь ๏ Не было ни одного случая когда потребовалось бы масштабирование транскодеров ๏ Чаще всего в процессинге одновременно находится один файл

2. Распространение видео по серверам ๏ lsyncd/rsync ๏ TODO: торренты 2. Распространение видео по серверам ๏ lsyncd/rsync ๏ TODO: торренты

2. Распространение видео по серверам lsyncd/rsync: ๏ Транскодированное видео загружается на один из случайно 2. Распространение видео по серверам lsyncd/rsync: ๏ Транскодированное видео загружается на один из случайно выбранных серверов CDN. ๏ Серверы находятся в кольце lsync- синхронизаций в пределах одного датацентра. ๏ По одному из серверов в каждом датацентре также находится в lsyncкольце

2. Распространение видео по серверам lsyncd/rsync: 2. Распространение видео по серверам lsyncd/rsync:

2. Распространение видео по серверам lsyncd/rsync - минусы: ๏ Выпадение любого из серверов ведет 2. Распространение видео по серверам lsyncd/rsync - минусы: ๏ Выпадение любого из серверов ведет к разрушению кольца в данном датацентре и, в перспективе – к нарушению распространения видео в целом ๏ С ростом числа серверов замедляется скорость распространения контента (распространение идет последовательно)

2. Распространение видео по серверам торренты - софт: ๏ трекер – opentracker ๏ клиент 2. Распространение видео по серверам торренты - софт: ๏ трекер – opentracker ๏ клиент - transmission

2. Распространение видео по серверам торренты – тестовое окружение: master – раздающий контент сервер 2. Распространение видео по серверам торренты – тестовое окружение: master – раздающий контент сервер slave 1/slave 2 – узлы CDN-а

2. Распространение видео по серверам торренты – тестирование – без трэкера: ๏ Создаем torrent-файл 2. Распространение видео по серверам торренты – тестирование – без трэкера: ๏ Создаем torrent-файл для раздачи (без торрент-трекера), размещаем на мастер-сервере transmission-create -o folder. torrent folder/ ๏ Через rsync/scp раскидываем по slave- машинам ๏ Торрент подцепляется и должна начаться загрузка

2. Распространение видео по серверам торренты – тестирование – без трэкера - результат: ๏ 2. Распространение видео по серверам торренты – тестирование – без трэкера - результат: ๏ Загрузка запустилась через 30 минут ๏ slave 1 не видел master и качал только со slave 2 ๏ Скорость нестабильна (возможно из-за ограничения)

2. Распространение видео по торренты – тестирование – без серверам трэкера – результат: синее 2. Распространение видео по торренты – тестирование – без серверам трэкера – результат: синее – master->slave 1 красное – slave 1 ->slave 2

2. Распространение видео по торренты – тестирование – с серверам трэкером: ๏ На мастере 2. Распространение видео по торренты – тестирование – с серверам трэкером: ๏ На мастере запущен opentracker, торрент создан с трэкером ๏ Через rsync/scp раскидываем торрент по slave-машинам ๏ Transmission подцепляет торрент- файл

2. Распространение видео по серверам торренты – тестирование – c трэкером - результат: ๏ 2. Распространение видео по серверам торренты – тестирование – c трэкером - результат: ๏ Загрузка запускается моментально ๏ Равномерная загрузка друг с друга ๏ Гигабайт-овый торрент роздан за 1. 5 -2 минуты

2. Распространение видео по серверам торренты – тестирование – с трэкером – результат: 2. Распространение видео по серверам торренты – тестирование – с трэкером – результат:

2. Распространение видео по серверам Главное преимущество распространения данных через торренты– добавление новых узлов 2. Распространение видео по серверам Главное преимущество распространения данных через торренты– добавление новых узлов в CDN с минимальным вмешательством в текущую структуру. Требуется только положить torrentфайл на новый сервер, и по завершению синхронизации добавить его в балансировку.

3. Раздача ๏ Высокая пропускная способность площадки (от 10 гигабит в пиках) ๏ Большое 3. Раздача ๏ Высокая пропускная способность площадки (от 10 гигабит в пиках) ๏ Большое количество (идеально безлимитное) включенного траффика ๏ Абюзоустойчивость (в легальных пределах) ๏ Техническая устойчивость

3. Раздача Технические требования к площадке ๏ Высокая пропускная способность площадки (площадок) ๏ Способность 3. Раздача Технические требования к площадке ๏ Высокая пропускная способность площадки (площадок) ๏ Способность нарастить мощности (и в долгосрочном и в краткосрочном периоде) ๏ Недорогой траффик, недорогое железо ๏ Небольшой пинг

3. Раздача Abuse-риски при выборе площадки: ๏ Короткое время на ответ на жалобу (или 3. Раздача Abuse-риски при выборе площадки: ๏ Короткое время на ответ на жалобу (или вообще его отсутствие) ๏ Слабое информирование ๏ Отказ детального рассмотрения жалобы

3. Раздача Технические риски: ๏ Слабая техническая поддержка, долгое время реакции ๏ Небольшой штат 3. Раздача Технические риски: ๏ Слабая техническая поддержка, долгое время реакции ๏ Небольшой штат ๏ «Реселлинговые» контракты, которые могут быть разорваны ๏ Небольшое количество каналов, возможно глобальное падение всего ДЦ.

3. Раздача Выбранные площадки: ๏ Softlayer как «домашняя» площадка для управления, транскодинга, dns и 3. Раздача Выбранные площадки: ๏ Softlayer как «домашняя» площадка для управления, транскодинга, dns и вспомогательных служб. ๏ CDN/streaming площадки: 100 tb-london, 100 tb-softlayer, +еще один дц.

3. Раздача Выбранные площадки: ๏ Softlayer – очень дорогой траффик. ๏ Остальные – могут 3. Раздача Выбранные площадки: ๏ Softlayer – очень дорогой траффик. ๏ Остальные – могут упасть. ๏ Решение: способность быстро балансироваться без Single Point of Failure.

3. Раздача Балансировка: ๏ Железо? ๏ Софт? ๏ DNS? 3. Раздача Балансировка: ๏ Железо? ๏ Софт? ๏ DNS?

3. Раздача Балансировка – железо: ๏ Минимум три устройства ๏ Дорого ๏ Авария на 3. Раздача Балансировка – железо: ๏ Минимум три устройства ๏ Дорого ๏ Авария на устройстве = аварии в ДЦ

3. Раздача Балансировка – software-proxy: ๏ Порт на сервере должен равняться сумме всех портов 3. Раздача Балансировка – software-proxy: ๏ Порт на сервере должен равняться сумме всех портов бэкэндов ๏ Single Point of Failure

3. Раздача Балансировка – DNS round robin: ๏ Легкое добавление новых машин ๏ Отсутствие 3. Раздача Балансировка – DNS round robin: ๏ Легкое добавление новых машин ๏ Отсутствие single point of failure (при надежном DNS-хостинге) ๏ Относительно легкое «изъятие» упавших серверов

3. Раздача Балансировка – DNS round robin: Проблема: на время загрузки одного файла домен 3. Раздача Балансировка – DNS round robin: Проблема: на время загрузки одного файла домен будет уже зарезолвлен юзером. ๏ Не страшно если сервер/софт упал (юзер обновится/сдвинет позицию на видео) ๏ Очень долго если нужно вывести сервер для проведения технических мероприятий

3. Раздача Балансировка – DNS round robin: Проблема: на время загрузки одного файла домен 3. Раздача Балансировка – DNS round robin: Проблема: на время загрузки одного файла домен будет уже зарезолвлен юзером.

3. Раздача Балансировка – TODO Балансировка на уровне плеера: список доступных серверов получаемый плеером 3. Раздача Балансировка – TODO Балансировка на уровне плеера: список доступных серверов получаемый плеером из нескольких узловых точек.

4. Поддержка ๏ Серверный мониторинг ๏ Мониторинг последней мили ๏ Масштабирование при пиковых нагрузках 4. Поддержка ๏ Серверный мониторинг ๏ Мониторинг последней мили ๏ Масштабирование при пиковых нагрузках

4. Поддержка Серверный мониторинг Кроме типичных задач – контроль скорости на портах и контроль 4. Поддержка Серверный мониторинг Кроме типичных задач – контроль скорости на портах и контроль используемого траффика в ДЦ. ๏ Интеграция с панелями хостинг- провайдеров через API или через граббер ๏ Алерты на достижение критических величин (70% от месячного лимита на траффик) ๏ Перебалансировка/докупка серверов

4. Поддержка Мониторинг последней мили - проблема: ๏ Проблемы на магистральных каналах сильно бьют 4. Поддержка Мониторинг последней мили - проблема: ๏ Проблемы на магистральных каналах сильно бьют по пользователю – видео начинает дергаться, либо вообще останавливаться ๏ Недовольные люди идут в комментарии ๏ Чаще всего – проблема с одним из ДЦ а не со всеми

4. Поддержка Мониторинг последней мили: ๏ В новой системе статистики – плеер отсылает события 4. Поддержка Мониторинг последней мили: ๏ В новой системе статистики – плеер отсылает события загрузки плеера и событие запуска видео/догрузок видео, информацию о лагах ๏ Данные агрегируются по регионам. ๏ Сейчас – собираем статистику

4. Поддержка TODO – масштабирование CDN: ๏ Ждем смены системы раздачи с lsyncd на 4. Поддержка TODO – масштабирование CDN: ๏ Ждем смены системы раздачи с lsyncd на торренты ๏ После этого – создание инстансов в AWS из шаблона с торрент-клиентом и автоматическое добавление запущенных и загрузивших данные peer-ов в DNS

Евгений Потапов http: //itsumma. ru eapotapov@itsumma. ru http: //twitter. com/eapotapov Евгений Потапов http: //itsumma. ru [email protected] ru http: //twitter. com/eapotapov