39
Надежная видео- (и не только) раздача минимальными средствами Евгений Потапов

Евгений Потапов, АйТиСумма

  • Upload
    ontico

  • View
    434

  • Download
    5

Embed Size (px)

DESCRIPTION

HighLoad++ 2013

Citation preview

Page 1: Евгений Потапов, АйТиСумма

Надежная видео- (и не только) раздача минимальными

средствами

Евгений Потапов

Page 2: Евгений Потапов, АйТиСумма

Евгений Потапов 10 лет опыта веб-разработки

4 года опыта использования облачных технологий

генеральный директор компании «Сумма АйТи»

Page 3: Евгений Потапов, АйТиСумма

Disclaimer

• Мы не занимаемся видео-бизнесом – сайд-проект

• Речь может идти и не только про видео

• Мы не особо ориентируемся на географию пользователя – но пока

все довольны

• Речь не идет о видео-стримминге

Page 4: Евгений Потапов, АйТиСумма

Поддержка высоконагруженных веб-сайтов

140 миллионов уникальных посетителей в сутки

Более тысячи серверов на поддержке

Page 5: Евгений Потапов, АйТиСумма

производство и дистрибуция развлекательного видео контента. Для интернета и ТВ.

120 000 уникальных посетителей на сайте CarambaTV.ru в сутки

18-20 миллионов просмотров видео на собственном плеере в месяц

Page 6: Евгений Потапов, АйТиСумма

Цели своего видео-CDN

• Прозрачность надежности раздачи видео

• Возможность выбора видеоформатов

• Гибкость доработки плеера и аналитики

• Прозрачность и контроль расходов

Page 7: Евгений Потапов, АйТиСумма

Содержание

• Транскодинг

• Распределение видео по серверам

• Раздача видео пользователям

• Поддержка

Page 8: Евгений Потапов, АйТиСумма

1. Транскодинг

• Админ-панель

• Служба очередей (принимает запросы от админ-панели)

• Транскодеры (получают задания из очереди)

• Таймер (оценивает общее время процессинга)

• AWS-клиент – докупает транскодеры

Page 9: Евгений Потапов, АйТиСумма

1. Транскодинг – до масштабирования

Page 10: Евгений Потапов, АйТиСумма

1. Транскодинг - масштабирование

Page 11: Евгений Потапов, АйТиСумма

1. Транскодинг – реальная жизнь

• Не было ни одного случая когда потребовалось бы масштабирование транскодеров

• Чаще всего в процессинге одновременно вообще находится только один файл

Page 12: Евгений Потапов, АйТиСумма

Распространение видео по серверам

• lsync/rsync

• TODO: торренты

Page 13: Евгений Потапов, АйТиСумма

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

•Транскодированное видео загружается на один из случайно выбранных серверов CDN

•Серверы находятся в кольце lsync-синхронизаций в пределах одного датацентра

•По одному из серверов в каждом датацентре также находится в lsync-кольце

Page 14: Евгений Потапов, АйТиСумма

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

Page 15: Евгений Потапов, АйТиСумма

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

•Выпадение любого из серверов ведет к разрушению кольца в данном датацентре и, в перспективе – к нарушению распространения видео в целом

•С ростом числа серверов замедляется скорость распространения контента (распространение идет последовательно)

Page 16: Евгений Потапов, АйТиСумма

2. Распространение видео по серверам торренты - софт:

•трекер – opentracker

•клиент - transmission

Page 17: Евгений Потапов, АйТиСумма

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

•Создаем torrent-файл для раздачи (без торрент-трекера), размещаем на мастер-сервере

•Через rsync/scp раскидываем по slave-машинам

•Торрент подцепляется и должна начаться загрузка

Page 18: Евгений Потапов, АйТиСумма

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

Page 19: Евгений Потапов, АйТиСумма

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

•На мастере запущен opentracker, торрент создан с трэкером

•Через rsync/scp раскидываем торрент по slave-машинам

•Transmission подцепляет торрент-файл

Page 20: Евгений Потапов, АйТиСумма

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

•Загрузка запускается моментально

•Равномерная загрузка друг с друга

•Гигабайтовый торрент роздан за 1.5-2 минуты

Page 21: Евгений Потапов, АйТиСумма

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

Page 22: Евгений Потапов, АйТиСумма

2. Распространение видео по серверам Главное преимущество распространения данных через торренты– добавление новых узлов в CDN с минимальным вмешательством в текущую структуру.

Требуется только положить torrent-файл на новый сервер, и по завершению синхронизации добавить его в балансировку.

Page 23: Евгений Потапов, АйТиСумма

3. Раздача

• Высокая пропускная способность площадки (от 10 гигабит в пиках)

• Большое количество (идеально безлимитное) включенного траффика

• Абюзоустойчивость (в легальных пределах)

• Техническая устойчивость

Page 24: Евгений Потапов, АйТиСумма

3. Раздача

Технические требования к площадке:

•Высокая пропускная способность площадки (площадок)

•Способность нарастить мощности (и в долгосрочном и в краткосрочном периоде)

•Дешевый траффик, недорогое железо

•Небольшой пинг

Page 25: Евгений Потапов, АйТиСумма

3. Раздача

Abuse-риски при выборе площадки:

•Короткое время дается на то чтобы ответить на жалобу (или времени вообще не дают)

•Слабое информирование

•Отказ от детального рассмотрения жалобы

Page 26: Евгений Потапов, АйТиСумма

3. Раздача

Технические риски:

•Слабая техническая поддержка, долгое время реакции

•Небольшой штат

•«Реселлинговые» контракты, которые могут быть разорваны

•Небольшое количество каналов, возможно глобальное падение всего ДЦ.

Page 27: Евгений Потапов, АйТиСумма

3. Раздача

Выбранные площадки:

•Softlayer как «домашняя» площадка для управления, транскодинга, dns и вспомогательных служб.

•CDN/streaming площадки: 100tb-london, 100tb-softlayer, +еще один дц.

Page 28: Евгений Потапов, АйТиСумма

3. Раздача

Выбранные площадки:

•Softlayer – очень дорогой траффик.

•Остальные – могут упасть.

•Нужно: способность быстро балансироваться без Single Point of Failure.

Page 29: Евгений Потапов, АйТиСумма

3. Раздача

Балансировка:

•Софт?

•Железо?

•DNS?

Page 30: Евгений Потапов, АйТиСумма

3. Раздача

Балансировка - железо:

•Минимум три устройства

•Дорого

•Авария на устройстве = аварии в ДЦ

Page 31: Евгений Потапов, АйТиСумма

3. Раздача

Балансировка - софт:

•Порт на сервере должен равняться сумме всех портов бэкэндов

•Single Point of Failure

Page 32: Евгений Потапов, АйТиСумма

3. Раздача

Балансировка – DNS round robin:

•Легкое добавление новых машин

•Отсутствие single point of failure (при надежном DNS-хостинге)

•Относительно легкое «изъятие» упавших серверов

Page 33: Евгений Потапов, АйТиСумма

3. Раздача

Балансировка – DNS round robin:

Проблема: на время загрузки одного файла домен будет уже сохранен в DNS-кэше юзера

•Не страшно если сервер/софт упал (юзер обновится/сдвинет позицию на видео)

•Очень долго если нужно вывести сервер для проведения технических мероприятий

Page 34: Евгений Потапов, АйТиСумма

3. Раздача

Балансировка – DNS round robin:

Проблема: на время загрузки одного файла домен будет уже сохранен в DNS-кэше юзера

Page 35: Евгений Потапов, АйТиСумма

3. Раздача

Балансировка – TODO:

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

Page 36: Евгений Потапов, АйТиСумма

4. Поддержка

• Серверный мониторинг

• Мониторинг последней мили

• Масштабирование при пиковых нагрузках

Page 37: Евгений Потапов, АйТиСумма

4. Поддержка

Серверный мониторинг

Кроме типичных задач – контроль скорости на портах и контроль используемого траффика в ДЦ

•Интеграция с панелями хостинг-провайдеров через API или через граббер

•Алерты на достижение критических величин объемов траффик (70% от месячного лимита на траффик) и аномальное поведение сервера по сравнению с пулом

•Перебалансировка/докупка серверов

Page 38: Евгений Потапов, АйТиСумма

4. Поддержка

Мониторинг на «последней мили» - TODO:

•Мониторинг и отсылка на стороне плеера соотношения времени проигрывания к системному времени

•Агрегация на стороне сервера данных по регионам

•Вывод из балансировки проблемных магистралей

•Прозрачность жалоб пользователей

Page 39: Евгений Потапов, АйТиСумма

Евгений Потапов http://itsumma.ru

[email protected]

@eapotapov