Skip to main content

Архитектурная схема Системы редактирования и совместной работы

Схема взаимодействия подсистем и сервисов Системы редактирования и совместной работы. Прямоугольниками выделены кластерные решения для сервисов etcd, redis, rabbitmq.

Наименование подсистемы или сервисаОписание
AuthКомпонент, состоящий из 2 сервисов:
- GW — API-шлюз;
- Authn — сервис аутентификации.
Сервисы работают в тандеме и обеспечивают возможность интеграции с External Keycloak (SSO-системой)
Lb-core-auth
(nginx-wfe)
Расширенный веб-сервер NGINX c поддержкой Lua.
Отвечает за авторизацию, доступность API, балансировку
HAProxyБалансировщик нагрузки между внутренними сервисами
FMFile Manager, cервис файлового менеджера. Отвечает за создание, удаление, добавление файлов, предоставление доступа другим пользователям
NMNotification Manager, сервис управления уведомлениями
CVMConversion Manager, сервис управления конвертированием файлов.
При конвертации документов использует пул CU юнитов или Jod
CUConversion Unit, экземпляр процесса конвертора различных форматов файлов (офисных или изображений)
DCMDocument Collaboration Manager, сервис управления редактированием документов. При редактировании документов использует пул DU юнитов
DPSData Protection Service, сервис сбора и передачи событий по REST API во внешнюю DLP-систему по протоколу ICAP
DLPData Loss Prevention, внешняя система защиты от потери данных
DUDocument Unit, экземпляр процесса редактирования и коллаборации документов
JODJava OpenDocument Converter, сервис конвертации офисных файлов устаревших форматов (например Microsoft Office 1997) в современные форматы или PDF
AuditCервис аудита, получает события аудита из сервисов и Системы хранения данных через RabbitMQ. Выполняет отправку событий аудита (TCP/UDP) в syslog или SIEM (не входит в стандартную поставку)
ElasticElastic (Opendistro Elastic Search), поисковый и аналитический сервис.
Отвечает за сбор, обработку и хранение логов всех сервисов
FluentdСервис, который собирает логи от всех сервисов и передает их в Elastic Search
KibanaKibana, инструмент визуализации и изучения данных, анализ логов приложения, использует данные из Elastic
EtcdХранилище типа «ключ-значение».
Отвечает за хранение свойств (настроек) всех сервисов
RedisnoSQL in-memory хранилище, типа «ключ-значение».
Отвечает за хранение кешированной информации при работе с облаком (файлы, профили пользователей, токены)
RabbitMQБрокер сообщений на основе протокола AMQP.
Отвечает за отправку сообщений между сервисами, например за отправку уведомлений, событий аудита
NPSNative Process Service, сервис управления CU, DU
SDDService Detector Docker, обнаружение сервисов. Опрашивает сервисы NPS через Docker API и сокет
PrometheusИнструмент сбора метрик со всех сервисов
GrafanaИнструмент визуализации метрик приложения. Получает метрики из Prometheus
WFMWeb file manager (SPA веб-приложение). Веб-приложение файлового менеджера (виджет вложений). Отвечает за операции с файлами (кроме редактирования) и просмотр файлов по публичным ссылкам
ChatbotNodeJs сервис. Отвечает за создание чата по документу, добавления пользователей и обновления списка пользователей в чате
WTEWeb text editors (веб-приложение редактора). Отвечает за редактирование и чтение файлов
External KeycloakВнешняя SSO-система, сохраняющая в себе настройки системы, данные по тенантам и пользователям
WhiteboardВеб-клиент досок. Отвечает за интеграцию приложения доски с продуктом
board-wopiПриложение досок. Отвечает за редактирование содержимого доски
boardsСервис управления редактирования досок
pluginsСервис для работы с плагинами
cAdvisorСервис мониторинга контейнеров, собирает метрики ресурсов (CPU, RAM, сеть, диски) и статистику по работающим контейнерам. Используется в связке с Prometheus, Grafana
confdСервис автоматической генерирации конфигурации из шаблонов (например, для Nginx, HAProxy, etcd). Интегрируется с хранилищами ключ-значение(etcd, env-переменные).
launchВеб-клиент приложений МоиДоски, МоиТаблицы, МоиПрезентации, МойТекст
notesВеб-клиент приложения МоиЗаметки
admin_frontВеб-клиент приложения Администрирование
ai_agentСервис интеграции ИИ
SIEMSIEM (Security information and event management) — система регистрации событий аудита, которые получает от сервиса audit. Используется опционально.
OpenTelemetry Collector as an AgentOpenTelemetry Collector (в режиме агента) при котором сервис устанавливается на сервере (или в sidecar-контейнер). Служит для сбора, обработки и экспорта телеметрических данных (трассировок, метрик, логов) с локальных приложений или сервисов
OpenTelemetry Collector as a ServerOpenTelemetry Collector (в режиме централизованного сервиса) для приема, обработки и маршрутизации телеметрических данных (трассировок, метрик, логов) от разных источников (агентов, приложений или других коллекторов). Выполняет функцию промежуточного узела перед отправкой данных в бэкенд-системы
ClickHouseВысокопроизводительная колоночная СУБД с открытым исходным кодом, разработанная для аналитики (OLAP) и работы с большими данными в реальном времени
VictoriaMetricsВысокопроизводительная, экономичная и масштабируемая база данных для хранения и анализа метрик временных рядов (time-series data)
HAProxy + KeepalivedСервисы Keepalived и HAProxy служат для балансировки между серверами с ролью co_lb_core_auth