How-to: Как API улучшает инфраструктуру хостинг-провайдера

в 10:47, , рубрики: api, Блог компании 1cloud.ru, ит-инфраструктура, разработка, хостинг

image

В нашем прошлом топике была затронута тема API, а если точнее — способов того, как эта технология может послужить бизнесу. В ходе развития хостинг-провайдера 1cloud мы столкнулись с необходимостью повышения качества интеграции клиентских приложений с нашим облаком, а также облегчения взаимодействия с нашей инфраструктурой для клиентов и партнеров.

Для решения этих задач мы разработали API — о том, как работает этот интерфейс, и какие задачи с его помощью можно решать наш сегодняшний топик.

Как это работает

Для того, чтобы у клиентов была возможность управления своими серверами из сторонних приложений, было реализовано REST API.

В одном из предыдущих топиков об инфраструктуре проекта мы рассказывали о том, что при выполнении пользователям действий в графическом интерфейсе не происходит никаких обработок, в системе лишь формируется задание на выполнение требуемого действия обработчиком.

Для реализации API мы использовали тот же механизм. Когда клиент посылает запрос к API, формируется задание, затем его «подхватывает» обработчик, после чего уже происходит исполнение. Отследить состояние конкретной задачи можно, обратившись к методу «Действие над сервером»:

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50' https://api.1cloud.ru/Server/777/Action/999

Пример заголовка сообщения в формате JSON:

Content-Type: application/json 
Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50

В ответ система вернет JSON-объект, содержащий ID задания, тип задачи (в данном случае — создание сервера) и ее статус:

{
  "ID":999,
  "Type":"Create",
  "State":"Completed"
}

В дальнейшем при вводе в строй новых функций, мы будем поддерживать два интерфейса: через веб (панель управления) и программный интерфейс (API).

Что это дает

В случае хостинга API-интерфейс может быть полезен как частным пользователям, которые не хотят разбираться со сложными технологиями, так и крупным клиентам и партнерам, которые планируют создание собственных услуг на основе инфраструктуры провайдера.

image

Инфраструктура 1cloud (картинка кликабельна)

С помощью методов API развернуть сервер можно с помощью одного запроса, при этом возможна полная автоматизация всех задач по управлению хостингом (или, например, по масштабированию инфраструктуры) без необходимости совершения каких-либо действий руками в интерфейсе
Нашим API могут пользоваться целый ряд частных и корпоративных клиентов. Среди них:

  • Реселлеры, которые перепродают наши услуги;
  • Партнеры, помогающие реализовывать разнообразные сочетания услуг разных хостинг-провайдеров (пример подобного сервиса на западе — deploy4me.com/);
  • Организации, которые занимаются продажей собственных услуг на мощностях 1cloud и хотят автоматизировать процедуру создания новых экземпляров серверов;
  • Разработчики приложений — им API помогает осуществлять автоматическое масштабирование хостинг-инфраструктуры. Например, при увеличении нагрузки система может автоматически создать новый сервер и распределить задачи, а при снижении нагрузки, неиспользуемые серверы автоматически удаляются.

Кроме того, API может использоваться в рамках процесса непрерывной интеграции (continuous integration) — в ходе проверки готового кода можно создать эталонную тестовую среду (один или группа серверов), на которой и «прогоняются» все тестовые сценарии.

Пример реализации клиентского приложения для API 1cloud на C# можно найти по ссылке(выражаем благодарность за реализацию Сергею partyz0ne Вычегжанину)

На сегодня все. Спасибо за внимание, будем рады ответить на вопросы в комментариях!

P.S. Пользователям Хабра, которые захотят воспользоваться нашим API, мы предоставим расширенный тестовый период в ходе которого будем устранять найденные проблемы и сложности (для его активации достаточно обратиться в службу поддержки по адресу support@1cloud.ru).

P. P. S. Авторам лучших реализаций клиентских частей для API 1сloud на других языках программирования будут предоставлены бонусы в нашей системе. Выкладывайте свои проекты на GitHub и мы обязательно укажем имя автора и ссылку на них на своем сайте.

Автор: 1cloud

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js