Описание компонентов системы
Решения по программному обеспечению
Таблица – Используемые программные средства
| Наименование | Версия | Тип | Назначение |
|---|---|---|---|
| Wildfly Application Server | "18.0.1" | Сервер приложений | Обеспечивает инфраструктуру функционирования VALO Cloud |
| PostgreSQL DB Server | "11.18" | Система управления базами данных | Обеспечивает долговременное хранение пользовательской мета-информации, сообщений синхронизации и межсервисных сообщений |
| Apache ActiveMQ | "5.15.16" | Система гарантированной доставки сообщений | Является основой подсистемы гарантированной доставки сообщений и обеспечивает возможность обмена сообщениями между подсистемами/сервисами |
| ElasticSearch | "7.7.16" | Комплексное решение для построения поисковой системы | Обеспечивает поиск по содержимому файлов пользователей и иной мета-информации |
| Kannel | 1.4.4 | Решения для уведомления пользователей SMS GateWay | Уведомляет пользователей продукта о произошедших системных или бизнес событиях посредством отправки SMS |
| Nginx | "1.22.1" | Служебное ПО | Web-сервер, балансировщик и прокси-сервер |
| Keepalived | "2.2.7" | Служебное ПО | ПО, основанное на протоколе VRRP для обеспечения высокой доступности кластера. Основная функция — реализация изоляции сбоев реальной машины и переключение между балансировщиками нагрузки для предотвращения единичных точек отказа |
| HAProxy | "2.2.29" | Служебное ПО | Программное обеспечение для обеспечения высокой доступности и балансировки нагрузки для TCP и HTTP-приложений. Позволяет создать единую точку подключения к PostgreSQL, не зависящую от распределения ролей в кластерах PostgreSQL |
| Etcd | "3.3.25" | Служебное ПО | Распределённое надёжное хранилище ключей и значений для наиболее важных данных распределённой системы. Обеспечивает сохранение текущего состояния реплик PostgreSQL |
| Patroni | "2.1.3" | Служебное ПО | Приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Обеспечивает выбор и переключение ролей реплик |
| OpenJDK Runtime Environment | 11.0.18 | Служебное ПО | Комплект разработчика Java приложений |
| LibreOffice | 7.5.6.2 | Офисное ПО | Пакет ПО офисных приложений. Обеспечивает формирование миниатюр, образа предварительного просмотра файла |
| GraphicsMagick | 1.4 | Служебное ПО | Набор графических библиотек/утилит. Обеспечивает формирование миниатюр, образа предварительного просмотра файла |
| PostgreSQL JDBC Driver | 42.2.5 | Служебное ПО | Драйвер подключения к СУБД для Java приложений |
| Решения по управлению и мониторингу | |||
| Prometheus | "2.37.4" | Служебное ПО | Система мониторинга ресурсов |
| Grafana | "8.5.27" | Служебное ПО | Система визуализации мониторинга |
| Alertmanager | "0.24.0" | Служебное ПО | Компонент Prometheus для рассылки уведомлений |
| Loki | "2.7.0" | Служебное ПО | Набор компонентов для полноценной системы работы с логами |
| Node Exporter | 1.5.0 | Служебное ПО | Компонент Prometheus для сбора метрик |
| pg_dump / pg_restore | "11.18" | Служебное ПО | Рекомендуемое ПО для обеспечения резервного копирования и восстановления СУБД |
| lsyncd / rsync | текущая | Служебное ПО | Рекомендуемое ПО для обеспечения резервного копирования пользовательских файлов, расположенных на файловой системе в хранилище |
Решения по функциям Системы
Функции, исполняемые VALO Cloud
Функции, исполняемые VALO Cloud
-
Подсистема аутентификации и авторизации, включая:
- управление типом аутентификации;
- локальная аутентификация;
- настройка смежных систем аутентификации;
- аутентификация в смежных системах аутентификации;
- автоматический импорт пользователей из смежных систем аутентификации;
- контроль дискреционных прав на доступ к объектам;
- контроль мандатных прав на доступ к объектам;
- контроль полномочий на исполнение запросов (ролевая модель).
-
Подсистема управления компаниями (тенантами) — областями хранения данных (объектов доступа), включая:
- администрирование технологических администраторов;
- создание, удаление и администрирование тенанта на уровне тех. администратора;
- управление хранилищами тенанта.
-
Подсистема администрирования компании (тенанта), включая:
- создание, удаление и администрирование тенанта;
- управление хранилищами тенанта;
- управление настройками тенанта;
- управление ограничениями и политиками;
- парольные политики;
- политики версионирования и квот;
- политики в отношении пользовательских устройств;
- сессионные политики;
- иные политики;
- управление темами пользовательского интерфейса;
- управление водяными знаками (кастомизация).
-
Подсистема управления пользователями, включая:
- управление пользователями внутри компании (тенанта) – субъекты доступа, включая создание, удаление, администрирование пользователей, управление профилем;
- управление пользователями-контрагентами – субъекты доступа, включая создание, удаление, администрирование пользователей;
- управление группами доступа субъекта внутри компании (тенанта), включая:
- создание, изменение, удаление групп;
- изменение состава участников;
- управление системными группами доступа внутри компании (тенанта), включая:
- создание, изменение, удаление групп;
- изменение состава участников;
- управление организационной структурой компании (тенанта), включая:
- создание, изменение, удаление орг. подразделений;
- импорт учетных записей в орг. подразделение;
- группировка пользователей в орг. подразделении;
- управление организацией совместного доступа к объектам, включая управление списками доступа (создание, изменение, удаление) и их участниками.
-
Подсистема управления файловым каталогом, включая:
- чтение, создание, перемещение, копирование, удаление, переименование объектов;
- восстановление объектов из корзины субъекта или системной корзины;
- управление версиями;
- управление избранными объектами;
- управление недавно использованными объектами;
- создание архивов;
- создание миниатюр;
- поиск файлов и мета-информации;
- синхронизация объектов.
-
Подсистема управления моделями безопасности, включая:
- управление дискреционной моделью доступа (в т. ч. публичного), включая:
- делегирование прав на объекты группе пользователей и/или индивидуально субъекту;
- отзыв прав на объекты у группы пользователей и/или субъекта;
- ограничение (запрет) доступа к объектам группе пользователей и/или индивидуально субъекту;
- управление ролевой моделью доступа, включая:
- управление (создание, изменение, удаление) ролями;
- управление функциями роли (делегирование, отзыв);
- управление ролями пользователя (делегирование, отзыв);
- управление мандатной моделью доступа, включая:
- управление справочниками (создание, изменение, удаление) зон и уровней доступа;
- распределение пользователям по зонам и уровням доступа.
- управление дискреционной моделью доступа (в т. ч. публичного), включая:
-
Подсистема управления планировщиком, включая:
- системный планировщик:
- очистка сессионных ключей;
- очистка незавершенной записи данных (файлов);
- очистка системной корзины;
- очистка заданий фоновой обработки;
- очистка журналов;
- обработка очередей заданий на обраб отку файлов;
- подсчет используемого пространства;
- очистка ленты событий;
- очистка публичных ссылок, исчерпавших свой ресурс;
- пользовательский планировщик удаления объектов:
- управление заданиями;
- управление правилами.
- системный планировщик:
-
Подсистема синхронизации, включая:
- создание/удаление/блокировку устройств;
- управление синхронизацией;
- управление "тонким" и "толстым" хранением;
- формирование и рассылка сообщений синхронизации мета-информации.
-
Подсистема журналирования, включая:
- регистрация событий в журналах доступа к данным, разграничения прав доступа, авторизации;
- просмотр событий;
- администрирование/настройка журналов;
- репликация журналов в смежные SIEM-системы.
-
Подсистема уведомлений, включая:
- управление каналами уведомлений/рассылки оповещений;
- управление бизнес-событиями;
- публикация/подписка;
- чтение ленты бизнес-событий;
- обсуждение объектов (комментарии, чат), включая:
- подписку;
- создание, удаление комментариев;
- управление шаблонами почтовых сообщений (кастомизация);
- оповещение пользователей о бизнес-событиях через смежные SMS-центры, SMTP-службы, FCM.
- Подсистема согласования запросов, включая:
- создание/удаление/согласование запросов;
- репликация мета-информации;
- интеграция с BPM Engine.
- Конвейер задач, включая:
- администрирование задач экземпляра Системы;
- администрирование задач тенанта;
- обработка пост-процессинговых и интеграционных задач;
- обработка фоновых задач, в составе: формирование архивов, формирование preview.
- Подсистема управления файлообменом, включая:
- управление файловыми хранилищами;
- запись (сохранение) данных;
- чтение (скачивание) данных;
- чтение (просмотр) данных;
- удаление данных;
- перемещение данных;
- совместное редактирование (при наличии онлайн-редактора);
- (де)шифрование;
- проверка данных в антивирусных системах (AV);
- проверка данных в системах предотвращения утечки информации (DLP);
- проверка данных в системах безопасного/карантинного тестирования (SANDBOX).
Все подсистемы VALO Cloud представлены на Рис. Подсистемы VALO Cloud.
Решения по архитектуре
Основу архитектуры VALO Cloud для промышленной среды представляет собой отказоустойчивые решения для:
- серверов БД с использованием технологии асинхронной репликации;
- серверов приложений;
- брокеров сообщений;
- балансировщиков загрузки;
- приложений для создания высокодоступных кластеров.
Схема построения и взаимосвязи компонентов VALO Cloud представлена на диаграмме в Приложении 1.
Функционально компоненты VALO Cloud можно разделить на:
- уровень ядра, обеспечивающий хранение и обработку бизнес-информации;
- уровень интеграционного взаимодействия со смежными системами.
Уровень ядра
Уровень ядра представлен:
- СУБД, содержащей бизнес-информацию (файлы, папки, доступ, ссылки и т.д.), порожденную пользователями посредством использования Rest-сер висов;
- СУБД, представляющей собой выборочную реплику сущностей БД Rest-сервисов, которая предназначена для формирования и последующей рассылки уведомлений с помощью серверов приложений с развернутыми на ними асинхронными JMS-сервисами;
- сервером приложений с развернутыми Rest-сервисами;
- сервером приложений с развернутыми JMS-сервисами;
- межсервисным брокером сообщений;
- клиентским брокером сообщений.
Все компоненты ядра должны быть синхронизированы по времени, например, с помощью внешнего источника времени (ntp-сервер).
СУБД Rest-сервисов
СУБД Rest-сервисов является основной СУБД продукта VALO Cloud. Предназначена для хранения и обработки информации, поступающей посредством использования Rest-сервисов.
Для нагруженных систем и систем с требованиями к отказоустойчивости может использоваться кластер с одной мастер-репликой и несколькими R/O-репликами (hot-standby в терминах PostgreSQL). При необходимости возможно также добавление warm-standby реплик (запросы на чтение с которых не обрабатываются).
Версии СУБД всех реплик и аппаратная архитектура их платформ должны быть одинаковыми.
При использовании потоковой репликации рекомендуется организовать минимум 2 (две) резервных реплики с асинхронным режимом репликации. В системе также допускается использование каскадной репликации.
Физические сетевые интерфейсы серверов БД должны быть организованы в отказоустойчивые соединения за счет агрегирования каналов и быть сконфигурированы таким образом, чтобы операции репликации и обработки пользовательских запросов происходили на разных (с точки зрения ОС) интерфейсах. Указанные сетевые интерфейсы должны находиться в разных ip-сетях и, крайне желательно, в разных широковещательных доменах. Кроме того, сервера СУБД должны иметь избыточные каналы связи, блокируемые Spanning Tree или ему подобным алгоритмом.
Комментарии к основным параметрам конфигурации СУБД указаны в Приложении 5.