Перейти к содержанию

Раздел 3. Описание постановки задач

Раздел описывает архитектуру решения BOX5-DIT-MGSN на уровне постановки задач: состав подсистем, основные функции, межсервисные и внешние взаимодействия, границы ответственности и ограничения продуктового контура. Детальные схемы вынесены в приложения, чтобы основной раздел оставался читаемым и не дублировал полный реестр контейнеров.

Связанные схемы и реестры приведены в Приложении В, Приложении А, Приложении Б и Приложении Г.

3.1. Архитектура верхнего уровня

BOX5-DIT-MGSN построена как модульное Docker Compose-решение. На верхнем уровне система разделена на пользовательский контур, контур статистики и событий, контур видеоаналитики и инференса, интеграционный контур с системами заказчика, событийную шину, хранилища данных, наблюдаемость и песочницу подготовки NRI-сценариев.

Основные архитектурные принципы:

  • пользователи работают через единый web-вход ui-nginx и API-шлюз ui-rest-to-gprc;
  • синхронные пользовательские операции выполняются через HTTP/REST, GraphQL, WebSocket и HTTP/gRPC вызовы внутренних сервисов;
  • асинхронный обмен событиями, командами, audit-записями и статусами выполняет Kafka-контур kafka-domain;
  • домены хранят собственное состояние в выделенных PostgreSQL, Redis и ClickHouse sidecar-хранилищах;
  • медиафайлы, изображения, отчётные файлы и временные объекты размещаются в MinIO/DTS и файловых каталогах контура;
  • интеграционный контур severstal обеспечивает обмен с ПК-КОТ, CSVN/VMS и АСУ ТП;
  • разработка и проверка NRI-сценариев выполняются в node-red-sandbox перед переносом сценариев в продуктовый контур.

Граница решения проходит по опубликованным входам решения, внешним системам и промышленным источникам данных. Внутри границы находятся Docker Compose-домены, их внутренние сети, sidecar-хранилища и служебные компоненты. Внешние системы и источники данных перечислены в Приложении В.

Схема функциональной структуры верхнего уровня (С2), роли пользователей, источники данных и ключевые потоки приведены в Приложении А.

3.2. Архитектура системы и подсистем

Таблица является достаточной для ПД как укрупнённая архитектурная трассировка: она связывает функциональные подсистемы с ключевыми контейнерами, но не дублирует полный реестр сервисов, приведённый в Приложении Г.

Подсистема Назначение Основные функции Входящие и исходящие взаимодействия Используемые сервисы Используемые данные Зависимости и ограничения
Пользовательский контур Предоставляет пользователям web-интерфейс и единую browser-facing API поверхность. Загрузка SPA, проксирование /api/*, GraphQL и WebSocket, маршрутизация в домены statistics, inference, severstal, файловые и sandbox-маршруты. Входящие: HTTP/HTTPS от браузера. Исходящие: HTTP/gRPC/REST к backend-доменам, Kafka audit/ws, S3/MinIO, ClickHouse для отдельных analytics-маршрутов. ui-nginx, ui-react, ui-rest-to-gprc; как проксируемые upstream используются ds-minio и nr-sbx-nginx. UI-конфигурация, JWT, события интерфейса, файлы и медиа по API. Критичен для интерактивной работы. Отказ ui-nginx или ui-rest-to-gprc блокирует web UI и большинство API-действий.
Авторизация и доступ Управляет входом пользователей, локальными JWT, ролями и прикладными доступами. Локальный вход, Keycloak/OIDC-интеграция, управление пользователями, группами доступа и правами на камеры/объекты. Входящие: REST/gRPC через ui-rest-to-gprc. Исходящие: OIDC к Keycloak, SMTP для сброса пароля, Kafka для privilege/audit-событий, PostgreSQL/Redis. st-auth, st-access, st-auth-report-pdf-xlsx-generator; sidecar-хранилища st-auth-postgres, st-auth-redis, st-access-postgres; backup-sidecar для PostgreSQL. Пользователи, роли, группы доступа, история входов, privileges. Параметры Keycloak/OpenID Connect задаются в эксплуатационной конфигурации; локальные JWT выпускает st-auth.
Статистика и события Хранит жизненный цикл событий, нарушения, отчёты и аудит. Приём событий инференса, хранение событий и статусов, отчёты PDF/XLSX/CSV, audit history и комментарии к событиям. Входящие: Kafka events/audit, REST/gRPC от gateway. Исходящие: Kafka, PostgreSQL, ClickHouse, MinIO/DTS, SMTP/email. st-camera-storage, st-event-storage, st-event-statistic, st-audit, st-report-email, st-report-pdf-xlsx-generator, st-comments, st-virt-cam-video-upload; доменные PostgreSQL, ClickHouse и Redis sidecar. События, нарушения, статусы, audit-записи, отчёты, изображения и видеофрагменты. Канонический audit хранится в st-audit; отчётные сервисы зависят от доступности событийных хранилищ и файловых объектов.
Видеоаналитика и инференс Выполняет получение видео, подготовку кадров, запуск NRI-сценариев и публикацию событий. Работа с RTSP/live-потоками и виртуальными камерами, медиасервер, балансировка камер, NRI-инференс, управление изображениями, видеофрагментами, ресурсами и flows. Входящие: RTSP от камер, HTTP/MP4 виртуальных камер, REST/gRPC от gateway, flow/model updates. Исходящие: Kafka events/heartbeats, MinIO/S3, PostgreSQL/Redis. inf-mediaserver, inf-load-balancer (реализация load-balancer2), inf-nri-inference, inf-monitoring, inf-image-storage, inf-report-video-extractor, inf-flows-manager, inf-vl-resource-manager, mm-conversion, yolo-conversion, inf-pushgateway, inf-domain-gateway, inf-coturn, inf-guardant-control-center; PostgreSQL/Redis sidecar. Потоки камер, кадры, изображения, видеофрагменты, версии flows, heartbeat-состояния. Рабочий runtime использует filesystem и vlflow; доступность GPU и медиасервера критична для online-инференса.
Интеграционный контур с системами заказчика Обеспечивает обмен с промышленными и справочными системами заказчика и хранит предметные справочники сценариев. Интеграция с ПК-КОТ, CSVN/VMS, АСУ ТП; синхронизация камер и оргструктуры; хранение сценариев, ассетов, запусков, реестра моделей и переводов. Входящие: customer-domain API от gateway, данные ПК-КОТ, CSVN/VMS и АСУ ТП. Исходящие: HTTP push статусов в ПК-КОТ, Kafka в основной контур, PostgreSQL/Redis/MinIO. svr-severstal-integration, svr-postgres-pk-kot, svr-severstal-org-sync, svr-severstal-nifi-integration, svr-asutp, svr-asutp-kafka, svr-asutp-schema-registry, svr-asutp-redis, svr-scenario-storage, svr-lite-scenario-storage, svr-asset-storage, svr-launch-storage, svr-models-registry, svr-translations-store, svr-security-notice; доменные PostgreSQL sidecar. Справочники нарушений и зон, топология камер, архивные видео, ASUTP-сигналы, сценарии, ассеты, запуски. CSVN/VMS-интеграция поддерживает локальный connector VIRTUAL; реальные Cisco/Milestone/Macroscop endpoints применяются при настройке соответствующих подключений.
Событийная шина Обеспечивает асинхронный обмен между доменами. Kafka topics для событий инференса, audit, команд, статусов, heartbeat, синхронизации справочников и уведомлений. Входящие и исходящие Kafka-клиенты из statistics, inference, severstal, gateway и отдельных сервисов. inf-kafka; выделенные брокеры svr-asutp-kafka и nr-sbx-kafka используются в своих контурах и не заменяют основную шину. Событийные protobuf/JSON payloads, audit-сообщения, статусы и команды. Single-node Kafka без внешней публикации порта; доступна внутри bx_default.
Хранилища данных Предоставляет доменным сервисам постоянные, аналитические и файловые хранилища. PostgreSQL для транзакционных данных, ClickHouse для аналитики, Redis для кэшей/очередей/locks, MinIO/DTS для файлов и медиа. Входящие: SQL/Redis/S3/HTTP от доменных сервисов. Исходящие: ответы клиентам в рамках внутренних соединений. ds-minio, ds-data-temporary-storage, ds-data-temporary-storage-redis, ds-domain-gateway; доменные PostgreSQL, ClickHouse и Redis sidecar сервисов statistics, inference, severstal и node-red-sandbox. Пользователи, камеры, события, отчёты, сценарии, модели, файлы, изображения, видео. Большинство хранилищ доступны только внутри Docker-сети. Прямой MinIO и ClickHouse-порт опубликованы как технические входы контура, не как пользовательский API.
Наблюдаемость Обеспечивает сбор метрик и логов контура. Prometheus scraping /metrics, Loki/Docker logs. Входящие: /metrics от сервисов и Docker log driver. Исходящие: эксплуатационные запросы к метрикам и журналам. log-prometheus, log-loki; источники данных - /metrics endpoints сервисов и Docker Loki log driver. Метрики и логи. Доступность Prometheus и Loki критична для эксплуатационного контроля метрик и логов.
Песочница Node-RED Изолирует разработку, проверку и перенос NRI-сценариев. UI sandbox, backend, Node-RED VL, Jupyter/NRI, Celery workers, Flower, converters, sandbox Kafka/Redis и общие volumes. Входящие: /sandbox/ через ui-nginx, прямой технический Jupyter-порт. Исходящие: Box API для публикации flows, MinIO, sandbox Kafka/Redis, файловые volumes. nr-sbx-nginx, nr-sbx-frontend, nr-sbx-backend, nr-sbx-node-red-vl, nr-sbx-nri, nr-sbx-celery, nr-sbx-flower, nr-sbx-mm-conversion, nr-sbx-yolo-conversion, nr-sbx-kafka, nr-sbx-redis. Flows, модели, configs, результаты пробного запуска, временные артефакты. Используется для подготовки сценариев перед переносом в продуктовый контур.

3.3. Сервисная архитектура

Сервисная архитектура построена как набор Docker Compose-доменов целевого контура. Основная сеть решения - bx_default; песочница сценариев использует отдельную сеть node-red-sandbox.

Compose-домен Роль в архитектуре Ключевые сервисы Основные соединения
ui-rest Edge и API gateway. ui-nginx, ui-react, ui-rest-to-gprc. HTTP/HTTPS от пользователей; REST/GraphQL/WS к gateway; HTTP/gRPC/REST к backend-доменам; S3 proxy; /sandbox/ proxy.
statistics Пользователи, доступы, камеры, события, отчёты и аудит. st-auth, st-access, st-camera-storage, st-event-storage, st-event-statistic, st-audit, st-report-*, st-report-email, st-comments. HTTP/gRPC от gateway; Kafka; PostgreSQL; ClickHouse; Redis; MinIO; SMTP.
inference Рабочий видеоконтур и NRI-инференс. inf-mediaserver, inf-load-balancer (load-balancer2), inf-nri-inference, inf-monitoring, inf-image-storage, inf-report-video-extractor, converters, Guardant, Coturn. RTSP/HTTP media input; HTTP/gRPC от gateway; Kafka events/heartbeat; MinIO; PostgreSQL/Redis; GPU runtime.
extended-inference Управление версиями flows и ресурсами инференса. inf-flows-manager, inf-vl-resource-manager, Redis sidecar. HTTP/gRPC от gateway; связи с inf-nri-inference; PostgreSQL/Redis; модельные и resource-состояния.
severstal Интеграции с системами заказчика и предметные справочники. svr-severstal-integration, svr-asutp, svr-asutp-kafka, svr-asutp-schema-registry, svr-severstal-org-sync, svr-scenario-storage, svr-lite-scenario-storage, svr-asset-storage, svr-launch-storage, svr-models-registry, svr-translations-store, svr-postgres-pk-kot. Customer-domain API; ПК-КОТ PostgreSQL/HTTP; CSVN/VMS API; АСУ ТП Kafka/Avro; основная Kafka; PostgreSQL/Redis/MinIO.
kafka-domain Основная событийная шина решения. inf-kafka. Kafka внутри bx_default.
data-storage Файловые и объектные данные. ds-minio, ds-data-temporary-storage, ds-domain-gateway, Redis sidecar. S3 API, HTTP/DTS, nginx proxy /api/s3*, доменные файловые операции.
elk-log Наблюдаемость. log-prometheus, log-loki. Prometheus /metrics, Docker Loki driver, технический Loki API.
node-red-sandbox Песочница разработки сценариев. nr-sbx-nginx, frontend, backend, node-red-vl, nr-sbx-nri, Celery, Flower, converters, sandbox Kafka/Redis. /sandbox/ через ui-nginx, отдельная сеть node-red-sandbox, shared volumes, Box API при публикации flows.

Детальный реестр сервисов, их входящих и исходящих вызовов, хранилищ, конфигурации, мониторинга и известных ограничений приведён в Приложении Г.

3.4. Взаимодействие со смежными системами

Смежные системы и источники данных используются только через выделенные точки интеграции.

Смежная система / источник Узел взаимодействия BOX5-DIT-MGSN Протоколы Данные и назначение Статус применения
IP-камеры inf-mediaserver, inf-load-balancer, inf-nri-inference RTSP; downstream HLS/WebRTC внутри BOX5-DIT-MGSN Live-видеопотоки для online-инференса и формирования событий. Применяется как базовый источник видео.
CSVN/VMS Cisco, Milestone, Macroscop svr-severstal-integration, svr-severstal-org-sync, st-camera-storage, st-virt-cam-video-upload Cisco/Milestone SOAP/WSDL; Macroscop HTTP; локальный connector VIRTUAL Топология камер, обязательные камеры, архивная информация и архивные видеофрагменты. Интеграция предусмотрена; поддерживается локальный connector VIRTUAL.
Загруженные видеозаписи / виртуальные камеры ui-nginx, ui-rest-to-gprc, st-virt-cam-video-upload, inf-mediaserver HTTP multipart upload, HTTP/MP4, gRPC Анализ видеофайлов без постоянного live-потока с физической камеры. Применяется для проверки и анализа записей.
ПК-КОТ svr-postgres-pk-kot, svr-severstal-integration, svr-severstal-org-sync PostgreSQL read-only, HTTP push Справочники нарушений, зон, камер и передача подтверждённых событий/статусов. Применяется; источник и push URL задаются эксплуатационной конфигурацией.
АСУ ТП svr-asutp, svr-asutp-kafka, svr-asutp-schema-registry Kafka, Avro, Schema Registry HTTP API _meta и _data сигналы, расчёт состояний ASUTP-юнитов, публикация результата в основной контур BOX5-DIT-MGSN. Применяется; collector включён.
Keycloak / OpenID Connect Браузер пользователя, st-auth, ui-rest-to-gprc OIDC/OAuth2 authorization code, HTTP/gRPC SSO-авторизация и выпуск локальных JWT BOX5-DIT-MGSN. Применяется в продуктовом контуре; параметры внешнего провайдера задаются эксплуатационной конфигурацией.
SMTP / Email st-report-email, st-auth SMTP Email-уведомления, отчёты и служебные письма, включая сброс пароля. Применяется для служебных уведомлений и отчётов.
Внешние API получателей данных svr-severstal-integration, сервисы событий и отчётов HTTP/REST, S3/HTTP по конкретному потоку Передача событий, статусов, отчётов и медиа внешним получателям данных. Применяется по прикладным интеграционным сценариям.

Полный реестр внешних систем приведён в Приложении В.

3.5. Диаграмма взаимодействия сервисов

Схема соединений (С4) и описание основных сетевых взаимодействий вынесены в Приложение Б. Приложение фиксирует:

  • общую схему соединений по группам сервисов;
  • детализацию соединений по доменам ui-rest, statistics, inference, extended-inference, severstal, инфраструктурным доменам и node-red-sandbox;
  • Docker-сети bx_default и node-red-sandbox, опубликованные порты и границы внутренних соединений;
  • междоменные REST/gRPC/Kafka/S3/SQL-соединения;
  • внешние соединения с IP-камерами, CSVN/VMS, виртуальными камерами, ПК-КОТ, АСУ ТП, Keycloak/OIDC, SMTP/Email и внешними API.

Для эксплуатационных работ схема С4 используется совместно с реестром сервисов из Приложения Г: схема показывает направления соединений, а реестр раскрывает конкретные сервисы, протоколы, хранилища, конфигурационные параметры и ограничения.