Как работает API vStack и почему платформу легко администрировать
Что такое vStack API и чем она отличается от других
API (Application programming interface) расшифровывается как «программный интерфейс приложения». Существует несколько определений этого термина, суть которых сводится к следующему: API — это набор способов и правил, инструментов и функций, с помощью которых программы связывают отдельные элементы внутри себя, а также обмениваются данными и взаимодействуют между собой.
vStack admin API упрощает задачи администратора и сокращает время его работы. Ее особенность в том, что все взаимодействия внутри ИТ-интерфейса осуществляются из единой точки доступа. У администратора нет необходимости постоянно переключаться между отдельными вкладками. При этом специалист тратит минимум времени на создание объектов через API за счет сокращения количества строк и длины самих запросов.
Особенности vStack admin API
Расскажем подробнее об отличительных чертах устройства vStack admin API.
Архитектура панели
vStack admin API разработана на базе протокола для удаленного вызова процедур JSON RPC, который отличается простотой, легкостью конструкций и скоростью обработки. JSON-RPC гораздо проще другого популярного протокола — REST.
JSON RPC — «преемник» JSON. Его особенность в следовании единым стандартам и отсутствии разногласий в командах. Администратору не нужно искать best practices на форумах, все источники доступны, действия унифицированы и максимально упрощены.
Кроме того, протокол обеспечивает быстрый и надежный обмен данными и может продолжать обработку запросов параллельно с ожиданием ответа от сервера. API на основе JSON-RPC не зависит от развертываемого протокола (HTTP или TCP), поэтому обладает более высокой производительностью.
Централизация
Проблема некоторых систем в том, что они предоставляют доступ к API из нескольких отдельных точек: сеть, хранилище, ВЦОД и т.д. Это усложняет работу администратора и увеличивает продолжительность выполнения стандартных действий. В API vStack используется единая точка доступа для управления всеми элементами платформы. Благодаря этому администраторам не нужно подключаться к нескольким службам и настраивать взаимодействие между ними. Благодаря этому часто задачи по администрированию платформы может выполнять один человек.
Простота
Еще одна особенность vStack admin API, которая отличает ее от других платформ, — простые команды, написанные на языке, который понятен не только машинам, но и людям. Здесь нет сложных команд, а командная строка компактна и может обрабатывать данные с именованными фразами и ключевыми словами. Команды можно запускать как синхронно, так и асинхронно. Результаты запроса также приходят в понятном, удобном для чтения виде.
Выделенные роли
vStack admin API предоставляет разные возможности для администрирования в зависимости от роли пользователя. В роли Cluster master пользователю доступен физический и кластерный слой (узлы кластера, их состояния, сервисы кластера, их состояния). Остальные пользователи видят только те виртуальные дата-центры, в которых им выделены какие-либо роли.
Как создать виртуальную машину в API vStack
Создание ВМ в vStack admin API занимает секунды. Рассмотрим, как это сделать с помощью коротких и понятных запросов.
{
«jsonrpc»: «2.0»,
«method»: «vms-create»,
«id»: «de2ccf8c-764f-11ea-8c88-601744f6ef2b»,
«params»: {
«name»: «Ubuntu docker/snap»,
«description»: null,
«cpus»: 2,
«ram»: 4294967296,
«os_type»: 6,
«os_profile»: 8,
«vdc_id»: 8,
«disks» : [
{
«size»: 23622352896,
«slot»: 1
},
{
«sector_size»: {
«logical»: 4096,
«physical»: 4096
},
«size»: 47244705792,
«label»: «44GB 4Kn redo logs»,
«slot»: 2
}
],
«network_ports» : [
{
«network_id»: 1,
«slot»: 1
},
{
«network_id»: 4,
«slot»: 2
}
],
«guest»: {
«users»: {
«root»: {
«ssh-authorized-keys»: [
«ssh-ed25519»
],
«password»: «megapass»
},
},
«ssh_password_auth»: 1,
«resolver»: {
«name_server»: [
«8.8.8.8»,
«8.8.4.4»,
«1.1.1.1»
],
«search»: «nsa.gov»
},
«boot_cmds»: [
«swapoff -a»
],
«run_cmds»: [
«systemctl restart ntpd»
],
«hostname»: «ubuntu-07-snap.docker.us.nsa.gov»
}
}
}
Ответ:
{
«id» : «de2ccf8c-764f-11ea-8c88-601744f6ef2b»,
«jsonrpc» : «2.0»,
«result» : {
«code» : 1,
«data» : {
«cpus» : 2,
«create_completed» : 1,
«created» : 1585989706,
«description» : null,
«disks» : [
{
«guid» : «18299855202392410869»,
«iops_limit» : null,
«mbps_limit» : null,
«sector_size» : {
«logical» : 512,
«physical» : 4096
},
«size» : 23622352896,
«slot» : 1
},
{
«guid» : «1075373250829122474»,
«iops_limit» : null,
«label»: «44GB 4Kn redo logs»,
«mbps_limit» : null,
«sector_size» : {
«logical» : 4096,
«physical» : 4096
},
«size» : 47244705792,
«slot» : 2
}
],
«hw_version» : 4,
«id» : 2088,
«incarnation» : 15859897060,
«modified» : 1585989706,
«name» : «Ubuntu docker/snap»,
«network_ports» : [
{
«address» : «10.78.28.119»,
«mac» : «ca:07:49:25:ab:6c»,
«network_id» : 1,
«port_id» : 1411,
«ratelimit_mbits» : null,
«slot» : 1
},
{
«address» : «10.100.200.300»,
«mac» : «ca:ca:ca:ca:ca:ca»,
«network_id» : 4,
«port_id» : 1412,
«ratelimit_mbits» : null,
«slot» : 2
}
],
«os_profile» : 8,
«os_type» : 6,
«pool» : «1139»,
«ram» : 4294967296,
«root_dataset» : «1497»,
«status» : 10,
«vdc» : 8
}
}
}
Почему администраторам удобно работать с API vStack
При разработке vStack admin API большое внимание уделялось ее простоте и удобству для администраторов. В результате программный интерфейс платформы получил несколько преимуществ, которые выгодно отличают его от других панелей для администраторов.
Отсутствие дискретности API
Решения, которые давно работают на рынке (например, VMware), часто отличаются дискретностью и могут содержать блоки с разной семантикой, разные точки подключения с отдельными командами. Часто одни и те же действия могут выполняться несколькими способами с разными результатами. Дискретность управления имеет свойство усиливаться по мере роста инфраструктуры, усложняя процесс работы с платформой. Из-за этого администратору приходится держать в голове множество информации и одновременно выполнять несколько задач. Это сложно, неудобно и повышает риск ошибок.
API vStack — современное решение с простой и понятной структурой. Отсутствие дискретности в ней существенно упрощает процесс администрирования. Платформа отличается единообразием, однозначностью команд и наличием однозначных решений для выполнения каждого действия.
Легковесность
Благодаря тому, что vStack — новая платформа, релиз которой состоялся несколько лет назад, она не успела накопить тонны ненужного легаси, старых неактуальных решений и костылей. Схема взаимодействия разных частей платформы проста и понятна, без исторически сложившихся сложностей. У vStack нет элементов, которые приходилось бы дополнительно связывать через скрипты API, усложняя интерфейс. Благодаря этому vStack admin API получилась простой, краткой и логичной.
Понятная документация
API vStack сопровождается простой и понятной документацией. С помощью справочника vStack admin API разобраться в работе платформы может даже человек без специального образования. Понятные описания и пошаговые алгоритмы действий ускоряют процесс знакомства с возможностями платформы.
Простота, логичность и понятность vStack admin API, а также наличие единой точки управления всей системой существенно упрощают работу администратора платформы. Благодаря этому компания может обойтись силами одного-двух сотрудников для выполнения этих задач. Это позволяет снизить расходы на персонал без потери качества обслуживания платформы для виртуализации.