Архитектура платформы
Поставка и установка
Платформа Visiology поставляется в виде Docker-образов.
В стандартную поставку входят:
скрипты развертывания в виде кластера Docker Swarm;
Helm-чарты для развертывания в Kubernetes.
По умолчанию в скрипты включены все компоненты платформы, включая сторонние сервисы (PostgreSQL, MinIO, Keycloak, стек наблюдаемости, ClickHouse).
На этапе внедрения сторонние компоненты могут быть развернуты отдельно. В организациях, где уже используются корпоративные сервисы общего назначения (например, PostgreSQL с настроенной репликацией, резервным копированием и мониторингом либо S3-совместимое объектное хранилище), допускается их повторное использование.
Высокоуровневая архитектура платформы
Платформа Visiology построена по микросервисной архитектуре, где все компоненты логически разделены по функциональным слоям. Ядром платформы является высокопроизводительное хранилище ДанКо на базе ClickHouse с собственным сервисом Formula Engine, обеспечивающим обработку аналитических запросов на языке DAX и управление Tabular Object Model (TOM).
Управление данными и интеграцию реализует сервис DMS, отвечающий за загрузку из внешних источников и настройку ETL-процессов. Визуальный слой включает сервисы для создания и отображения дашбордов (Dashboard Service, Designer, Viewer). Безопасность и разграничение доступа обеспечиваются связкой Keycloak и Workspace Service. Платформа также включает сервис ИИ-агентов Visiology Cortex, инструмент сбора данных Smart Forms, объектное хранилище MinIO и полноценный стек мониторинга (Observability) на базе Grafana, Loki, Prometheus и Tempo.
Ниже представлена высокоуровневая архитектура платформы Visiology с кратким описанием ее основных компонентов.
В состав платформы входят следующие компоненты:
ДанКо
ДанКо – высокопроизводительное хранилище данных, реализованное на основе ClickHouse. Это логическое объединение нескольких компонентов:
Formula Engine – бэкенд-сервис, реализующий Tabular Object Model c помощью ClickHouse. Основные функции:
хранение и управление TOM-моделью (Tabular Object Model);
хранение больших объемов данных;
обработка аналитических запросов на языке DAX;
построение оптимальных структур хранения и индексов для более быстрой обработки DAX-запросов;
кэширование DAX-запросов;
хранение прав доступа к наборам данных.
MinIO – простое объектное хранилище, поддерживающее S3 протокол, репликацию, масштабирование, отказоустойчивость и аутентификацию. В данный момент там хранятся временные Excel- и CSV-файлы для загрузки данных в ClickHouse.
Data Management Service (DMS) – бэкенд-сервис, предоставляющий доступ к следующим функциональным возможностям:
хранение, чтение и редактирование ER-диаграммы для TOM (Tabular Object Model);
загрузка данных из различных источников с настройкой маппинга (автоматическая и по запросу):
CSV;
JDBC-совместимые базы данных;
Excel.
Настройка расписаний автоматической загрузки данных.
JDBC Bridge – работает как простой прокси-сервер без сохранения состояния, который передает SQL-запросы из ClickHouse на внешние СУБД, поддерживающие JDBC-драйвер. Этот прокси-сервер позволяет ClickHouse подключаться к источникам данных с поддержкой JDBC для загрузки данных.
Более подробную информацию см. в разделе Архитектура ДанКо.
Dashboard Service
Dashboard Service – это REST API-сервис, который позволяет создавать и публиковать интерактивные отчеты (дашборды). Данный сервис предоставляет следующие возможности:
получение, редактирование и хранение дашбордов;
формирование DAX-запросов к Formula Engine;
экспорт данных в формате Excel и CSV;
взаимодействие с пользовательскими виджетами, темами, пользовательскими JavaScript-скриптами, картинками;
формирование регламентных отчетов.
Сервис хранит все дашборды, темы и пользовательские виджеты в общей базе данных PostgreSQL. Является сервисом без сохранения состояния и может быть развернут в нескольких репликах.
Аутентификация и рабочие пространства
Компоненты этой категории отвечают за аутентификацию, авторизацию и разграничение доступа к рабочим пространствам.
Workspace Service – REST API-сервис, который позволяет взаимодействовать с рабочими областями и отвечает за выполнение следующих операций:
создание, изменение и удаление рабочих областей;
сопоставление ролей пользователей с пользователями или группами пользователей, зарегистрированными в Keycloak, а также хранение информации об этом. Каждый сервис, перед обработкой запроса на доступ, проверяет права пользователя через запрос к Workspace Service;
поддержка четырех ролей рабочей области: Admin, Member, Contributor, Viewer;
предоставление маппинга ролей всем сервисам платформы перед обработкой запросов к объектам доступа (поддерживаются четыре роли рабочей области: Admin, Member, Contributor, Viewer);
предоставление адаптера для Keycloak, реализующего дополнительные функции, отсутствующие в стандартной поставке (например, регистронезависимый поиск по названиям групп пользователей);
проверку лицензии на всю платформу.
Сервис хранит метаданные в общей базе данных PostgreSQL.
Keycloak
Keycloak – сервис авторизации с веб-интерфейсом, который предоставляет следующие функции:
создание, редактирование и удаление пользователей и групп для Visiology 3.x;
хранение глобальной роли GlobalAdmin в Keycloak и ее сопоставление с пользователями (глобальными администраторами);
интеграция с внешними системами авторизации, включая OpenID Connect, LDAP(S), Kerberos и SAML;
поддержка протокола OpenID Connect для аутентификации (все описанные сервисы используют этот протокол для аутентификации);
предоставление графического интерфейса для настройки Keycloak, включая все вышеупомянутые функциональные возможности.
Keycloak подключается к общей базе данных PostgreSQL.
Мониторинг и трейсинг
Подсистема мониторинга и анализа производительности включает в себя несколько компонентов для сбора, хранения и анализа логов, трассировок и метрик:
Grafana – инструмент для просмотра и анализа логов, трассировок и метрик, который подключается к Loki, Prometheus, Tempo и проходит авторизацию через Keycloak. Доступ к Grafana имеют только пользователи с глобальной ролью GlobalAdmin;
Loki – база данных для хранения логов;
Prometheus - база данных для хранения метрик;
Tempo - база данных для хранения трассировок;
Otelcol - сервис для сбора логов в режиме PUSH (все сервисы отправляют информацию в Otelcol) и последующей отправки этих логов, метрик и трассировок в Loki, Prometheus и Tempo.
Хранилище метаданных (PostgreSQL)
PostgreSQL используется в качестве единого хранилища метаданных платформы и выполняет следующие функции:
хранение всех метаданных платформы (дашборды, TOM, рассылки, описания загрузчиков, учетные данные подключений к источникам данных, рабочие области);
хранение данных Keycloak.
Для обеспечения отказоустойчивости PostgreSQL может быть развернут в кластерной конфигурации с использованием стандартных и широко распространенных систем обеспечения отказоустойчивости (например, Patroni или операторов Kubernetes).
Visiology Designer и Portal
Visiology Designer и Portal – SPA-приложения пользовательского интерфейса платформы.
Характеристики:
полностью stateless-архитектура;
содержат весь пользовательский интерфейс платформы Visiology.
Visiology Designer - графический дизайнер, который работает в интернет-браузере (SPA-приложение). Предоставляет следующие возможности:
редактирование и просмотр существующих дашбордов;
редактирование и просмотр рабочих областей;
создание, удаление и просмотр списка наборов данных;
редактирование набора данных;
редактирование модели данных (ER-диаграммы);
загрузка данных и настройка автоматического обновления данных.
Dashboard Viewer
Данный сервис отвечает за визуализацию виджетов на экране и обеспечивает выполнение следующих операций:
получение данных для виджетов;
редактирование исходного кода виджета;
отображение виджетов на экране с учетом всех настроек;
управление логикой работы с дашбордами и темами, включая добавление и удаление виджетов, изменение их визуальных свойств и фона, применение тем, добавление и удаление листов и т. д.
Дополнительные компоненты
Visiology Cortex – это сервис искусственного интеллекта, предназначенный для расширения возможностей пользователей платформы. Сервис объединяет в себе специализированных ИИ-агентов, которые автоматизируют сложные задачи, ускоряют анализ данных, снижают нагрузку на аналитиков и позволяют бизнес-пользователям быстро получать точные ответы на интересующие вопросы. Сервис помогает пользователю в режиме чата:
получать быстрые и точные ответы на вопросы по данным и метрикам дашбордов, опубликованных на портале платформы;
без труда формировать комплексные меры для анализа и визуализации данных.
Сервис глубоко интегрирован в платформу Visiology, все действия выполняются от имени пользователя с учетом его прав доступа, что гарантирует прозрачность и безопасность работы.
ETL DB – база данных, которая используется в процессе извлечения, преобразования и загрузки данных (ETL-процессов). Служит промежуточным хранилищем данных для последующего использования на платформе Visiology.
Smart Forms – инструмент, предназначенный для упрощения процесса сбора данных и отчетности в организациях. Позволяет создавать и настраивать веб-формы для сбора информации, которая затем может быть перенесена в аналитическую платформу Visiology.
edge – сервис для переноса данных между стендами.
onec-connector – сервис для загрузки данных из приложения «1C:Предприятие».
onec-connector-db – база данных для хранения данных, полученных с помощью
onec-connector.
Для работы платформы используется веб-сервер nginx.
Смотрите также
Развёртывание платформы
Системные требования
Термины и определения
На этой странице
Время чтения: 2 мин.
Нужна дополнительная помощь?