КиТ Analytics Platform - это мощная платформа для визуализации данных, разработанная для создания интерактивных дашбордов и анализа больших объемов данных. Ее архитектура построена на микросервисной модели, что обеспечивает масштабируемость и гибкость.
Основные компоненты платформы и их взаимодействие:
ㅤ
Frontend (ReactJS):
- Dashboard Editor: Интерфейс для создания и редактирования дашбордов, включая добавление чартов, фильтров и элементов управления.
- Chart Editor: Интерфейс для создания и редактирования отдельных чартов, выбора типа визуализации, настройки параметров и добавления фильтров.
- Explore Interface: Интерфейс для интерактивного исследования данных, создания запросов к базе данных и визуализации результатов.
- User Interface (UI): Общий интерфейс пользователя для навигации, управления пользователями и настройками.
⠀
Backend (Python/Flask): Основной сервер приложений, отвечающий за обработку запросов от фронтенда и взаимодействие с другими компонентами.
- API Gateway: Точка входа для всех запросов от фронтенда, маршрутизирует их к соответствующим микросервисам.
- Authentication Service: Управление аутентификацией и авторизацией пользователей, интеграция с различными провайдерами (LDAP, OAuth2).
- Authorization Service: Определение прав доступа пользователей к данным и функциям.
- Datasource Management Service: Управление подключениями к базам данных, определение схем и таблиц.
- SQL Lab Service: Предоставляет интерфейс для написания и выполнения SQL-запросов к базам данных.
- Chart Management Service: Управление созданием, редактированием и хранением информации о чартах.
- Dashboard Management Service: Управление созданием, редактированием и хранением информации о дашбордах.
- Cache Service: Кэширование результатов запросов для повышения производительности.
- Scheduler Service: Планирование и выполнение задач, таких как обновление данных или отправка уведомлений.
- Alerting Service: Настройка и выполнение правил оповещения на основе данных.
- Metadata Service: Хранение метаданных о дашбордах, чартах, источниках данных и пользователях.
⠀
Database (PostgreSQL): Основная база данных для хранения метаданных Superset, включая информацию о пользователях, источниках данных, чартах и дашбордах.
⠀
Message Queue (Redis/RabbitMQ): Используется для асинхронной обработки задач, таких как обновление данных и отправка уведомлений.
⠀
Celery (Distributed Task Queue): Используется для выполнения задач в фоновом режиме, таких как обновление данных и отправка уведомлений.
ㅤ⠀
Взаимодействие компонентов:
Фронтенд взаимодействует с бэкендом через API Gateway. Бэкенд использует различные микросервисы для обработки запросов и взаимодействия с базами данных. Асинхронные задачи выполняются через Message Queue и Celery.
⠀
Методы и средства разработки программного обеспечения:
- Языки программирования: Python 3.7+, JavaScript (ES6+), SQL
- Фреймворки: Flask, ReactJS, Celery, SQLAlchemy
- Инструменты разработки: VS Code, PyCharm, Git
- Система контроля версий: Git (GitHub/GitLab)
- Методология разработки: Agile (Scrum/Kanban)
- Инструменты тестирования: Pytest, Selenium
- Контейнеризация: Docker
- Оркестрация контейнеров: Kubernetes (опционально)
- CI/CD: Jenkins, GitLab CI/CD