Skip to content

Архитектура 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-сценарий выглядит так:

  1. Внешний источник передает сигнал на Ingress сервер, либо внутренний источник поступает сразу на origin.
  2. origin принимает поток, при необходимости транскодирует его и формирует мастер-представление.
  3. origin передает контент на edge сервера.
  4. edge сервера раздают поток конечным зрителям.
  5. Параллельно поток может записываться в DVR и архив.

Публикация записи

Сценарий работы с записью обычно включает:

  1. Сохранение эфира во временный архив.
  2. Перемещение записи в storage система.
  3. Подготовку выходных профилей и метаданных в vod transcoder.
  4. Публикацию 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
  • Standby Push

  • резервирование входа через основной/резервный источник;

  • парное размещение Ingress сервер и origin для критичных трактов;
  • несколько edge сервера с балансировкой и fallback;
  • разделение оперативного и архивного хранения;
  • резервное копирование конфигурации, учетных записей и аудита;
  • мониторинг доступности серверов, времени, конфигурации и качества потоков.

Безопасность и сетевые границы

В корпоративной инсталляции архитектура обычно делится на сегменты:

  • административный сегмент;
  • внутренний сегмент медиасерверов;
  • сегмент хранения;
  • пользовательский сегмент или DMZ для доставки.

Это позволяет:

  • ограничить прямой доступ пользователей к внутренним мастер-узлам;
  • отделить web-управление от видеотрафика;
  • вынести прием внешнего видео на отдельный Ingress сервер в DMZ;
  • централизовать аудит и контроль изменений;
  • упростить интеграцию с корпоративными средствами ИБ.

Границы с внешними системами

С точки зрения архитектуры Agora взаимодействует со следующими внешними сущностями:

  • внешние источники видео;
  • корпоративные каталоги пользователей и роли доступа;
  • системы мониторинга и SIEM;
  • внешние медиаплееры и IPTV-устройства;
  • корпоративные порталы и player;
  • внешние системы публикации и production-инструменты.

Итог

Agora представляет собой многоуровневую платформу, в которой контроллер, Ingress сервер, origin, vod transcoder, edge сервера, storage система и player выполняют четко разделенные роли. Это дает возможность строить как компактные инсталляции для одной площадки, так и отказоустойчивые распределенные внедрения с централизованным управлением, защищенным приемом внешнего видео, внутренним master-слоем обработки, отдельной подготовкой VOD-материалов и масштабируемой доставкой по закрытой сети предприятия.