Общие сведения и архитектура

Последние изменения: 13.01.2025

ОБЩИЕ СВЕДЕНИЯ

Назначение ПО

ПКК 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 (хранилище файлов)

Помогла ли вам статья?