Программное обеспечение
Платформа представляет собой программный комплекс на базе программного обеспечения с открытым исходным кодом (OpenStack и др.; см. ПО на базе открытого исходного кода) и программного обеспечения собственной разработки (см. Прикладное ПО собственной разработки).
Для функционирования Платформы необходимо также вспомогательное ПО, не входящее напрямую в состав Платформы (см. Вспомогательное ПО).
Программные компоненты Платформы размещаются на серверах, разделённых на логические группы — серверные роли, в зависимости от выполняемых функций. Часть компонентов Платформы размещена на виртуальных серверах.
Полный список компонентов доступен в дистрибутиве Платформы в файле /path_to_inventory/vkcloud/group_vars/vkcloud/versions.yaml.
Основную часть Платформы составляют решения на базе ПО с открытым исходным кодом, доработанные и поставляемые вместе с компонентами собственной разработки.
Список компонентов собственной разработки представлен далее в таблице 1.
Компонент | Назначение |
|---|---|
Портал самообслуживания (frontapp) | Портал пользователей Платформы, включая администраторов проектов |
Портал администратора (superadmin) | Веб-интерфейс администрирования Платформы |
Karboii | Компонент для резервного копирования |
Scrooge | Внутренний биллинг и механизм назначения квот |
General billing | Хранилище биллинг-транзакций и счетов |
IAM | ПО для управления биллингом и реализации ролевой модели управления доступом в проектах, а также проверок доступа пользователей и некоторых других функций. Включает в себя Портал администратора |
cloud-audit-logs | Сервис получения, хранения и отображения аудита событий сервисов |
Katana | Инструмент балансировки нагрузки для ВМ |
В качестве основы для Платформы используется программный комплекс с открытым исходным кодом OpenStack версии Ocata. Однако, большинство компонентов OpenStack Ocata были значительно доработаны в рамках разработки Платформы и их версии уже не соответствуют публично доступным.
Наша версия OpenStack включает в себя компоненты, приведённые далее в таблице 2.
Компонент | Назначение |
|---|---|
Nova | Виртуализация |
Heat | Оркестрация |
Cinder | Блочное хранение данных |
Cinder backup | Атомарное резервное копирование дисков |
Glance | Работа с образами |
Magnum | Средства оркестрации контейнеров (Kubernetes aaS) |
Trove | База данных как сервис (DBaaS) |
Neutron | Программно-определяемые сети |
Octavia | Балансировка нагрузки |
Ceilometer | Телеметрия |
Keystone | Аутентификация |
Barbican | Управление ключами |
Manila | Управление общими файловыми системами |
Panko | Сервис хранения событий |
Кроме того, в состав Платформы входит и другое ПО с открытым исходным кодом, упомянутое далее в таблице 3.
Компонент | Назначение |
|---|---|
Ceph | Программно-определяемая распределённая файловая система |
Keycloak | Управление учётными записями пользователей, группами пользователей, интеграция с MS AD, а также SSO |
Zabbix | Мониторинг сети, серверов и сетевого оборудования (Мониторинг Платформы) |
OpenSearch | Платформа для анализа и визуализации, предназначенная для поиска, просмотра и взаимодействия с данными |
Docker | Программная платформа для разработки, доставки и запуска контейнерных приложений |
Аппаратные СХД: драйвер для Cinder для поддержки СХД 3PAR определенной версии | Поддержка аппаратных СХД |
MariaDB | СУБД для организации служебных баз данных компонентов Платформы |
Kubernetes | Открытое программное обеспечение для оркестровки контейнеризированных приложений |
ClickHouse | Колоночная БД. Используется в cloud-audit-logs |
HAProxy | Балансировщик нагрузки |
ZooKeeper | Сервис хранения конфигураций. Используется в cloud-audit-logs |
Kafka | Распределенная система обмена сообщениями |
Consul | Сервис хранения конфигураций |
RabbitMQ | Система очереди сообщений |
Memcached | Сервис кеширования данных |
Galera | Инструмент для кластеризации БД |
Percona Xtrabackup | ПО для создания резервных копий СУБД |
Вспомогательное ПО не входит в состав Платформы, но необходимо для её функционирования.
В качестве системного ПО на физических серверах Платформы используется CentOS 7.6 с ядром uek-5.4.
В составе образов по умолчанию для гостевых операционных систем (используемых при развёртывании ВМ) имеется следующее системное ПО:
- CentOS 7.X.
- Ubuntu Linux 22.X.
Вспомогательное ПО Платформы перечислено далее в таблице 4.
Компонент | Назначение |
|---|---|
Ansible | Система управления конфигурациями; отключен сбор артефактов |
Nexus | Репозиторий артефактов |
Чтобы проверить установленную версию:
- Ansible — выполните команду
ansible --version. - Nexus — на деплой-ноде выполните команду
docker ps.
На серверах устанавливаются следующие rpm-пакеты:
kernel-uekbind-utilsca-certificatesfileiptablesiptables-serviceslsofman-dbman-pagesnanonet-toolsnmap-ncatntpntpdateopenssh-clientsopenssh-serveropensslpampsmiscstracetcpdumptelnettraceroutevim-enhanceddstatgdbiptrafwgetnscdntpsmartmontoolsstracesysstatvim-enhancedyum-prioritiesmutttelnethtopchronyiftoppython2-pipiptstategdiskipmitoolsalt-minionbash-completionbash-completion-extras