Общая информация
Магазин приложений Marketplace (XaaS) интегрирован с Платформой. Marketplace обеспечивает доступ пользователей Платформы к сервисам, размещённым в нём.
Роли пользователей, взаимодействующих с Marketplace:
- Поставщик — добавляет сервис в Marketplace. Доступны тестовые и открытые пространства имён Marketplace.
- Потребитель — использует сервис, размещённый в Marketplace. Доступны только открытые пространства имён Marketplace.
- Администратор — регистрирует брокера, управляет пространствами имён, публикует сервисы в Marketplace.
Marketplace позволяет размещать следующие типы сервисов:
-
SaaS-приложение — централизованно установленный мультитенантный продукт. Инфраструктура для работы сервиса предоставляется поставщиком. Поставщик разворачивает сервис либо на сторонней инфраструктуре, либо на инфраструктуре Платформы в своём проекте. Пользователю предоставляется доступ к инстансу сервиса через отдельный тенант/аккаунт.
-
Image-based приложение — продукт, который разворачивается на основе образов виртуальных машин в облачном проекте пользователя. Для работы сервиса может использоваться дополнительная инфраструктура Платформы: виртуальные сети, балансировщики нагрузки, кластеры DBaaS, S3, резервное копирование. Инфраструктура для работы сервиса предоставляется Платформой. Инстансы сервиса разворачиваются в проекте пользователя.
Marketplace позволяет размещать image-based приложения, которые разворачиваются как на одной ВМ, так и в кластере.
Услуги, предоставляемые сервисом, описываются с помощью тарифных планов и опций. Тарифная опция — это конкретный параметр плана.
Взаимодействие Marketplace с сервисами осуществляется по протоколу VK OSB с помощью брокеров (рисунок 1). Брокер обеспечивает доставку конфигурации сервиса в Marketplace: Marketplace периодически опрашивает брокера о текущей конфигурации сервиса.

SaaS-брокер обеспечивает взаимодействие конкретного SaaS-приложения с Marketplace. Image-based брокер обеспечивает взаимодействие image-based приложений с Marketplace. Image-based брокер внутри себя имеет тенанты, объединяющие image-based приложения одного поставщика.
Marketplace включает в себя:
- Тестовые пространства имён (
NameSpace_test), в которых проверяется конфигурация сервиса перед публикацией. Доступны все ревизии сервиса. - Открытые пространства имён (
NameSpace_public), в которых сервис публикуется. Доступна только последняя опубликованная ревизия сервиса.
Доступ к тестовым и открытым пространствам имён выдаётся администратором Платформы. Доступ к тестовым пространствам имён выдаётся только поставщикам. Если у пользователя есть доступ к нескольким пространствам имён, в каталоге Marketplace он будет видеть все сервисы и их ревизии, размещённые хотя бы в одном пространстве имён, к которому у пользователя есть доступ.
Тестовые и открытые пространства имён для image-based приложения задаются в сервисном ключе и image-based брокере, для SaaS-приложения — в SaaS-брокере при регистрации брокера в Marketplace. Сервисный ключ для image-based приложения создаётся администратором Платформы.
Сущности, связанные с сервисом и используемые при интеграции с Marketplace, приведены в таблице 1.
Имя | Описание |
|---|---|
Инстанс сервиса (Service instance) | Экземпляр сервиса, развёрнутый у пользователя |
Сервисная привязка (Service binding) | Сущность, которая создаётся после разворачивания инстанса сервиса на основании запроса от Платформы к брокеру и связывается с инстансом сервиса. Наиболее часто сервисная привязка используется, чтобы передать пользователю чувствительную информацию для доступа к сервису. Если сервис умеет отправлять данные для доступа без участия Marketplace, для этой задачи использовать сервисную привязку не требуется. Задачи, для которых используются сервисные привязки, зависят от конкретного сервиса |
Поддерживаются типы тарифных опций, приведённые в таблице 2.
Тип тарифной опции | SaaS-приложение | Image-based приложение |
|---|---|---|
Числовой | integer, number | integer |
Строковый (string) | + | + |
Логический (boolean) | + | + |
Datasource | — | + |
Тип опции datasource используется для описания опций, связанных с сущностями Платформы. Такой тип позволяет использовать данные Платформы в режиме реального времени. На основании этих данных формируются возможные значения опции во время подключения сервиса или обновления тарифного плана.
Поддерживаемые типы datasource:
- Типы ВМ, доступные в проекте пользователя Платформы.
- Зоны доступности Платформы.
- Виртуальные сети, доступные в проекте Платформы.
- Тип диска.
Тарифные планы могут быть платными или бесплатными.
Тарифные планы могут иметь платные тарифные опции. Поддерживаются платные опции следующих типов:
- Числовой.
- Логический.
Стоимость тарифных планов и опций описывается в конфигурации сервиса.
Описание типов тарификации (способов оплаты) приведено в таблице 3.
Имя | Описание |
|---|---|
Предоплатный | Стоимость тарифного плана и опций списывается раз в отчётный период в дату подключения тарифного плана. Стоимость тарифных опций фиксирована |
Постоплатный (рисунок 2) | Стоимость тарифных опций рассчитывается исходя из фактически использованного количества ресурсов сервиса за месяц (например, используемого объёма хранилища). Оплата использованных ресурсов сервиса (тарифных опций) осуществляется на основании отчёта, полученного от сервиса. Периодичность списания равна периодичности, с которой сервис формирует отчёт. Например, если сервис формирует отчёт раз в месяц, стоимость будет списываться раз в месяц. |
BYOL (Bring Your Own License) | Использование сторонних лицензий для сервисов. Инстанс сервиса разворачивается без лицензии |

Marketplace периодически опрашивает брокера на наличие необработанных отчётов о фактически использованных ресурсах сервиса (постоплатные тарифные опции):
-
Если в брокере есть необработанные отчёты, брокер передаёт их Marketplace.
-
Если в брокере нет необработанных отчётов, выполняются следующие действия:
- Брокер запрашивает отчёт у сервиса.
- По запросу брокера сервис передает ему отчёт по всем существующим инстансам сервиса.
- Брокер присваивает отчёту идентификатор
batch_id. - Брокер в ответ на запрос Marketplace передаёт ему необработанный отчёт.
-
Marketplace рассчитывает стоимость использованных ресурсов на основании полученного отчёта.
-
После обработки отчёта (списание денежных средств по этому отчёту произошло или запланировано) Marketplace сообщает брокеру
batch_idэтого отчёта. В дальнейшем обработанные отчёты брокер не будет передавать Marketplace.
Матрица тарифных планов (рисунок 3) отображается при просмотре информации о сервисе. На основании матрицы пользователь может сравнить тарифные планы сервиса между собой: какие опции в какой тарифный план входят.

Матрица тарифных планов описывается в конфигурации сервиса. В ней указываются тарифные опции сервиса, на основании которых пользователь будет выбирать тарифный план.
При подключении сервиса и при обновлении тарифного плана пользователю отображается мастер конфигурации тарифного плана.
Мастер конфигурации тарифного плана позволяет пользователю настроить тарифные опции для конкретного тарифного плана.
В интерфейсе Marketplace мастер конфигурации тарифного плана разбит на отдельные страницы (рисунок 4). Каждая страница описывает конкретный этап настройки тарифного плана. На странице отображаются тарифные опции, настраиваемые на этом этапе. Опции объединены в группы.

Первая и последняя страницы мастера конфигурации тарифного плана добавляются автоматически. Остальные страницы описываются в конфигурации сервиса.
В мастере конфигурации тарифного плана отображается стоимость тарифного плана и платных тарифных опций. Для image-based приложений дополнительно отображается стоимость инфраструктуры Платформы, которая рассчитывается автоматически в соответствии с тарифами Платформы. Параметры для расчёта описываются в конфигурации image-based приложения.