Архитектура
Общая структура системы
Primo ART — модульная распределённая система. Пользовательский интерфейс, серверная часть, агенты и хранилища данных развёртываются как независимые контейнеры и взаимодействуют через общий API-сервер.
Платформа работает в Kubernetes и масштабируется на уровне отдельных компонентов.
Серверная архитектура
Серверная часть построена на микросервисной архитектуре: отдельные Python-сервисы отвечают за обработку сценариев, управление объектами системы, сбор метрик и формирование событий. API-сервер служит единым входным пунктом для агентов и веб-клиента, агрегирует данные выполнения и распределяет их по хранилищам.
Хранилища данных разделены по типам нагрузки:
-
PostgreSQL — основная база с метаданными, конфигурациями и результатами транзакций.
-
OpenSearch — хранилище журналов, событий и запросов анализа.
-
MinIO — файловые объекты, включая скриншоты и бинарные данные.
Обмен между сервисами происходит по HTTPS, доступ контролируется через токены.
Веб-интерфейс
Пользовательский интерфейс реализован на React и TypeScript и работает поверх REST API. Через веб-портал выполняются операции по управлению сценариями, просмотром результатов и настройкой интеграций. Клиентская часть не содержит бизнес-логики: весь функционал обрабатывается сервером, а UI не взаимодействует напрямую с агентами и хранилищами данных.
Агенты мониторинга
Агенты являются автономными исполняющими модулями, которые получают задания, исполняют сценарии и отправляют результаты выполнения через API. Агенты не взаимодействуют друг с другом и не имеют доступа к внутренним сервисам.
| Тип агента | Назначение |
|---|---|
| STM-агенты | STM-агенты отвечают за синтетический мониторинг. Они эмулируют действия пользователя: ввод текста, переходы между страницами, работу с API. Каждый шаг сценария измеряется и фиксируется как набор таймингов. Существуют два вида STM-агентов: • STM Lite — работает внутри контейнера в headless-режиме и подходит для лёгких сценариев. • STM Primo — запускается в Windows или Linux и поддерживает RFA-движок для сложных сценариев. |
| Lite-агенты | Lite-агенты предназначены для выполнения отдельных типов сценариев (web, API, desktop). Они получают задания от Оркестратора, исполняют шаги и отправляют результаты в основной API-сервер. |
| EUEM-агенты | EUEM-агенты находятся в разработке и предназначены для сбора фактического пользовательского опыта. Они запускаются на рабочих станциях пользователей и фиксируют реальное поведение систем, время отклика интерфейса и этапы бизнес-процессов. Это обеспечивает модель Real User Monitoring, дополняющую синтетические сценарии STM. |
Потоки данных
Рабочий цикл системы организован последовательно. Оркестратор назначает агенту задачу, после чего агент исполняет сценарий и формирует отчёт со статусами шагов и временными метриками.
Полученные данные передаются в API-сервер, который распределяет их по соответствующим хранилищам. Веб-интерфейс запрашивает агрегированные результаты только через API и не обращается к базам данных напрямую.
Развёртывание и поставка
Каждый компонент системы поставляется в виде отдельного Docker-образа. Развёртывание выполняется через Helm-чарт, который включает серверные модули, веб-интерфейс, хранилища данных и вспомогательные сервисы.
Агенты распространяются отдельно и масштабируются независимо от серверного слоя. Благодаря этому количество агентов можно увеличивать без изменения конфигурации серверных компонентов, поддерживая рост нагрузки за счёт горизонтального масштабирования исполнительных узлов.