Meshwork

Meshwork — механизм объединения серверов Perfect Streamer в единую сеть узлов. Узлы одного домена автоматически находят друг друга и обмениваются служебной информацией по gossip-протоколу, характерному для децентрализованных сетей. Объединение узлов даёт три возможности:

  • Живой статус узлов. На любом узле в админке видно состояние всех остальных узлов сети: кто на связи, кто молчит, кто за NAT, когда был последний контакт. Открывать каждый сервер отдельно не нужно. Узел, переставший обмениваться данными, переходит в состояние offline — это сразу видно на всех узлах.

  • Общий каталог ресурсов (библиотека). Запущенные на узлах входы и выходы UDP / RTP / Pro-MPEG / RIST / PS1 / SRT попадают в общий каталог, видимый на всех узлах домена: удобно подобрать свободный адрес и порт, не пересечься по мультикасту, найти, где уже отдаётся или принимается нужный поток. В пределах домена пир между узлами поднимается по автологину — без ручного ввода логинов и паролей с обеих сторон.

  • Разнос оповещений по домену. Алерты одного узла видны на всех узлах того же домена: дежурному достаточно одного окна, чтобы следить за всей площадкой. Внешние оповещения достаточно настроить на одном узле домена — уведомления будут приходить обо всех узлах этого домена.

Meshwork — это слой видимости и согласования: он не переносит потоки между серверами и не меняет конфигурацию вещания автоматически. Схему доставки вы по-прежнему строите сами, а Meshwork помогает её планировать и наблюдать.

Схема топологии Meshwork: узлы домена в полной сетке связей, узел за NAT как инициатор, super-node в двух доменах без их соединения.

Топология Meshwork: узлы одного домена образуют полную сетку прямых связей; узел за NAT подключается как инициатор; super-node состоит в двух доменах, но не соединяет их между собой.

Ключевые понятия

Узел

Один сервер Perfect Streamer в сети. У каждого узла есть короткое уникальное имя, по которому его узнают остальные. Без имени и секрета подписи узел в сети не участвует.

Домен

Логическая группа узлов и одновременно граница изоляции. Внутри одного домена узлы автоматически находят друг друга, делят общий каталог ресурсов и разносят оповещения. Между разными доменами обмена нет — домены независимы.

Автообнаружение (mesh)

Узлам достаточно задать одинаковый домен и хотя бы одну связь — дальше они находят друг друга сами, без ручного перечисления каждого соседа. В пределах домена выстраивается полная сетка прямых связей: все узлы домена становятся прямыми соседями, промежуточных цепочек не строится.

Связь прописывается по HTTP, но дальнейший обмен идёт по HTTPS. Для публичной сети настроенный HTTPS обязателен; для внутренней сети (intranet address) HTTPS не обязателен.

Явная связь

Соседа можно указать вручную — адресом, именем и общим секретом. Такая связь работает всегда, в том числе по обычному HTTP, и не требует общего домена. Подходит для точечного соединения двух площадок или подключения узла за NAT.

Super-node

Один узел может одновременно состоять в нескольких доменах. Он видит ресурсы и узлы каждого своего домена, но не соединяет домены между собой — изоляция сохраняется. В карте сети такой узел помечается как super.

Оповещения (алерты)

Встроенная служба оповещений следит за потоками, оборудованием узла, приёмом DVB и записью DVR и поднимает алерты, когда что-то выходит за заданные пределы. В сети с включённым разносом на каждом узле виден сводный набор алертов всего домена (см. Оповещения (алертер)).