Архитектура Agora¶
Agora строится как модульная on-prem платформа корпоративного телевидения. Архитектура системы разделяет контур управления, контур обработки видеопотоков и контур доставки контента, чтобы независимо масштабировать администрирование, прием, транскодирование, архив и просмотр.
Архитектурные принципы¶
При проектировании Agora используются следующие принципы:
- все ключевые компоненты могут размещаться во внутреннем контуре заказчика;
- управляющие сервисы отделены от серверов видеотрафика;
- роли
Ingress сервер,origin,vod transcoder,edge сервераиstorage системамогут совмещаться или разноситься по разным узлам в зависимости от масштаба внедрения; - для критичных потоков предусматривается резервирование источников, серверов и маршрутов доставки;
- система может начинаться с компактной инсталляции и разворачиваться в распределенную схему без смены модели управления.
Логическая схема¶
В типовой инсталляции система включает следующие логические блоки:
Контроллердля централизованного управления и мониторинга;Ingress сервер, который размещается в DMZ и принимает видео от внешних источников;origin, который принимает видео отIngress сервер, студийного вещания, HDMI/SDI и других внутренних источников и при необходимости выполняет транскодирование;vod transcoderдля подготовки роликов и архивной нарезки к публикации;edge сервера, которые организуют CDN по закрытой сети предприятия;storage системадля долгосрочного хранения роликов и материалов, полученных из архивной нарезки;playerдля просмотра видео конечными пользователями.
Упрощенно взаимодействие выглядит так:
flowchart LR
central["контроллер"] --> config["Config / Audit / Monitoring"]
central --> ingress["Ingress сервер"]
central --> origin["origin"]
central --> vod["vod transcoder"]
central --> edge["edge сервера"]
external["External sources"] --> ingress
ingress --> origin
studio["Studio / HDMI / SDI / internal IP sources"] --> origin
origin --> edge
origin --> storage["storage система"]
vod --> storage
vod --> edge
edge --> player["player"]
player -.- telemetry -.-> central
Модель поставки¶
Поставка Agora является гибридной: часть компонентов доступны в виде программного обеспечения, а часть поставляются в виде ПАКов (программно-аппаратных комплексов).
В виде ПО обычно поставляются те компоненты, которые могут быть развернуты на стандартной серверной инфраструктуре заказчика:
контроллер;origin;vod transcoder;edge сервера;storage система.
В виде ПАК поставляются те компоненты, для которых важна заранее подготовленная аппаратная конфигурация, проверенная совместимость и гарантированные характеристики ввода-вывода.
В случае, когда необходимы специализированные платы захвата, например HDMI или SDI, поставка осуществляется в виде ПАК.
Слой управления¶
Плоскость управления отвечает за конфигурацию системы, безопасность и наблюдаемость.
Контроллер¶
Контроллер является центральным компонентом управления системой. Он используется администраторами и операторами для:
- настройки узлов системы;
- регистрации и контроля всех серверных ролей;
- создания и изменения потоков;
- мониторинга статусов, метрик и событий;
- управления политиками записи, доставки и защиты;
- просмотра аудита и результатов health-check.
С точки зрения архитектуры контроллер:
- хранит логическую модель потоков и серверов;
- предоставляет единый интерфейс управления;
- управляет учетными записями, ролями и сессиями;
- собирает и агрегирует статус серверов и потоков;
- выступает центральной точкой мониторинга и контроля конфигурации.
База данных¶
Отдельная база данных используется для:
- конфигурации потоков;
- описания серверов и входных устройств;
- данных учетных записей и ролей;
- хранения сессий;
- журнала административных и security-событий.
Это хранилище не предназначено для самих видеоданных. Видеоархивы, DVR и VOD-файлы выносятся в специализированные контуры хранения.
Слой обработки видео¶
Ingress сервер¶
Ingress сервер размещается в DMZ и предназначен для безопасного приема видеосигнала от внешних источников. Он используется как пограничная точка входа для входящего видеотрафика.
Ingress сервер может принимать:
- IP-потоки по
SRT,RTMPи другим поддерживаемым протоколам; - сигналы от внешних площадок и подрядчиков;
- резервные внешние источники.
Основные задачи Ingress сервер:
- принять внешний поток в DMZ;
- отделить внешний контур от внутренних медиасерверов;
- передать видео дальше на
origin; - обеспечить контролируемую и наблюдаемую точку входа.
Для критичных каналов может применяться резервирование входа, когда один и тот же внешний эфир принимается несколькими независимыми трактами.
origin¶
Роль origin в том, чтобы подготовить поток для дальнейшей раздачи по сотрудникам и телевизорам.
Он:
- принимает поток от
Ingressсервера; - принимает видео от студийного вещания;
- принимает HDMI/SDI и другие локальные источники;
- выполняет транскодирование при необходимости;
- формирует мастер-поток для дальнейшей доставки;
- передает контент на
edgeсервера; - может сам проигрывать клиентам, если нагрузка невелика;
- передает архивные и производные материалы в
storageсистему.
В архитектуре Agora origin совмещает роль master-узла, точки агрегации внутренних и внешних источников, а также роль узла транскодирования.
Архив и подготовка материалов¶
Подсистема записи обеспечивает:
- live DVR с ограниченным окном хранения;
- сохранение эфира после завершения трансляции;
- передачу материалов в
storageсистему и публикацию записей как VOD-контента.
Временный DVR-буфер и краткоживущий архив обычно располагаются рядом с origin, а долгосрочное хранение выносится в storage систему.
vod transcoder¶
vod transcoder используется для подготовки роликов, записей эфира и архивной нарезки к публикации. Он:
- получает исходные материалы снаружи от
originили изstorage система; - транскодирует ролики в нужное количество выходных профилей;
- выполняет нормализацию контейнеров, кодеков и битрейтов;
- передает подготовленные материалы в
storage, откуда уже могут забиратьedgeсервера.
Слой доставки¶
edge сервера¶
edge сервера отвечают за доставку видео конечным потребителям по закрытой сети предприятия. Они могут размещаться:
- в пользовательском сегменте локальной площадки;
- в филиале;
- рядом с крупной группой зрителей для локального offload.
Назначение edge сервера:
- разгрузить
origin; - сократить межсегментный трафик;
- локализовать клиентские подключения;
- обеспечить отказоустойчивую доставку при недоступности части узлов.
В зависимости от требований заказчика edge сервера могут работать как:
- сервер ретрансляции в филиалы;
- точка выдачи multicast или
UDP MPEG-TSв локальную сеть.
player¶
player используется для просмотра контента конечными пользователями. Мы предоставляем:
- веб-плеер, пригодный для встраивания в корпоративный портал;
- Android приложение, которое можно поставить на приставку, в том числе поставляем и собранные в ПАК приставки;
- веб-приложение, которое можно открыть на телевизоре.
Контент в player может доставляться:
- с
originсервера - через
edgeсервера;.
Хранение контента¶
Система хранения разделяется на два класса:
storage система предназначена для долгосрочного хранения видео как в виде отдельных роликов, так и в виде нарезки из сохраненного архива.
Оперативное хранение включает:
- временный live DVR;
- краткоживущие архивы на
origin; - промежуточные файлы транскодирования.
Долговременное хранение включает:
- записи эфиров;
- загруженные видеоролики;
- подготовленные VOD-материалы.
Такое разделение позволяет отдельно выбирать:
- производительные диски для live-задач;
- более емкие и экономичные хранилища для архива;
- разные политики резервного копирования и retention.
Типовые потоки данных¶
Прямая трансляция¶
Типичный live-сценарий выглядит так:
- Внешний источник передает сигнал на
Ingress сервер, либо внутренний источник поступает сразу наorigin. originпринимает поток, при необходимости транскодирует его и формирует мастер-представление.originпередает контент наedge сервера.edge серверараздают поток конечным зрителям.- Параллельно поток может записываться в
DVRи архив.
Публикация записи¶
Сценарий работы с записью обычно включает:
- Сохранение эфира во временный архив.
- Перемещение записи в
storage система. - Подготовку выходных профилей и метаданных в
vod transcoder. - Публикацию VOD через
originиedge сервера.
Варианты размещения¶
Компактная инсталляция¶
Для небольших площадок несколько ролей могут быть совмещены на одном или двух серверах:
Контроллер;origin;vod transcoder;storage система.
Такой вариант подходит для пилотов и ограниченного числа каналов и зрителей.
Распределенная инсталляция¶
Для корпоративной эксплуатации рекомендуется разносить роли:
- отдельный
Контроллер; - отдельный
Ingress серверв DMZ; - один или несколько
origin; - отдельный
vod transcoderдля подготовки роликов; - отдельные
edge серверав пользовательских сегментах или филиалах; - отдельная
storage система.
При наличии требований по сетевой изоляции внешние источники взаимодействуют только с Ingress сервер, а пользовательский просмотр идет через edge сервера.
Отказоустойчивость¶
Требования к доступности у разных узлов различаются:
- управляющий сервер критичен для администрирования, но не всегда влияет на уже идущий просмотр;
Ingress сервериoriginкритичны для live-вещания внешних источников;edge серверакритичны для массовой доставки;vod transcoderкритичен для подготовки VOD-контента и архивной нарезки;storage системакритична для VOD и архивов, но не обязательно для каждого live-сценария.
Основные механизмы отказоустойчивости доставки видео:
- Cluster Ingest
- Twincast
- Double Publish
-
резервирование входа через основной/резервный источник;
- парное размещение
Ingress сервериoriginдля критичных трактов; - несколько
edge серверас балансировкой и fallback; - разделение оперативного и архивного хранения;
- резервное копирование конфигурации, учетных записей и аудита;
- мониторинг доступности серверов, времени, конфигурации и качества потоков.
Безопасность и сетевые границы¶
В корпоративной инсталляции архитектура обычно делится на сегменты:
- административный сегмент;
- внутренний сегмент медиасерверов;
- сегмент хранения;
- пользовательский сегмент или DMZ для доставки.
Это позволяет:
- ограничить прямой доступ пользователей к внутренним мастер-узлам;
- отделить web-управление от видеотрафика;
- вынести прием внешнего видео на отдельный
Ingress серверв DMZ; - централизовать аудит и контроль изменений;
- упростить интеграцию с корпоративными средствами ИБ.
Границы с внешними системами¶
С точки зрения архитектуры Agora взаимодействует со следующими внешними сущностями:
- внешние источники видео;
- корпоративные каталоги пользователей и роли доступа;
- системы мониторинга и SIEM;
- внешние медиаплееры и IPTV-устройства;
- корпоративные порталы и
player; - внешние системы публикации и production-инструменты.
Итог¶
Agora представляет собой многоуровневую платформу, в которой контроллер, Ingress сервер, origin, vod transcoder, edge сервера, storage система и player выполняют четко разделенные роли. Это дает возможность строить как компактные инсталляции для одной площадки, так и отказоустойчивые распределенные внедрения с централизованным управлением, защищенным приемом внешнего видео, внутренним master-слоем обработки, отдельной подготовкой VOD-материалов и масштабируемой доставкой по закрытой сети предприятия.