Структура и состав VK Private Cloud
Для удобства представления функции Платформы разделены на следующие функциональные подсистемы (рисунок 1):
- Подсистема потребителя облачных услуг.
- Подсистема администрирования.
- Подсистема вычислительных ресурсов.
- Подсистема хранения данных.
- Сетевая подсистема.
- Подсистема управляемых баз данных.
- Подсистема управляемых контейнеров.
- Подсистема облачных приложений Marketplace.
- Подсистема тарификации и биллинга.
- Подсистема резервного копирования.
- Подсистема служебных хранилищ.
- Подсистема защиты от НСД.
- Подсистема прикладного мониторинга и логирования.

В состав Платформы входит базовое и служебное ПО, которое устанавливается на операционную систему РЕД ОС 7.3.
Базовое ПО:
-
Nova — реализует функции управления виртуальными машинами (ВМ). Обеспечивает размещение ВМ на вычислительных узлах и управление жизненным циклом ВМ. Предоставляет возможность:
- Использовать шаблоны/типы ВМ, образы дисков.
- Настраивать агрегацию вычислительных узлов, правил распределения нагрузки.
- Миграции ВМ, резервного копирования и восстановления.
-
Cinder — реализует функции оркестрации конечных решений по блочному хранению данных. Позволяет создавать виртуальные диски и управлять их жизненным циклом.
-
Neutron — реализует функции управления виртуальной сетевой инфраструктурой. Обеспечивает управление жизненным циклом виртуальных сетей, подсетей, виртуальных маршрутизаторов, сетевых интерфейсов виртуальных машин и групп безопасности.
-
Octavia — реализует сервис управляемых балансировщиков нагрузки (LBaaS).
-
Glance — реализует функции ведения и предоставления каталога образов виртуальных машин.
-
Barbican — реализует функции безопасного хранения и предоставления ключей и сертификатов.
-
Manila — реализует функции создания и подключения удалённых файловых хранилищ к ВМ по протоколам CIFS или NFS.
-
Magnum — реализует функции управляемых контейнеров (Kubernetes aaS).
-
Trove — реализует сервис управляемых баз данных (DBaaS).
-
XaaS — реализует функции предоставления aaS-ресурсов (приложения, API, данные) без привязки к модели развёртывания в виде магазина приложений Marketplace.
-
Scrooge — компонент, созданный VK Tech. Выполняет функции начисления и тарификации.
-
General Billing — компонент, созданный VK Tech. Обеспечивает управление балансом и генерацию отчетов по биллингу.
-
Quota manager — реализует функции управления квотами.
-
IAM — компонент, созданный VK Tech. Обеспечивает аутентификацию и авторизацию пользователей, управление правами доступа.
-
Keycloak — обеспечивает хранение учетных записей пользователей и интеграцию с внешними службами каталогов.
-
Keystone — реализует аутентификацию взаимодействия между компонентами Платформы.
-
Karboii — реализует управление планами резервного копирования. Обеспечивает выполнение полного и инкрементного резервного копирования ВМ, агентское резервное копирование баз данных (DBaaS).
-
Zabbix — реализует мониторинг состояния Платформы.
-
OpenSearch — реализует хранение журналов компонентов Платформы.
-
Ansible — используется для разворачивания и настройки компонентов Платформы.
-
Nexus — репозиторий для хранения установочных пакетов и образов компонентов Платформы.
Служебное ПО:
- Ceph — программная кластеризованная СХД. Используется для хранения виртуальных дисков (volume) и образов виртуальных машин.
- High-IOPS — реализует хранилище, подключаемое по протоколу iSCSI. Представляет собой LVM-mirror поверх двух NVMe- или SSD-дисков внутри одного сервера. Устойчив к отказу NVMe-SSD.
- KVM — гипервизор.
- Galera Cluster — кластеры СУБД MariaDB. Используется для хранения данных о сущностях Платформы.
- MariaDB — системная СУБД. Используется частью компонентов Платформы для хранения данных о сущностях Платформы.
- PostgreSQL — системная СУБД. Используется частью компонентов Платформы для хранения данных о сущностях Платформы.
- ProxySQL — L-7 прокси для работы с MariaDB.
- ExaBGP — сервис, реализующий функции с использованием протокола динамической маршрутизации на базе BGP. Используется HAProxy.
- ClickHouse — системная СУБД. Используется частью компонентов Платформы для хранения данных о сущностях Платформы.
- Redis — резидентная NoSQL СУБД. Используется компонентом Magnum.
- Stolon — оркестратор, обеспечивающий высокую доступность кластеров PostgreSQL.
- RabbitMQ — брокер очередей. Используется для обмена данными между компонентами Платформы.
- Apache Kafka — выполняет буферизацию при сборе данных журналов компонентов Платформы.
- etcd — распределенная key-value база данных.
- Apache Zookeeper — служба для координации распределённых транзакций. Используется Apache Kafka.
- Consul — служба обнаружения сервисов (service discovery) на основе DNS и проверки их доступности.
- Calico — плагин Kubernetes для управления сетевыми политиками. Используется служебным Kubernetes.
- HAProxy — балансировщик нагрузки для TCP и HTTP-приложений.
- Nexus-proxy — proxy-репозиторий для ускорения загрузки компонентов. Используется компонентом Trove.
- Kubernetes (не отображён на схеме) — оркестратор. Используется для управления контейнерами, в которых запущена часть компонентов Платформы.
- Docker (не отображён на схеме) — контейнеризатор приложений.