Архитектура модуля zVirt DC Manager
- Kong API Gateway
-
Шлюз для пользовательских и сервисных запросов. Через Kong пользователь обращается по протоколу REST API к сервисам, представленным на схеме.
Шлюз инициирует операцию логирования запроса, а также проверки:
-
аутентификации — проверка токена пользователя в сервисе Keyclock
-
авторизации — проверка имеющихся прав у пользователя на запрос в сервисе IAM
-
- API Core
-
-
IAM — сервис управления правами доступа, сервисными аккаунтами, ролями
-
Order Service — сервис управления заказами, а также действиями с ними, в том числе отложенными или по расписанию. При заказе или действии над заказом Order Service отправляет множество запросов к другим микросервисам (Сhecker, Restriction service, Notification service, Portal back и так далее), чтобы выполнить проверки на корректность заполнения формы, доступность ресурсов на портале DC Manager для заказа
-
Resource Manager — сервис, в котором находится организационная структура: организации, папки, проекты
-
Portal Back — сервис управления информационными системами и SSH-ключами пользователей
-
Checker — сервис, который проверяет корректность заполнения параметров запроса в форме заказа
-
Restriction Service — сервис ограничений на заказ продуктов на портале
-
Notification Service — сервис уведомлений для пользователей и групп
-
Checklist Service — сервис, который обеспечивает целостность процессов заказа продуктов — создание записей о заказе в различных БД
-
- Cloud Core
-
-
Orchestrator — сервис, который централизует процессы и управляет данными конфигурации для микросервисов. Orchestrator отвечает за интерпретацию запросов на создание заказа и последующее разворачивание продукта. Для этого в очередь оркестратора приходит сообщение от RabbitMQ, направленное из сервиса заказов — Order Service. После этого Orchestrator проигрывает граф развертывания\действия, ноды графа выполняются, например, такие действия, как резервирование IP-адреса, создание виртуальной машины и настройка конфигурации
-
References — сервис хранения данных для предбиллига, а также общей справочной информации для использования в различных микросервисах
-
State Service — сервис состояний, в котором хранится информация о фактически созданных заказах — items (CPU, RAM, диск и так далее), информация об установленном программном обеспечении
-
Product Catalog (Constructor) — сервис, который содержит информацию о продукте. Product Catalog предоставляет эту информацию в Order Service и Orchestrator
-
Resource Allocation Manager — сервис, который позволяет подключить облако к DC Manager, осуществляет выдачу ресурсов для разворачивания виртуальных машин и предоставляет отчетную информацию. В его состав входит БД, в которой хранятся данные о ресурсах и их наличии на портале DC Manager, а также модуль аллокации, который выбирает или предоставляет ресурсные пулы для разворачивания
-
NetBox — сервис регистрации IP-адреса для виртуальных машин
-
- Infrastructure
-
Приложения, которые используются для работы системы:
-
ClickHouse
-
PostgreSQL
-
KeyDB
-
RabbitMQ
-
Keyclock
-
Nova Universe
-
AWX
-
NetBox
-
StarVault
-
SuperSet
-
- RPC
-
-
RPC Reserver IPAM — сервис, который резервирует IP-адреса в системе. Orchestrator при развертывании заказанного продукта направляет в этот сервис запрос на резервирование IP-адреса. После этого RPC Reserver IPAM регистрирует IP-адрес в сервисе NetBox
-
RPC AWX — модуль, который запускает выполнение скриптов на разворачиваемой виртуальной машине. RPC AWX получает запросы от Orchestrator и отправляет их к AWX (Ansible Web Executable) сервису, который подключается к виртуальной машине и выполняет на ней Ansible-скрипты
-
RPC Router — сервис маршрутизации запросов, исходящих от Orchestrator
-
Cloud Mate — сервис, который предоставляет единообразный интерфейс для разворачивания виртуальных машин на хостинге провайдера zVirt. Cloud mate через GET-запрос отправляет в Selector данные об имеющихся на портале запросах
-
RPC Nova — сервис, который разворачивает кластер Nova Universe
-
- Common
-
-
Product mover — сервис для объединения данных о продуктах, находящихся на различных стендах разработки. Он упаковывает в архив продукт со всеми его артефактами и позволяет перенести этот продукт между стендами. Имеет механизм экспорта в архив и импорта архива с продуктом
-
Cloud management — система управления сущностями на платформе виртуализации. С помощью Cloud management пользователь может получать информацию о состоянии систем на платформах zVirt
-
Auditor — сервис аудита и логирования пользовательских запросов на портале. В этот сервис записываются события о совершении запросов в Kong API Gateway и результатах выполнения этих запросов
-
Feed Service — сервис событий, который публикует новости на портале
-
Virt Exporter — сервис, который собирает данные с разных платформ и преобразует их в информацию для мониторинга VictoriaMetrics
-
ClickHouse ETL — сервис для преобразования данных и загрузки их в ClickHouse. ClickHouse ETL забирает данные из БД PostgreSQL
-