ym88659208ym87991671
Архитектура | Документация для разработчиков

Архитектура

Обновлено 4 июля 2024

Состав поставки

Серверная часть ПО SaluteJazz поставляется как набор Docker-образов. Образы доступны для скачивания из репозиториев SaluteJazz (jazz.nx.s2b.tech) или, в случае установки ПО в закрытый контур, передаются в виде архива.

Клиентская часть для мобильных приложений доступна в приложениях AppStore и Google Play.

Desktop версии доступны для операционных систем Windows, macOS и Linux/Unix.

Данные (логин/пароль) для загрузки ПО передаются отдельно.

Варианты установки

Установка ПО SaluteJazz доступна в следующих вариантах:

  • All-in-One — однонодовая конфигурация, все компоненты SaluteJazz устанавливаются в пределах одной виртуальной машины. Подходит для небольших и тестовых сценариев использования ВКС (до 250 одновременных подключений к ВКС).
  • Enterprise — многонодовая конфигурация, масштабируемое решение. Компоненты SaluteJazz распределены по разным виртуальным машинам. Распределение происходит по ролям.

Роли виртуальных машин:

  • server_host — kubernetes мастер, компоненты мониторинга;
  • node_proxy — компоненты coturn, nginx-ingress;
  • node_jvb — компоненты ВКС;
  • nope_app — компоненты сервисов мессенджера, авторизации, лицензирования;
  • node_persistent — сервисы требующие персистентного хранилища — postgres, s3-minio, elasticsearch-fts, kafka, prometheus;
  • node_sip — сервис sip gateway (sip signaling);
  • node_transcode — сервис транскодирования для компонентов webinar, sip, запись конференции.

Одна виртуальная машина может одновременно иметь несколько ролей.

Роли node_proxy и node_sip не должны быть на одной и той же машине.

В качестве операционной системы возможно использование следующих ОС (но не ограничено):

  • Astra;
  • Redos;
  • Baselat;
  • Ubuntu;
  • CentOS.

All-in-One

Все роли расположены на одной виртуальной машине. Включена функция ВКС. Функции sip, webinar, messenger и запись на сервер выключены.

Минимальные требования к виртуальной машине:

РесурсЗначение
CPU16
Memory64 GB
System Disk200 GB
Network Interface1 x 1Gbps
Private IPv41
Public IPv41

Enterprise

Вариант распределенной установки обусловлен количеством пользователей, одновременно подключенных к ВКС. Одна виртуальная машина node_jvb может обслуживать до 250 одновременных подключений. Виртуальная машина типа node_proxy ограничена пропускной способностью сетевого интерфейса. База данных node_persistent и server_host представлены в единичных экземплярах. Дополнительные компоненты node_app масштабируются в зависимости от нагрузки программного комплекса в целом и обычно представлены в экземпляре 1—2 штуки.

Роли могут быть распределены по разным виртуальным машинам. Иногда роли могут быть совмещены на одной виртуальной машине.

Отказоустойчивость решения строится на уровне инфраструктуры.

На рисунке ниже представлен типовой сценарий масштабирования. Распределение нагрузки происходит за счет балансировки DNS RR (round robin). Подключение пользователей к ВКС из сети Internet проходит через компоненты node_proxy и обусловлено прохождением сетевого трафика от конечных устройств пользователя через NAT. В случае подключения к ВКС из сети LAN, если NAT не используется, подключение происходит непосредственно к сервисам node_jvb.

Подключения SIP терминируются на node_sip. В случае организации централизованной точки входа node_proxy перенаправляет udp/5060 соединения на node_sip. node_sip и node_proxy слушают порт udp/5060, поэтому не могут быть развернуты на одной виртуальной машине.

Во время создания кластера kubernetes для каждой ноды создается метка. Затем микросервисы равномерно распределяются по нодам в соответствии с меткой.

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

Для подключения и управления ВКС требуется:

  • L3-L7 Load Balancer с поддержкой websocket или 1 DNS запись типа A на каждую ноду node_proxy, при этом FQDN будет один и тот же (DNS RR);
  • 3 DNS записи типа A для панелей управления;
  • 4 SSL/TLS сертификата;
  • 1 приватный IPv4 адрес на каждую ноду вне зависимости от роли.

В случае публикации сервиса в интернет дополнительно требуется:

  • 1 публичный IPv4 адрес на каждую ноду node_proxy;
  • 1 DNS запись типа A на каждую ноду node_proxy, при этом FQDN будет один и тот же (DNS RR).
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.