Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

806 views

Published on

HighLoad++ 2013

  • Be the first to comment

  • Be the first to like this

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

  1. 1. Надежная видео- (и не только) раздача минимальными средствами Евгений Потапов
  2. 2. Евгений Потапов 10 лет опыта веб-разработки 4 года опыта использования облачных технологий генеральный директор компании «Сумма АйТи»
  3. 3. Disclaimer • Мы не занимаемся видео-бизнесом – сайд-проект  • Речь может идти и не только про видео • Мы не особо ориентируемся на географию пользователя – но пока все довольны • Речь не идет о видео-стримминге
  4. 4. Поддержка высоконагруженных веб-сайтов 140 миллионов уникальных посетителей в сутки Более тысячи серверов на поддержке
  5. 5. производство и дистрибуция развлекательного видео контента. Для интернета и ТВ. 120 000 уникальных посетителей на сайте CarambaTV.ru в сутки 18-20 миллионов просмотров видео на собственном плеере в месяц
  6. 6. Цели своего видео-CDN • Прозрачность надежности раздачи видео • Возможность выбора видеоформатов • Гибкость доработки плеера и аналитики • Прозрачность и контроль расходов
  7. 7. Содержание • Транскодинг • Распределение видео по серверам • Раздача видео пользователям • Поддержка
  8. 8. 1. Транскодинг • Админ-панель • Служба очередей (принимает запросы от админ-панели) • Транскодеры (получают задания из очереди) • Таймер (оценивает общее время процессинга) • AWS-клиент – докупает транскодеры
  9. 9. 1. Транскодинг – до масштабирования
  10. 10. 1. Транскодинг - масштабирование
  11. 11. 1. Транскодинг – реальная жизнь • Не было ни одного случая когда потребовалось бы масштабирование транскодеров • Чаще всего в процессинге одновременно вообще находится только один файл
  12. 12. Распространение видео по серверам • lsync/rsync • TODO: торренты
  13. 13. 2. Распространение видео по серверам lsync/rsync •Транскодированное видео загружается на один из случайно выбранных серверов CDN •Серверы находятся в кольце lsync-синхронизаций в пределах одного датацентра •По одному из серверов в каждом датацентре также находится в lsync-кольце
  14. 14. 2. Распространение видео по серверам lsync/rsync
  15. 15. 2. Распространение видео по серверам lsyncd/rsync - минусы: •Выпадение любого из серверов ведет к разрушению кольца в данном датацентре и, в перспективе – к нарушению распространения видео в целом •С ростом числа серверов замедляется скорость распространения контента (распространение идет последовательно)
  16. 16. 2. Распространение видео по серверам торренты - софт: •трекер – opentracker •клиент - transmission
  17. 17. 2. Распространение видео по серверам торренты – тестирование – без трэкера: •Создаем torrent-файл для раздачи (без торрент-трекера), размещаем на мастер-сервере •Через rsync/scp раскидываем по slave-машинам •Торрент подцепляется и должна начаться загрузка
  18. 18. 2. Распространение видео по серверам торренты – тестирование – без трэкера – результат: синее – master->slave1 красное – slave1->slave2
  19. 19. 2. Распространение видео по серверам торренты – тестирование – с трэкером: •На мастере запущен opentracker, торрент создан с трэкером •Через rsync/scp раскидываем торрент по slave-машинам •Transmission подцепляет торрент-файл
  20. 20. 2. Распространение видео по серверам торренты – тестирование – c трэкером - результат: •Загрузка запускается моментально •Равномерная загрузка друг с друга •Гигабайтовый торрент роздан за 1.5-2 минуты
  21. 21. 2. Распространение видео по серверам торренты – тестирование – c трэкером - результат:
  22. 22. 2. Распространение видео по серверам Главное преимущество распространения данных через торренты– добавление новых узлов в CDN с минимальным вмешательством в текущую структуру. Требуется только положить torrent-файл на новый сервер, и по завершению синхронизации добавить его в балансировку.
  23. 23. 3. Раздача • Высокая пропускная способность площадки (от 10 гигабит в пиках) • Большое количество (идеально безлимитное) включенного траффика • Абюзоустойчивость (в легальных пределах) • Техническая устойчивость
  24. 24. 3. Раздача Технические требования к площадке: •Высокая пропускная способность площадки (площадок) •Способность нарастить мощности (и в долгосрочном и в краткосрочном периоде) •Дешевый траффик, недорогое железо •Небольшой пинг
  25. 25. 3. Раздача Abuse-риски при выборе площадки: •Короткое время дается на то чтобы ответить на жалобу (или времени вообще не дают) •Слабое информирование •Отказ от детального рассмотрения жалобы
  26. 26. 3. Раздача Технические риски: •Слабая техническая поддержка, долгое время реакции •Небольшой штат •«Реселлинговые» контракты, которые могут быть разорваны •Небольшое количество каналов, возможно глобальное падение всего ДЦ.
  27. 27. 3. Раздача Выбранные площадки: •Softlayer как «домашняя» площадка для управления, транскодинга, dns и вспомогательных служб. •CDN/streaming площадки: 100tb-london, 100tb-softlayer, +еще один дц.
  28. 28. 3. Раздача Выбранные площадки: •Softlayer – очень дорогой траффик. •Остальные – могут упасть. •Нужно: способность быстро балансироваться без Single Point of Failure.
  29. 29. 3. Раздача Балансировка: •Софт? •Железо? •DNS?
  30. 30. 3. Раздача Балансировка - железо: •Минимум три устройства •Дорого •Авария на устройстве = аварии в ДЦ
  31. 31. 3. Раздача Балансировка - софт: •Порт на сервере должен равняться сумме всех портов бэкэндов •Single Point of Failure
  32. 32. 3. Раздача Балансировка – DNS round robin: •Легкое добавление новых машин •Отсутствие single point of failure (при надежном DNS-хостинге) •Относительно легкое «изъятие» упавших серверов
  33. 33. 3. Раздача Балансировка – DNS round robin: Проблема: на время загрузки одного файла домен будет уже сохранен в DNS-кэше юзера •Не страшно если сервер/софт упал (юзер обновится/сдвинет позицию на видео) •Очень долго если нужно вывести сервер для проведения технических мероприятий
  34. 34. 3. Раздача Балансировка – DNS round robin: Проблема: на время загрузки одного файла домен будет уже сохранен в DNS-кэше юзера
  35. 35. 3. Раздача Балансировка – TODO: Балансировка на уровне плеера: список доступных серверов получаемый плеером из нескольких узловых точек.
  36. 36. 4. Поддержка • Серверный мониторинг • Мониторинг последней мили • Масштабирование при пиковых нагрузках
  37. 37. 4. Поддержка Серверный мониторинг Кроме типичных задач – контроль скорости на портах и контроль используемого траффика в ДЦ •Интеграция с панелями хостинг-провайдеров через API или через граббер •Алерты на достижение критических величин объемов траффик (70% от месячного лимита на траффик) и аномальное поведение сервера по сравнению с пулом •Перебалансировка/докупка серверов
  38. 38. 4. Поддержка Мониторинг на «последней мили» - TODO: •Мониторинг и отсылка на стороне плеера соотношения времени проигрывания к системному времени •Агрегация на стороне сервера данных по регионам •Вывод из балансировки проблемных магистралей •Прозрачность жалоб пользователей
  39. 39. Евгений Потапов http://itsumma.ru eapotapov@itsumma.ru @eapotapov

×