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

| Наименование подсистемы или сервиса | Описание |
|---|---|
| Auth | Компонент, состоящий из 2 сервисов: - GW — API-шлюз; - Authn — сервис аутентификации. Сервисы работают в тандеме и обеспечивают возможность интеграции с External Keycloak (SSO-системой) |
| Lb-core-auth (nginx-wfe) | Расширенный веб-сервер NGINX c поддержкой Lua. Отвечает за авторизацию, доступность API, балансировку |
| HAProxy | Балансировщик нагрузки между внутренними сервисами |
| FM | File Manager, cервис файлового менеджера. Отвечает за создание, удаление, добавление файлов, предоставление доступа другим пользователям |
| NM | Notification Manager, сервис управления уведомлениями |
| CVM | Conversion Manager, сервис управления конвертированием файлов. При конвертации документов использует пул CU юнитов или Jod |
| CU | Conversion Unit, экземпляр процесса конвертора различных форматов файлов (офисных или изображений) |
| DCM | Document Collaboration Manager, сервис управления редактированием документов. При редактировании документов использует пул DU юнитов |
| DPS | Data Protection Service, сервис сбора и передачи событий по REST API во внешнюю DLP-систему по протоколу ICAP |
| DLP | Data Loss Prevention, внешняя система защиты от потери данных |
| DU | Document Unit, экземпляр процесса редактирования и коллаборации документов |
| JOD | Java OpenDocument Converter, сервис конвертации офисных файлов устаревших форматов (например Microsoft Office 1997) в современные форматы или PDF |
| Audit | Cервис аудита, получает события аудита из сервисов и Системы хранения данных через RabbitMQ. Выполняет отправку событий аудита (TCP/UDP) в syslog или SIEM (не входит в стандартную поставку) |
| Elastic | Elastic (Opendistro Elastic Search), поисковый и аналитический сервис. Отвечает за сбор, обработку и хранение логов всех сервисов |
| Fluentd | Сервис, который собирает логи от всех сервисов и передает их в Elastic Search |
| Kibana | Kibana, инструмент визуализации и изучения данных, анализ логов приложения, использует данные из Elastic |
| Etcd | Хранилище типа «ключ-значение». Отвечает за хранение свойств (настроек) всех сервисов |
| Redis | noSQL in-memory хранилище, типа «ключ-значение». Отвечает за хранение кешированной информации при работе с облаком (файлы, профили пользователей, токены) |
| RabbitMQ | Брокер сообщений на основе протокола AMQP. Отвечает за отправку сообщений между сервисами, например за отправку уведомлений, событий аудита |
| NPS | Native Process Service, сервис управления CU, DU |
| SDD | Service Detector Docker, обнаружение сервисов. Опрашивает сервисы NPS через Docker API и сокет |
| Prometheus | Инструмент сбора метрик со всех сервисов |
| Grafana | Инструмент визуализации метрик приложения. Получает метрики из Prometheus |
| WFM | Web file manager (SPA веб-приложение). Веб-приложение файлового менеджера (виджет вложений). Отвечает за операции с файлами (кроме редактирования) и просмотр файлов по публичным ссылкам |
| Chatbot | NodeJs сервис. Отвечает за создание чата по документу, добавления пользователей и обновления списка пользователей в чате |
| WTE | Web 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 | Сервис интеграции ИИ |
| SIEM | SIEM (Security information and event management) — система регистрации событий аудита, которые получает от сервиса audit. Используется опционально. |
| OpenTelemetry Collector as an Agent | OpenTelemetry Collector (в режиме агента) при котором сервис устанавливается на сервере (или в sidecar-контейнер). Служит для сбора, обработки и экспорта телеметрических данных (трассировок, метрик, логов) с локальных приложений или сервисов |
| OpenTelemetry Collector as a Server | OpenTelemetry Collector (в режиме централизованного сервиса) для приема, обработки и маршрутизации телеметрических данных (трассировок, метрик, логов) от разных источников (агентов, приложений или других коллекторов). Выполняет функцию промежуточного узела перед отправкой данных в бэкенд-системы |
| ClickHouse | Высокопроизводительная колоночная СУБД с открытым исходным кодом, разработанная для аналитики (OLAP) и работы с большими данными в реальном времени |
| VictoriaMetrics | Высокопроизводительная, экономичная и масштабируемая база данных для хранения и анализа метрик временных рядов (time-series data) |
| HAProxy + Keepalived | Сервисы Keepalived и HAProxy служат для балансировки между серверами с ролью co_lb_core_auth |