Архитектура системы
Описание взаимодействия
Ниже приводится общая схема архитектуры системы Центральный Пульт.

Сервер "Центральный Пульт" – серверная часть системы. Представляет собой набор микросервисов, которые производят обработку и анализ поступивших данных, в частности, управляют логикой смены состояний у объектов и связей. В состав серверной части также входят NGINX и REST-сервер.
Kafka – шина данных, которая обеспечивает обмен данными между микросервисами системы Центральный Пульт, отправляет Агентам список задач и принимает результат их выполнения.
Взаимодействие с устаревшими Агентами версии ниже 3.0 обеспечивается через Redis. |
MongoDB – NoSQL-СУБД, которая является основным хранилищем данных о пользователях, объектах и связях, их свойствах, состояниях и авариях.
Redis – это хранилище данных в оперативной памяти (in-memory кэш), благодаря которому реализуется быстрый доступ к часто запрашиваемой информации.
OpenTSDB – специализированное хранилище временных рядов, в котором хранятся числовые метрики, используемые при построении графиков.
NGINX – это HTTP-сервер, обслуживающий запросы клиентов. Отдаёт статические элементы web-интерфейса (HTML, JavaScript, CSS), а также проксирует запросы от клиента к REST-серверу.
REST-сервер – один из микросервисов системы Центральный Пульт, который отвечает за обработку REST-запросов от клиентов. Через REST API клиент получает и изменяет информацию, обрабатываемую сервером системы Центральный Пульт.
Агент – это программа, устанавливаемая на виртуальный или физический сервер или иной узел сети и осуществляющая выполнение проверок, сбор и передачу информации серверу через шину данных Kafka.
Предусмотрена возможность создания пользовательского агента, который будет собирать метрики с локального хоста, опрашивать сторонние сервисы и отправлять данные на сервер через REST API. |
Web-клиент и Мобильное приложение – это клиенты, с помощью которых пользователи системы взаимодействуют с сервером через REST API. В роли клиентов могут выступать, например, web-приложения и клиенты для мобильных операционных систем Android и iOS.
Для решения специфических задач можно создать индивидуального клиента, который будет работать с сервером через REST API. |
Внешние системы – это стороннее ПО, информационные системы или программные модули, которые могут взаимодействовать с сервером с помощью REST API.
Сервисы авторизации – наряду со встроенными механизмами, Центральный Пульт также поддерживает сторонние сервисы для авторизации пользователей в системе. Возможна интеграция с AD-сервером и Keycloak (см. LDAP и Интеграция с Keycloak).
Уведомления – сервер может уведомлять Пользователей об авариях и отправлять данные во Внешние Системы с использованием различных каналов, описанных в разделе Действия при смене состояний.
Отказоустойчивость и резервирование
Для обслуживания высокой вычислительной нагрузки система может быть реализована в отказоустойчивом исполнении с дублированием основных компонентов:

Производительность системы может быть увеличена следующими способами:
-
Добавление ресурсов виртуальной инфраструктуры;
-
Оптимизация параметров программного обеспечения.