Архитектура

Геном состоит из множества компонентов. Каждый из них выполняет строго определённый перечень задач.

Взаимодействие

Начнём рассмотрение архитектуры Геном с упрощённой схемы взаимодействия компонентов.

Взаимодействие компонентов

image$components interaction

Платформа — центральное звено всей системы. Платформа предоставляет единую, стандартизированную и безопасную основу для работы всех специализированных подсистем.

Подсистема мониторинга используется для контроля жизненного цикла Машины. Эта подсистема отслеживает состояние программных и аппаратных компонентов Машины и отправляет уведомления в случае сбоя.

Подсистема управления поддерживает жизненный цикл Машины и используется для управления её программными и аппаратными компонентами. Через неё администраторы и пользователи взаимодействуют с Платформой. Она предоставляет веб-интерфейс и API для управления Геном и получения необходимых данных от подсистем мониторинга и конфигурации.

Подсистема топологии и конфигурации контролирует конфигурацию Машины, формирует и поддерживает её целостную модель, собирая и актуализируя информацию о составе компонентов, их свойствах и связях между ними.

Прокси платформы выполняет роль временного хранилища очереди команд, поступающих из Платформы в Агенты платформы.

Агент платформы, получив команду от Прокси платформы, выполняет её. Выполнение команды заключается в изменении настроек Агента мониторинга, Агента конфигурации или ПАК.

Агенты мониторинга собирают метрики ПАК. Собранные данные через Прокси мониторинга передаются в Подсистему мониторинга.

Подсистема мониторинга анализирует собранные метрики и при необходимости отправляет уведомления в Платформу.

Агенты конфигурации отслеживают состояние ресурсов ПАК, а собранные данные через Прокси конфигурации отправляют в Подсистему конфигурации.

Логическая архитектура

Рассмотрим логические связи компонентов друг с другом и с внешними системами.

Пользователь WebUI BMC

Платформа предоставляет SSH-туннель для пользователей WebUI. С его помощью можно подключиться к BMC ПАК напрямую, однако, доступ предоставляется только на чтение. Для изменения настроек используйте возможности Платформы.

Потребитель алертов

В роли потребителя уведомлений может быть использовано стороннее ПО. Это значит, что Геном может использовать для отправки уведомлений разные внешние системы. Достаточно настроить их на обработку оповещений, формируемых внутри Геном.

Потребители метрик и конфигурации

Геном предоставляет API, позволяющий внешним системам получать данные метрик и конфигурации через API Gateway Платформы.

Внешний провайдер IAM

Для аутентификации и авторизации пользователей Геном использует внешний провайдер (IAM). В роли таких провайдеров могут быть использованы:

  • Basis Virtual Security;

  • FAM Avanpost;

  • Keycloak.

Подсистема мониторинга

Подсистема мониторинга состоит из следующих компонентов:

AlertManager получает метрики из vmalert и обрабатывает их. Если значения метрик удовлетворяют заданным условиям, AlertManager отправляет уведомление потребителю уведомлений.

vmalert получает метрики из VictoriaMetrics и передаёт в alertcollector и alertmanager.

vlalert получает журналы из VictoriaLogs и передаёт в alertcollector и alertmanager.

alertcollector получает данные оповещений от vmalert и сохраняет их в базу.

utilizer получает значения метрик утилизации от плагина node_exporter, пересчитывает их и передаёт на хранение в VictoriaMetrics.

+ IMPORTANT: Если сервер VictoriaMetrics развёрнут в отказоустойчивой конфигурации, он не обращается к utilizer.

VictoriaMetrcs — специализированное ПО для хранения метрик.

VictoriaLogs — специализированное ПО для хранения журналов.

Подсистема управления

Подсистема управления используется для управления всеми остальными подсистемами.

Она получает управляющие команды от API Gateway Платформы и сохраняет необходимые данные в базу. К BMC ПАК Подсистема управления подключается напрямую.

Изменение настроек Прокси платформы и Агентов платформы происходит следующим образом:

  1. Подсистема управления отправляет запрос Сервису планировщика.

  2. Сервис планировщика ставит запрос в очередь задач.

  3. TaskDaemon разбирает задачи из очереди и через Прокси платформы изменяет настройки Агенты платформы.

Подсистема топологии и конфигурации

Подсистема топологии и конфигурации отслеживает фактическое состояние компонентов ПАК. Для этого через Прокси конфигурации она собирает данные Агента конфигурации и Агента платформы.

Платформа

API Gateway

API Gateway — это единая точка входа, позволяющая работать с платформой таким компонентам, как:

  • Потребители метрик.

  • Потребители конфигурации.

  • Фронтэнд мониторинга.

  • Фронтэнд конфигурации.

  • Фронтэнд управления.

  • Фронтэнд платформы.

Модуль безопасности

Для управления безопасностью в Платформе предусмотрен отдельный модуль. Рассмотри его внутреннее устройство.

Authentication Service + User Management получает данные пользователей из IAM, обслуживает пользовательские сессии в самой платформе, предоставляет пользователям необходимые привилегии.

Authorization Service проверяет роли пользователя и IAM и на основе действующих политик предоставляет ему те или иные полномочия в Платформе.

Audit Service сохраняет сведения о событиях безопасности, происходящих в платформе.

Journal Service сохраняет журнал работы системы безопасности.