Перейти к основному содержимому

Модель платформы

Всё в ZennoHosting строится вокруг проектов и принадлежащих им ресурсов. Если сразу заложить в клиент эту схему, поведение платформы становится предсказуемым: справочные данные отделены от живых ресурсов, а последующие операции остаются в пределах одного проекта.

Справочные данные для создания

Образы

Задают операционную систему, с которой машина создаётся.

Тарифы

Задают коммерческие условия для машины и отдельно для публичного адреса.

Конфигурации

Показывают доступные сочетания ядер, памяти и диска, а вместе с ними — есть ли сейчас под них мощности.

Доступ и плагины

Доступ задаётся публичными ключами в запросе или ссылками на ключи проекта; плагины подключаются на этапе создания.

Живые ресурсы

Проекты

Владеют машинами, SSH-ключами, сетями, публичными адресами и резервными копиями. В ответе проекта есть resourceCounts — счётчики машин, сетей и адресов.

Виртуальные машины

Основной вычислительный ресурс. В ответе — идентификаторы, размеры, сетевые подключения и поле status с текущим состоянием.

Сети

Приватные сети уровня проекта, к которым машины подключают и перенастраивают.

Адреса и копии

Публичные адреса принадлежат проекту, а резервные копии — конкретной машине.

Границы проекта

  • Сначала проект, потом SSH-ключи, сети, публичные адреса и машины.
  • Держите projectId первичным идентификатором в своей модели данных.

  • Переиспользуйте ресурсы проекта, а не создавайте их заново под каждую машину.
  • Не считайте публичный адрес частью жизненного цикла приватной сети: они связаны, но существуют независимо.

Что решить до создания машины

Запрос на создание собирается из живых данных. Заранее определите образ, тариф машины и то, нужен ли публичный адрес. Если он нужен, помните: цена публичного адреса — отдельное решение, а не свойство тарифа машины.

Проверьте и границы: квоты аккаунта в GET /limits и доступность мощностей под выбранную конфигурацию. Это две разные причины отказа, и обе видны заранее.

Что хранить в клиенте

Считайте projectId, vmId, networkId и publicIpId стабильными ссылками — на них держится почти каждый последующий запрос. Поле vmCount у проекта помечено устаревшим: используйте resourceCounts.vms.

Связанные эндпоинты