Общие сведения
Назначение ПО
ПКК 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
