Компоненты
Основные компоненты системы
Интерфейс пользователя
Main UI
Главный интерфейс пользователя, реализованный на Vue.js. Он обеспечивает доступ к основным функциональным возможностям системы для конечных пользователей. Этот интерфейс включает такие модули, как управление бизнес-процессами, задачами, документооборотом, аналитикой и др.
Account UI
Интерфейс авторизации, регистрации, смены пароля, подтверждения почты, реализованный на Vue.js. Этот модуль позволяет пользователям управлять своими учетными записями и контролировать процесс аутентификации, включая интеграцию с внешними провайдерами OAuth2 и SSO решениями, такими как Visary ID.
API Gateway
API шлюз, который объединяет все микросервисы в единую точку доступа для внешних запросов. Это упрощает маршрутизацию и позволяет централизованно управлять безопасностью.
Services
🟦 single
— сервис не поддерживает запуск в нескольких экземплярах
🟩 multi
— сервис поддерживает горизонтальное масштабирование
Web Applications
- Identity: Аутентификация и авторизация на основе OpenID Connect (OIDC) и OAuth 2.0. 🟦 single
- WebAPI: Взаимодействие с бизнес-объектами платформы. 🟩 multi
- Workflow: Управление бизнес-процессами. 🟦 single
- UserProfile: Управление профилями пользователей. 🟩 multi
- FileStorage: Хранение и организация файлов. 🟩 multi
- BI: Бизнес-аналитика с возможностью создания отчетов и дашбордов. 🟩 multi
- Calendar: Управление событиями и календарями. 🟩 multi
- Notification: Система отправки уведомлений пользователям. 🟩 multi
- Email: Отправка электронных писем. 🟩 multi
- Tracker: Управление задачами по методологии Agile. 🟩 multi
- Office: Работа с текстовыми документами, таблицами и PDF. 🟩 multi
- Signature: Создание цифровых подписей и хранение данных о подписании. 🟩 multi
- Notes: Создание и управление пользовательскими заметками. 🟩 multi
- GPT: Управление промтами и выбор моделей ИИ. 🟩 multi
- EventHub: Вебсокет-события для отслеживания изменений в реальном времени, аудит и регистрация webhook-событий. 🟩 multi
- TaskHub: Централизованный реестр задач и их схем. 🟦 single
- Chat: Мессенджер, построенный на основе протокола Matrix. 🟩 multi
Workers (Фоновые сервисы)
- PreviewWorker: Генерация превью картинок для загружаемых файлов. 🟩 multi
- FileIndexer: Индексация файлов с использованием OCR для распознавания текста. 🟩 multi
- JobScheduler: Настройка и выполнение фоновых задач по расписанию (cron). 🟦 single
- ETL: Извлечение, трансформация и загрузка данных. 🟩 multi
Dependencies
UML-схема отображает зависимости между сервисами платформы Visary Cloud.
Все сервисы используют модуль Identity для аутентификации и авторизации через OIDC / OAuth2, однако эта зависимость опущена на схеме ради упрощения.
Data Storage Services
Redis
Используется как key-value хранилище для:
- Кэширования данных (распределенный кэш).
- Хранения настроек.
- Управления фоновой системой заданий (с использованием Hangfire).
- Для хранения Saga (State Machine Sagas).
PostgreSQL
Реляционная база данных, используемая для хранения всех бизнес-данных платформы. Основные компоненты системы взаимодействуют с базой данных через Entity Framework Core.
Event Bus
Шина событий, построенная на RabbitMQ, используется для асинхронного обмена сообщениями между микросервисами системы.
S3 Storage
Объектное хранилище (MinIO), используется для:
- Хранения файлов и документов
- Видео, HLS-потоков и мультимедиа
- Бэкапов и больших двоичных данных (BLOB)
Monitoring
- Prometheus: Система мониторинга, которая собирает метрики с микросервисов и узлов системы для последующего анализа.
- Grafana: Инструмент для визуализации данных мониторинга, позволяет строить дашборды для отслеживания состояния системы.