Общие сведения
Назначение ПО
ПКК YuChat разработан для обеспечения стабильной и высококачественной связи среди сотрудников компании, а также для уменьшения вероятности утечек информации путем переноса коммуникационных каналов из интернета в границы внутренних корпоративных сетей.
Основные функции
YuChat реализует следующие функции:
- быстрый обмен пользователей текстовыми сообщениями и файлами с помощью мобильных устройств и веб-клиента на ПК в рамках персональных и групповых чатов;
- осуществление персональных и групповых аудио- и видеозвон ков;
- запись, расшифровка и хранение проведенных аудио- и видеозвонков;
- индикация присутствия и текущей активности пользователя в системе
Основные компоненты
ПКК YuChat включает следующие отдельно устанавливаемые компоненты:
- основное серверное приложение (управляет данными в системе)
- приложение для записи видео- и аудио-заметок;
- приложение для пост-обработки записей аудио- и видеозвонков;
- комплекс из трех приложений для обеспечения голосовой и видеосвязи между пользователями (WebRTC);
- приложение для доставки уведомлений и текстовых сообщений в реальном времени;
- мобильные приложения (iOS, Android);
- десктоп-приложение;
- веб-приложение;
Управление комплексом осуществляется с помощью веб-интерфейса — консоли администратора, которая предоставляет возможности для настройки YuChat и контроля функционирования приложения.
Архитектура
Важно! В данном документе рассматривается неотказоустойчивая конфигурация изделия. Для получения сведений о вариантах отказоустойчивой конфигурации обратитесь к разработчику.
Серверная часть YuChat основана на микросервисной архитектуре с использованием контейнеризации на основе Docker/Docker Swarm.
Для всех вариантов развертывания системы серверная часть должна иметь возможность выхода в сеть Интернет и содержит в себе следующие контейнеры:
-
ws-endpoint-service (сервис для подключения и обмена информацией с клиентскими приложениями в реальном времени с помощью websocket)
-
web (веб-приложение)
-
nginx-static (вспомогательные веб-страницы)
-
mediahub (управление состоянием аудио и видеозвонков)
-
media-composer (пост-обработка записей аудио и видеозвонков)
-
freeswitch (сервис микширования аудио треков)
-
webrtc (сервис обмена видео трафиком)
-
backend (основной сервис управления данными в системе)
-
avnotes-streaming (сервис приема и конвертации аудио и видео заметок)
-
postgresql (БД для хранения данных системы)
-
traefik (точка входа в кластер, reverse proxy)
-
rabbitmq (брокер обмена сообщениями между сервисами)
-
rabbitmq_exporter (сервис для экспорта статистики из rabbitmq в prometheus)
-
postgresql_exporter (сервис для экспорта статистики из postgresql в prometheus)
-
prometheus (сервис хранения статистики сервисов)
-
redis (сервис кэширования часто используемых данных)
-
redis_prometheus (сервис для экспорта статистики из redis в prometheus)
-
minio (хранилище файлов)
Типовая схема развертывания YuChat размещена ниже (рис. 1)
Диаграмма развертывания (рис. 1)