Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Архитектура модуля zVirt DC Manager

DCM arch1
Рисунок 1. Архитектура модуля 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