Upload
ontico
View
434
Download
5
Embed Size (px)
DESCRIPTION
HighLoad++ 2013
Citation preview
Надежная видео- (и не только) раздача минимальными
средствами
Евгений Потапов
Евгений Потапов 10 лет опыта веб-разработки
4 года опыта использования облачных технологий
генеральный директор компании «Сумма АйТи»
Disclaimer
• Мы не занимаемся видео-бизнесом – сайд-проект
• Речь может идти и не только про видео
• Мы не особо ориентируемся на географию пользователя – но пока
все довольны
• Речь не идет о видео-стримминге
Поддержка высоконагруженных веб-сайтов
140 миллионов уникальных посетителей в сутки
Более тысячи серверов на поддержке
производство и дистрибуция развлекательного видео контента. Для интернета и ТВ.
120 000 уникальных посетителей на сайте CarambaTV.ru в сутки
18-20 миллионов просмотров видео на собственном плеере в месяц
Цели своего видео-CDN
• Прозрачность надежности раздачи видео
• Возможность выбора видеоформатов
• Гибкость доработки плеера и аналитики
• Прозрачность и контроль расходов
Содержание
• Транскодинг
• Распределение видео по серверам
• Раздача видео пользователям
• Поддержка
1. Транскодинг
• Админ-панель
• Служба очередей (принимает запросы от админ-панели)
• Транскодеры (получают задания из очереди)
• Таймер (оценивает общее время процессинга)
• AWS-клиент – докупает транскодеры
1. Транскодинг – до масштабирования
1. Транскодинг - масштабирование
1. Транскодинг – реальная жизнь
• Не было ни одного случая когда потребовалось бы масштабирование транскодеров
• Чаще всего в процессинге одновременно вообще находится только один файл
Распространение видео по серверам
• lsync/rsync
• TODO: торренты
2. Распространение видео по серверам lsync/rsync
•Транскодированное видео загружается на один из случайно выбранных серверов CDN
•Серверы находятся в кольце lsync-синхронизаций в пределах одного датацентра
•По одному из серверов в каждом датацентре также находится в lsync-кольце
2. Распространение видео по серверам lsync/rsync
2. Распространение видео по серверам lsyncd/rsync - минусы:
•Выпадение любого из серверов ведет к разрушению кольца в данном датацентре и, в перспективе – к нарушению распространения видео в целом
•С ростом числа серверов замедляется скорость распространения контента (распространение идет последовательно)
2. Распространение видео по серверам торренты - софт:
•трекер – opentracker
•клиент - transmission
2. Распространение видео по серверам торренты – тестирование – без трэкера:
•Создаем torrent-файл для раздачи (без торрент-трекера), размещаем на мастер-сервере
•Через rsync/scp раскидываем по slave-машинам
•Торрент подцепляется и должна начаться загрузка
2. Распространение видео по серверам торренты – тестирование – без трэкера – результат: синее – master->slave1 красное – slave1->slave2
2. Распространение видео по серверам торренты – тестирование – с трэкером:
•На мастере запущен opentracker, торрент создан с трэкером
•Через rsync/scp раскидываем торрент по slave-машинам
•Transmission подцепляет торрент-файл
2. Распространение видео по серверам торренты – тестирование – c трэкером - результат:
•Загрузка запускается моментально
•Равномерная загрузка друг с друга
•Гигабайтовый торрент роздан за 1.5-2 минуты
2. Распространение видео по серверам торренты – тестирование – c трэкером - результат:
2. Распространение видео по серверам Главное преимущество распространения данных через торренты– добавление новых узлов в CDN с минимальным вмешательством в текущую структуру.
Требуется только положить torrent-файл на новый сервер, и по завершению синхронизации добавить его в балансировку.
3. Раздача
• Высокая пропускная способность площадки (от 10 гигабит в пиках)
• Большое количество (идеально безлимитное) включенного траффика
• Абюзоустойчивость (в легальных пределах)
• Техническая устойчивость
3. Раздача
Технические требования к площадке:
•Высокая пропускная способность площадки (площадок)
•Способность нарастить мощности (и в долгосрочном и в краткосрочном периоде)
•Дешевый траффик, недорогое железо
•Небольшой пинг
3. Раздача
Abuse-риски при выборе площадки:
•Короткое время дается на то чтобы ответить на жалобу (или времени вообще не дают)
•Слабое информирование
•Отказ от детального рассмотрения жалобы
3. Раздача
Технические риски:
•Слабая техническая поддержка, долгое время реакции
•Небольшой штат
•«Реселлинговые» контракты, которые могут быть разорваны
•Небольшое количество каналов, возможно глобальное падение всего ДЦ.
3. Раздача
Выбранные площадки:
•Softlayer как «домашняя» площадка для управления, транскодинга, dns и вспомогательных служб.
•CDN/streaming площадки: 100tb-london, 100tb-softlayer, +еще один дц.
3. Раздача
Выбранные площадки:
•Softlayer – очень дорогой траффик.
•Остальные – могут упасть.
•Нужно: способность быстро балансироваться без Single Point of Failure.
3. Раздача
Балансировка:
•Софт?
•Железо?
•DNS?
3. Раздача
Балансировка - железо:
•Минимум три устройства
•Дорого
•Авария на устройстве = аварии в ДЦ
3. Раздача
Балансировка - софт:
•Порт на сервере должен равняться сумме всех портов бэкэндов
•Single Point of Failure
3. Раздача
Балансировка – DNS round robin:
•Легкое добавление новых машин
•Отсутствие single point of failure (при надежном DNS-хостинге)
•Относительно легкое «изъятие» упавших серверов
3. Раздача
Балансировка – DNS round robin:
Проблема: на время загрузки одного файла домен будет уже сохранен в DNS-кэше юзера
•Не страшно если сервер/софт упал (юзер обновится/сдвинет позицию на видео)
•Очень долго если нужно вывести сервер для проведения технических мероприятий
3. Раздача
Балансировка – DNS round robin:
Проблема: на время загрузки одного файла домен будет уже сохранен в DNS-кэше юзера
3. Раздача
Балансировка – TODO:
Балансировка на уровне плеера: список доступных серверов получаемый плеером из нескольких узловых точек.
4. Поддержка
• Серверный мониторинг
• Мониторинг последней мили
• Масштабирование при пиковых нагрузках
4. Поддержка
Серверный мониторинг
Кроме типичных задач – контроль скорости на портах и контроль используемого траффика в ДЦ
•Интеграция с панелями хостинг-провайдеров через API или через граббер
•Алерты на достижение критических величин объемов траффик (70% от месячного лимита на траффик) и аномальное поведение сервера по сравнению с пулом
•Перебалансировка/докупка серверов
4. Поддержка
Мониторинг на «последней мили» - TODO:
•Мониторинг и отсылка на стороне плеера соотношения времени проигрывания к системному времени
•Агрегация на стороне сервера данных по регионам
•Вывод из балансировки проблемных магистралей
•Прозрачность жалоб пользователей
Евгений Потапов http://itsumma.ru
@eapotapov