video hostings architecture

Post on 08-Jul-2015

3.715 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

От простого

www.jatv.by

К сложному

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

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

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

www.jatv.by

Видео

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

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

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

www.jatv.by

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

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

Front-end Back-end

www.jatv.by

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

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

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

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

www.jatv.by

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

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

Транскодер

www.jatv.by

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

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

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

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

www.jatv.by

SilverlightWMVH.264

Adobe FlashFlash videoH.264

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

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

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

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

www.jatv.by

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

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

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

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

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

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

www.jatv.by

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

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

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

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

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

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

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 - это что бы не забывать про Микрософт ;-)

Начало…

www.jatv.by

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

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

www.jatv.by

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

Первая кровь

www.jatv.by

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

DB

Web Web File

DB

Зубная боль

www.jatv.by

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

DB

Web File

DB

File File

Memcache Sphinx

Web

Болевой шок

www.jatv.by

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

ЦОД

ЦОД

ЦОД

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

Terra incognita

www.jatv.by

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

???

Вопросы?

www.jatv.by

dmytrosychevsky@gmail.com

www.jatv.by

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

Web 3.0 Ready

top related