20
Архитектура Видеохостинга От простого www.jatv.by К сложному

video hostings architecture

Embed Size (px)

Citation preview

Page 1: video hostings architecture

АрхитектураВидеохостинга

От простого

www.jatv.by

К сложному

Page 2: video hostings architecture

Скорость подключения к интернет растет не по дням а по часам

www.jatv.by

Европа - 5,6 MbsСеверная Америка - 5,53 MbsАвстралия - 4,42 MbsАзия - 3,69 MbsЮжная Америка - 1,64 Mbs Африка - 1,03 Mbs

Белорусь - 1.8 Mbs (ByFly 1.6-2.0)Гомельская область 2.06 MbsМинск 2.01 MbsГродненская область 1.25 MbsВитебская область 1.03 MbsМогилевская область 0.8Mbs

По данным speedtest.net

Page 3: video hostings architecture

Новые цифровые форматы все быстрее входят в нашу жизнь

www.jatv.by

Видео

на смену DVD пришел BlueRayпрыжек от 720x576 до FullHD 1920x1080

Аудио на смену CD пришел multichannel DTS MA + DolbyTrueHD44,1KHz 16bit - 96KHz 24bit

Page 4: video hostings architecture

Строим видеоресурс за 5 минут

www.jatv.by

Основные функциональные модули

Front-end – взаимодействоие с пользовтелемBack-end – обработка информацииПроигрыватель – воспроизведение медиаконтентаТранскодер – конвертацияХранилище – хранение и доставка контента

Page 5: video hostings architecture

Front-end Back-end

www.jatv.by

ПлатформаPHP Ruby, Pyton, Java, .Net

Технологии и концепцииЮзабилитиWeb 2.0AJAXТесная интеграция Fron-end и Back-endВнедрение новых медиа форматов (многоканальный звук)Загрузка больших файлов (от 1Гб)

Воспроизведение видеоAdobe FlashMicrosoft Silverlight

Page 6: video hostings architecture

Медиа проигрыватель

www.jatv.by

Воспроизведение видео файловПоддержка списков воспроизведенияПоддержка модулей расширенияВнешнее API позволяющее работать с плеером

JW FLV Media Player - longtailvideo.comFlowplayer - flowplayer.org

Page 7: video hostings architecture

Транскодер

www.jatv.by

Контейнер != Формат Контейнер позволяет объединять различные мультимедийные потоки (в большинстве случаев аудио и видео) в один файл.

Большое количество контейнеров TS (transport stream), AVI, MP4, OGM, Windows MediaMatroska - самый прогрессивный контейнер

Большое количество кодеков (более 100)DivX, Xvid, Realmedia, WMV, Mpeg-2H.264, MPEG-4 Part 10 или AVC - самый перспективный кодек

Page 8: video hostings architecture

Выбор кодека для видеохостинга

www.jatv.by

SilverlightWMVH.264

Adobe FlashFlash videoH.264

Хоть здесь не налажали ;-) оба конкурента поддерживают H264

H264 - промышленный стандарт

Используется в цифровом телевидении высокого разрешения (HDTV) и как основной кодек для видеозаписей Министерством обороны США, компанией Apple и во многих других областях цифрового видео.

Page 9: video hostings architecture

Самое дорогое - это время

www.jatv.by

99,8% времени тратится на преобразование исходного материала в формат понятный браузеру

Способы кодирования

Большая и жирная машина - много CPU (ядер) - очень дорого

Распределенная конвертация - много слабых машин вполне приемлемо

Использование GPU для тяжелых просчетовнет открытого кодека, последний писк моды ;-)

Page 10: video hostings architecture

Хранилище 1=3

www.jatv.by

Храним все видео на HDD (RAID)•стандартная файловая система (много файлов - много проблем)•ограничение по объему•довольно ненадежно и дорого•трудно масшабируется

Внешние хранилища

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

•очень тяжело масшабируется

Распределенные файловые системы (DFS)•дешево•надежно•хорошо масшабируется

Page 11: video hostings architecture

Запуск или хороший Индеец мертвый индеец...

www.jatv.by

Nginx - http сервер нового поколения

•легкий•быстрый•множество модулей (наличие модулей для псевдо стриминга FLV и H.264/AVC)

• PHP-FPM•плавный рестарт php без потери запросов, в том числе при обновлении php binary или extensions •запуск php workers с разными uid/gid/chroot/environment •все настройки в одном conf файле • real-time статистика исполнения php запросов

Трансокдер •FFmpeg — это набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровое аудио и видео в различных форматах.

База данных•MySQL•PostgreSQL•MsSQL - это что бы не забывать про Микрософт ;-)

Page 12: video hostings architecture

Начало…

www.jatv.by

Простая архитектураНизкий уровень кода Приложения не дублируютсяБорьба за ресурсы

Page 13: video hostings architecture

Разделяй и властвуй

www.jatv.by

•Один web сервер•Выделенный сервер для контента и конвертации

Page 14: video hostings architecture

Первая кровь

www.jatv.by

•Пара web серверов•Используется балансировщик•Выделенный сервер БД•Выделенный сервер для хранения медиа файлов•Проводится незначительный рефакторинг кода

DB

Web Web File

DB

Page 15: video hostings architecture

Зубная боль

www.jatv.by

•Используется кеширование в memcache•Процесс записи в приложениях делается медленно - репликация задерживается либо делается очень долго, начали использовать партиционирование в БД, используется множество хранилищь для контента •Тербуется существенный рефакторинг архитектуры БД

DB

Web File

DB

File File

Memcache Sphinx

Web

Page 16: video hostings architecture

Болевой шок

www.jatv.by

•Основательный рефакторинг системы•Разделение нагрузки от пользователей по какому либо параметру - логин, страна и тд. •Группы разделенных пользователей обслуживаются отдельными кластерами.

ЦОД

ЦОД

ЦОД

Page 17: video hostings architecture

Боль незначительно усиливается

Page 18: video hostings architecture

Terra incognita

www.jatv.by

•HDFS•HBase•Map reduce•CUDA•Cloud computing•x264farm

???

Page 19: video hostings architecture

Вопросы?

www.jatv.by

[email protected]

Page 20: video hostings architecture

www.jatv.by

Тут надо вставить еще всякие умные слова про то как космические корабли бороздят просторы Большого Театра... :-)

Web 3.0 Ready