В документе рассматриваются:
- Архитектура
- Требования к программному обеспечению
- Рекомендации по достижению лучших результатов при реализации проекта
Обозначения и сокращения#
1. Архитектура#
Решение предлагает компонентную архитектуру, которая позволяет масштабировать решение горизонтально и вертикально. Архитектура кластерного развертывания представлена на схеме ниже.
1.1 Компоненты кластера#
Балансировщик нагрузки (nginx)
Web модуль BI (SiglaVision) — модуль для управления пользовательскими сессиями и обработки запросов в BI-системе. На разных уровнях решает следующие задачи:
- уровень сетевой маршрутизации;
- уровень бизнес-обработки.
Ключевой функционал Web-модуля: модуль поддерживает целостность сессий при одновременном эффективном распределении вычислительной нагрузки между серверными ресурсами, обеспечивая надёжность и оптимальную производительность системы.
Мастер узел — центральный компонент системы, отвечающий за координацию worker-процессов и управление метаданными.
Основные функции:
- управление worker-процессами;
- управление метаданными.
Ключевой функционал: модуль координирует взаимодействие между BI-узлами и worker-движками, обеспечивая эффективное распределение задач и доступ к данным через управление метаданными.
Вычислительный узел — выполняет задачи расчёта и задачи обновления данных, которые получает исполнительный компонент системы, состоящий из вычислительного узла и модуля мониторинга.
Основные компоненты:
- вычислительный узел;
- модуль мониторинга.
Ключевой функционал: модуль обеспечивает выполнение задач обработки данных с возможностью оптимизации нагрузки и встроенным механизмом самовосстановления при сбоях.
Хранилище данных — хранит основные BI-таблицы и наборы данных.
Репозиторий — сохраняет метаданные сервера, включая пользователей, права доступа и расписание обновлений. Обеспечивает консистентность при работе в кластере.
Сервер состояний (Redis) — следит за состоянием всех узлов BI-проекта, фиксирует ошибки и управляет распределением задач.
Файловый сервер — централизованное хранилище файлов проекта (шаблоны, драйверы, резервные копии и т.д.) для обеспечения доступа всех узлов BI.
Сервис логов — записывает действия пользователей и системные события. Позволяет анализировать производительность, поведение пользователей и отслеживать события.
1.2 Состав архитектуры#
Подключение к источникам#
Подключение к источникам данных осуществляется по протоколу JDBC. Система предоставляет набор преднастроенных коннекторов, а также позволяет использовать сторонние JDBC-драйверы.
Управление процессами обработки данных#
SiglaVision позволяет работать с источниками данных в двух режимах: режим прямых запросов и режим экстракта.
В режиме прямых запросов BI-система выполняет push down вычислений в систему-источник данных, перекладывая нагрузку на СУБД. BI только визуализирует результат выполненных вычислений. Этот режим предпочтителен для работы с большим объёмом данных и специализированными СУБД: MPP, колоночные, in-memory.
В режиме экстракта данные выгружаются в BI-систему. После загрузки данных обращений к системе-источнику не происходит, нагрузка на источник значительно снижается. Режим предпочтителен для медленных источников данных, а также для источников, данные которых требуют дополнительной обработки и подготовки.
SiglaVision предоставляет минималистичный, простой в освоении ETL, который позволяет трансформировать и агрегировать загруженные в платформу данные. Доступны типовые операции: join, union, filter, aggregate, добавление новых колонок и др.
Хранилище метаданных#
Для хранения метаданных SiglaVision может использовать различные СУБД, в том числе MySQL и PostgreSQL. Репозиторий используется в системе для хранения данных о пользователях, правах доступа, метаданных объектов системы.
Презентационный каталог и интерфейс пользователя#
Доступ в SiglaVision осуществляется через веб-интерфейс. Для доступа пользователей поддерживаются современные браузеры, в том числе Яндекс Браузер. Для просмотра дашбордов и их разработки не требуется установка дополнительного ПО. Разработка форматированных отчётов, которые поставляются как отдельный модуль, требует установки толстого клиента.
Интерактивные формы#
SiglaVision предоставляет широкие возможности по визуализации данных. Каждый элемент визуализации может быть гибко настроен и зависеть от данных; различные графики могут отображаться на одном виджете.
Администрирование и настройка#
Ключевые настройки ПО вынесены в раздел администрирования ПО. В данном разделе выполняются основные настройки ролевой модели, параметры аутентификации, логирования и пр.
В зависимости от используемой версии часть настроек развертывания системы может быть вынесена в специализированный модуль SiglaVision Monitor, который отвечает за развертывание компонентов решения, их мониторинг, бэкапирование и обновление.
2. Требования к программному обеспечению#
Решение может быть развернуто как на физических серверах, так и на виртуальных машинах. Решение также поддерживает развертывание в облаке.
2.1 Совместимое ПО и инфраструктура#
| Категория | Требования |
|---|---|
| Операционная система | OC Windows, Linux, поддерживающие JDK 1.8. В том числе поддерживаются отечественные OC Astra Linux, Ред ОС. |
| Сервер приложений | Серверы веб-приложений, такие как Tomcat, Wildfly (JBoss) и др. |
| СУБД | Поддерживаемые СУБД: Mysql, Oracle. СУБД PostgreSQL |
| Файловый сервер | Поддерживаемые файловые серверы: S3, SFTP. |
| Сервер состояний | Поддерживаемые конфигурации: Redis, Redis Cluster. |
| Балансировщики | Поддерживаемые серверы: Nginx |
2.2 Рекомендуемый сайзинг для компонент#
Компоненты системы могут быть установлены в виде единой инсталляции (standalone), так и в виде набора отдельных компонентов, которые запускаются SiglaVision Monitor. Рекомендуемый сайзинг по компонентам приведён в таблице ниже.
Несколько компонентов могут быть запущены вместе на одном сервере или виртуальной машине; в этом случае необходимый сайзинг суммируется.
| Компонент | CPU | RAM | Дисковое пространство |
|---|---|---|---|
| Web модуль BI | 16 ядер | 1/4 Памяти сервера Максимум: 64 GB |
100 GB |
| Вычислительный узел | 16 ядер | Память сервера / 2 / Кол-во вычислительных узлов Максимум: 64 GB |
100 GB |
| Мастер узел | 4 ядра | 1/8 Памяти сервера Максимум: 64 GB |
100 GB |
| Хранилище данных | 2 ядра | 1/8 Памяти сервера Максимум: 64 GB |
200 GB |
| Сервис логов | 1 ядро | / | 50 GB |
| Балансировщик | 1 ядро | / | / |
| Репозиторий | 2 ядра | / | 50 GB |
| Сервер состояний | 1 ядро | / | / |
| Файловый сервер | 1 ядро | / | 100 GB |
2.3 Сайзинг по сценариям использования#
Далее сайзинг решения рассчитывается исходя из количества узлов Web-модулей BI и вычислительных узлов. Инфраструктурные модули не требуют значительного увеличения мощности при росте числа пользователей; их сайзинг можно считать фиксированным.
В таблицах ниже приведены примеры расчёта сайзинга для различных сценариев. Указаны ориентиры для инсталляций до 3000 пользователей. Система также позволяет масштабироваться на большее число пользователей, но сайзинг в большей степени начинает зависеть от сценария использования. В соответствии с таблицами ниже предложенный в приложении сайзинг рассчитан примерно на 1000–3000 пользователей в зависимости от сценария.
Сценарий прямого подключения к данным#
Данные получаются напрямую с источников. В этом сценарии требуется большее число Web-узлов BI-системы, отвечающих за рендеринг отчётов. Основные вычисления выполняются на стороне СУБД источника данных.
| Активн. польз. в день | Онлайн польз. в час | Конкурент. польз. | Конкурент. редакторов | Вычисл./сек (источник) | Рекоменд. конфигурация | Миним. конфигурация |
|---|---|---|---|---|---|---|
| 500 | <100 | <20 | <20 | <10 | Количество нод: 1 CPU: 8 ядер, 16 потоков, 2.5 GHz RAM: 24 GB |
Количество нод: 1 CPU: 4 ядер, 8 потоков, 2.5 GHz RAM: 12 GB |
| 2000 | 100~1000 | 40~90 | 10~40 | 10~20 | Количество нод: 2 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 32 GB |
Количество нод: 1 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 24 GB |
| 3000 | 600~1500 | 60~130 | 30~60 | ≥30 | Количество нод: 3 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 24 GB |
Количество нод: 2 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 48 GB |
Сценарий Self-Service#
Большое число активных пользователей, которые используют отчёты и самостоятельно создают новые. Потребность в ресурсах растёт быстрее: разработка отчётов более ресурсоёмкая, чем просмотр готового отчёта.
| Кол-во онлайн пользователей в час | Кол-во конкурентных пользователей | Кол-во конкурентных пользователей редакторов | Рекомендованная конфигурация | Минимальная конфигурация |
|---|---|---|---|---|
| < 100 | < 20 | < 20 | Количество нод: 1 CPU: 8 ядер, 16 потоков, 2.5 GHz RAM: 32 GB |
Количество нод: 1 CPU: 8 ядер, 16 потоков, 2.5 GHz RAM: 32 GB |
| 300~1000 | 20~70 | 10~40 | Количество нод: 2 CPU: 8 ядер, 16 потоков, 2.5 GHz RAM: 32 GB |
Количество нод: 1 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 64 GB |
| 600~2000 | 40~120 | 30~60 | Количество нод: 2 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 64 GB |
Количество нод: 2 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 48 GB |
| 900~3000 | 50~160 | 50~80 | Количество нод: 3 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 64 GB |
Количество нод: 3 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 48 GB |
Сценарий выгрузки данных источника#
Данные в основном выгружаются из систем-источников и загружаются в BI-систему. Пользователи активно используют отчёты и создают новые. Нагрузка выше: нужно обслуживать запросы пользователей и выполнять задания по обновлению данных.
| Кол-во онлайн пользователей за 5 минут | Кол-во конкурентных пользователей | Рекомендованная конфигурация | Минимальная конфигурация |
|---|---|---|---|
| ~400 | 40 | Количество нод: 2 CPU: 8 ядер, 16 потоков, 2.5 GHz RAM: 32 GB |
Количество нод: 1 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 64 GB |
| 400~800 | 80 | Количество нод: 2 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 64 GB |
Количество нод: 2 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 48 GB |
| 800~1100 | 110 | Количество нод: 3 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 64 GB |
Количество нод: 3 CPU: 16 ядер, 32 потока, 2.5 GHz RAM: 48 GB |
3. Рекомендации по достижению лучших результатов при реализации проекта#
Для успешной реализации проекта рекомендуется на старте учесть следующие моменты (желательно закрепить их в проектной документации):
- рекомендации по визуализации данных и разработке отчётов в корпоративных стилях, чтобы пользовательские отчёты были выполнены в едином стиле;
- рекомендации по разработке отчётов с оптимальной производительностью.