SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Надежная видео- (и не
только) раздача
минимальными
средствами
Евгений Потапов
Евгений Потапов
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@itsumma.ru
@eapotapov

Weitere ähnliche Inhalte

Was ist angesagt?

VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?
Anton Zhbankov
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Ontico
 
Cdn hosting решения для drupal (medium)
Cdn hosting   решения для drupal (medium)Cdn hosting   решения для drupal (medium)
Cdn hosting решения для drupal (medium)
DrupalCamp Kyiv Рысь
 
Отказоустойчивость и производительность
Отказоустойчивость и производительностьОтказоустойчивость и производительность
Отказоустойчивость и производительность
OpenStackRU
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
AvitoTech
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
AvitoTech
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
Andrey Rebrov
 

Was ist angesagt? (20)

Cautious: IPv6 is here / Александр Азимов (Qrator Labs)
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)Cautious: IPv6 is here / Александр Азимов (Qrator Labs)
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)
 
VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014
 
Cdn hosting решения для drupal (medium)
Cdn hosting   решения для drupal (medium)Cdn hosting   решения для drupal (medium)
Cdn hosting решения для drupal (medium)
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
Отказоустойчивость и производительность
Отказоустойчивость и производительностьОтказоустойчивость и производительность
Отказоустойчивость и производительность
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
 
Модификации KVM для работы в кластере, Андрей Шетухин
Модификации KVM для работы в кластере, Андрей ШетухинМодификации KVM для работы в кластере, Андрей Шетухин
Модификации KVM для работы в кластере, Андрей Шетухин
 
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 

Andere mochten auch

Reading comprehensión power tools(1) jaz
Reading comprehensión power tools(1) jazReading comprehensión power tools(1) jaz
Reading comprehensión power tools(1) jaz
jmspiri
 
Dinner lab presentation- The next Training and Expansion Manager
Dinner lab presentation- The next Training and Expansion ManagerDinner lab presentation- The next Training and Expansion Manager
Dinner lab presentation- The next Training and Expansion Manager
juliacampbell01
 
Cuadro comparativo DACUM, AMOD, SCID. paula prado
Cuadro comparativo DACUM, AMOD, SCID. paula pradoCuadro comparativo DACUM, AMOD, SCID. paula prado
Cuadro comparativo DACUM, AMOD, SCID. paula prado
Paula Prado
 
Habitat 5krun flyer 2015
Habitat 5krun flyer 2015Habitat 5krun flyer 2015
Habitat 5krun flyer 2015
Jason Wilans
 
La antorcha olímpica ya está en la estación
La antorcha olímpica ya está en la estaciónLa antorcha olímpica ya está en la estación
La antorcha olímpica ya está en la estación
Bryan Coca
 
ARCA_LearningSolutions_A4_2015
ARCA_LearningSolutions_A4_2015ARCA_LearningSolutions_A4_2015
ARCA_LearningSolutions_A4_2015
Julianne Henry
 

Andere mochten auch (20)

Teoria y jurisprudencia_del_derecho_procesal_constitucional
Teoria y jurisprudencia_del_derecho_procesal_constitucionalTeoria y jurisprudencia_del_derecho_procesal_constitucional
Teoria y jurisprudencia_del_derecho_procesal_constitucional
 
Reading comprehensión power tools(1) jaz
Reading comprehensión power tools(1) jazReading comprehensión power tools(1) jaz
Reading comprehensión power tools(1) jaz
 
Dinner lab presentation- The next Training and Expansion Manager
Dinner lab presentation- The next Training and Expansion ManagerDinner lab presentation- The next Training and Expansion Manager
Dinner lab presentation- The next Training and Expansion Manager
 
"MAGNET"
"MAGNET""MAGNET"
"MAGNET"
 
Cuadro comparativo DACUM, AMOD, SCID. paula prado
Cuadro comparativo DACUM, AMOD, SCID. paula pradoCuadro comparativo DACUM, AMOD, SCID. paula prado
Cuadro comparativo DACUM, AMOD, SCID. paula prado
 
Fiscalia pichincha conferencia galapagos
Fiscalia pichincha conferencia galapagosFiscalia pichincha conferencia galapagos
Fiscalia pichincha conferencia galapagos
 
And the-textbook-is-free
And the-textbook-is-freeAnd the-textbook-is-free
And the-textbook-is-free
 
Habitat 5krun flyer 2015
Habitat 5krun flyer 2015Habitat 5krun flyer 2015
Habitat 5krun flyer 2015
 
Unang Yugto ng Kolonyalismo sa timog at Kanlurang Asya
Unang Yugto ng Kolonyalismo sa timog at Kanlurang AsyaUnang Yugto ng Kolonyalismo sa timog at Kanlurang Asya
Unang Yugto ng Kolonyalismo sa timog at Kanlurang Asya
 
Herramientas web 2.0
Herramientas web 2.0Herramientas web 2.0
Herramientas web 2.0
 
Preguntas video
Preguntas videoPreguntas video
Preguntas video
 
Presentación2
Presentación2Presentación2
Presentación2
 
Proyecto multidisciplinario
Proyecto multidisciplinarioProyecto multidisciplinario
Proyecto multidisciplinario
 
La antorcha olímpica ya está en la estación
La antorcha olímpica ya está en la estaciónLa antorcha olímpica ya está en la estación
La antorcha olímpica ya está en la estación
 
Norway Pelagic
Norway PelagicNorway Pelagic
Norway Pelagic
 
ARCA_LearningSolutions_A4_2015
ARCA_LearningSolutions_A4_2015ARCA_LearningSolutions_A4_2015
ARCA_LearningSolutions_A4_2015
 
Presentación1
Presentación1Presentación1
Presentación1
 
Aprendizaje autónomo
Aprendizaje autónomoAprendizaje autónomo
Aprendizaje autónomo
 
Ecuador.derechos de la naturaleza
Ecuador.derechos de la naturalezaEcuador.derechos de la naturaleza
Ecuador.derechos de la naturaleza
 
Mapas mentais rubens
Mapas mentais rubensMapas mentais rubens
Mapas mentais rubens
 

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

Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
odnoklassniki.ru
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
Vadim Madison
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Sergey Xek
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
Max Lapshin
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
Badoo Development
 
CDNvideo: бесперебойные онлайн-трансляции
CDNvideo: бесперебойные онлайн-трансляцииCDNvideo: бесперебойные онлайн-трансляции
CDNvideo: бесперебойные онлайн-трансляции
Dmitry Glavatskiy
 
Макс Лапшин Erlyvideo
Макс Лапшин   ErlyvideoМакс Лапшин   Erlyvideo
Макс Лапшин Erlyvideo
Siel01
 

Ähnlich wie Евгений Потапов, АйТиСумма (20)

Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
 
A popular DNS security overview
A popular DNS security overviewA popular DNS security overview
A popular DNS security overview
 
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
 
CDNvideo: бесперебойные онлайн-трансляции
CDNvideo: бесперебойные онлайн-трансляцииCDNvideo: бесперебойные онлайн-трансляции
CDNvideo: бесперебойные онлайн-трансляции
 
Макс Лапшин Erlyvideo
Макс Лапшин   ErlyvideoМакс Лапшин   Erlyvideo
Макс Лапшин Erlyvideo
 
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
 
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
 
Fiddler
FiddlerFiddler
Fiddler
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debugging
 

Mehr von Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Mehr von Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

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

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