Перейти к основному содержимому

Как устроена платформа

Актуально для: SimpleTwo 0.9.x · Проверено: 11.09.2026

Платформа ставится целиком внутри вашего контура. Ниже — что из чего состоит и что с чем разговаривает; подробности установки роль за ролью — в развёртывании on-premise.

Схема архитектуры SimpleTwo

Три плоскости, и почему это разделение несущее

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

ПлоскостьСлужбыКак достижимаТребование к доступности
Связьmessaging, sfu, turn, recorder, calendar, mediationнапрямую по TLS; туннель не обязателенсамое высокое — она должна работать, когда туннель лежит: иначе «VPN упал, и сообщить об этом не через что»
Интранетшлюзы, внутренние системы, DMZтолько через туннельследует за туннелем; отказ шлюза — инцидент маршрутизации, а не связи
Управлениекоординатор, консоль, API узловтуннель или SSHсамое низкое при самых высоких правах: платформа спроектирована так, чтобы разговоры переживали её недоступность

Службы

СлужбаЗа что отвечаетЗамечание
coordinatorвход и сессии, каталог и политики, реестр узлов, встречи, административная консольодин экземпляр по замыслу; масштабируется не он, а способность работать без него
messagingразговоры и сообщения, сигналинг звонков, присутствие, боты, вложениямасштабируется горизонтально за шиной событий
sfuмедиа конференцийпул узлов за TLS-краем; добавление узла — это добавление ёмкости
turnретрансляция медиа там, где прямой путь закрытнужен в сетях со строгим NAT
recorderзапись встречфайлы уезжают в ваше хранилище, а не наружу
calendarкалендари, приглашения, ICS и CalDAVотвечает обычным клиентам: Apple Calendar, Outlook, Thunderbird
mediationтелефония: SIP-транки, номера, дозвонставится по желанию; сегодня один узел, а не пул
s3объектное хранилище: вложения, аватары, записи встречнеобязательная роль; объект лежит обычным файлом, поэтому резервная копия и перенос делаются средствами файловой системы. Вместо роли можно подключить хранилище, которое у вас уже есть
gatewayVPN-узел«глупый» туннель: правил на борту не держит
agentставит и обновляет роли на хостахим же приезжают сертификаты и конфигурация

Данные

Postgres — источник истины для разговоров и каталога; шина событий (redis) разносит события между экземплярами messaging; файлы и записи лежат в объектном хранилище вашего контура. Ни одна из трёх частей наружу не смотрит.

Хранилище берётся одним из двух способов, как и база: роль s3 внутри платформы или внешнее S3-совместимое хранилище, которое у вас уже есть (MinIO, AWS S3, Ceph и любое другое, говорящее на том же протоколе). Платформа показывает в консоли, какое из них действует сейчас. Байты файлов всегда идут через messaging, которое проверяет право на каждый файл; ссылок напрямую в хранилище платформа не выдаёт никогда. Роль хранит объект обычным файлом, поэтому на ZFS снимок файловой системы это и есть согласованная резервная копия вложений, а zfs send — копия на второй площадке. Диск под объекты запрашивается при добавлении хоста: платформа сама делает из него пул и датасет с нужными свойствами и отказывается брать диск, на котором что-то есть.

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

СистемаНаправлениеЧто проходит границу
AD / ADFSтолько чтение в координаторкто существует, группы, атрибуты; обратно платформа не пишет
SimpleOneдвусторонне, через messagingсвязь разговора с заявкой, присутствие и звонок в форме заявки
Другая установка SimpleTwoдвусторонне, через messagingсообщения по адресу имя@доменфедерация, выключена по умолчанию
Телефонная сетьдвусторонне, через mediationномера и дозвон
Почтавнешнее кольцо федерации; не построено, решение записано в архитектуре
Что схема утверждает, а что нет

Она показывает роли и границы, а не размеры: сколько узлов sfu и какой они мощности — вопрос сайзинга, и он решается по числу одновременных конференций, а не по числу сотрудников.