Развертывание приложений в облаке: пять способов сделать это самостоятельно
Исследователи подсчитали, что к 2022 году 77% компаний разместили в облаке как минимум одно приложение. Скорее всего в ближайшее время этот тренд сохранится. Тем более, что развертывание приложений в облаке становится все проще и быстрее. Мы вместе с экспертами облачного провайдера ITGLOBAL.COM насчитали минимум пять удобных способов сделать это без помощи специалистов. Расскажем о них в нашем материале.
Часто от администратора требуется быстро развернуть программу или приложение в облаке. Причем речь может идти как о собственных разработках, так и о задаче установить 1С в облаке или перенести бизнес-приложения SAP в облако. В зависимости от сложности задачи, можно воспользоваться самыми простыми инструментами для развертывания или использовать те, которые требуют специализированных знаний. Рассмотрим каждый из них по мере возрастания сложности.
Развертываем приложение при помощи веб-консоли
Самый очевидный, простой и популярный способ развернуть приложение в облаке — сделать это через панель или веб-консоль облачного провайдера. Ее можно найти по слову console, например, console.cloud.google.com или console.aws.amazon.com. При переходе администратор увидит панель с формами для заполнения и кнопками подтверждения.
Панель ITGLOBAL.COM включает формы, где можно выбрать операционную систему, локацию и конфигурацию, настроить бэкапы и т. д.
Панель управления от ITGLOBAL.COM
Преимущества такого способа развертывания приложений:
- Простота. Взаимодействовать с веб-консолью или панелью ITGLOBAL.COM может человек без технического образования. Некоторые консоли предлагают подсказки при вводе информации. Другие имеют настолько простой и понятный интерфейс, что дополнительной помощи не требуется.
- Скорость. Изменения можно внести простым вводом и одним нажатием кнопки.
К недостаткам можно отнести отсутствие возможностей для масштабирования и автоматизации действий администратора. Каждый раз все данные нужно вводить вручную. Из-за отсутствия автоматизации и ошибок администратора конфигурация созданных виртуальных машин может отличаться.
Развертываем приложение с командной строкой
Утилита командной строки CLI (command line interface) размещается поверх интерфейса API и позволяет обратиться к нему посредством команд. Application Programming Interface или API — это набор инструментов, с помощью которого программы могут взаимодействовать между собой. Командная строка — второй по популярности инструмент для развертывания сервисов в облаке. В отличие от варианта с использованием панели, для работы с утилитой понадобится умение писать код. Администратор должен не просто нажимать на нужные кнопки, но и добавлять соответствующий скрипт.
Чтобы воспользоваться утилитой командной строки CLI от ITGLOBAL.COM, нужно скачать ее на GitHub и следовать инструкциями по инсталляции и настройке. Советы по работе и примеры использования CLI также можно найти на сайте компании. Если кратко, то через утилиту командной строки можно управлять ресурсами панели на Windows и Linux. В планах ITGLOBAL.COM — добавить возможности для macOS и FreeBSD.
# ./s2ctl server list
l9s395988:
id: l9s395988
name: curl
state: Active
created:»2022–04–26T13:41:09.409047Z»
is_power_on: «True»
image_id: Ubuntu-20.04-X64
location_id: nj3
cpu:»1»
ram_mb:»1024»
volumes:
63320:
id:»63320»
name: boot
size_mb:»51200»
created:»2022–04–26T13:40:31.306914»Командная строка ITGLOBAL.COM
Плюсы развертывания приложений через командную строку:
- Относительная простота. Развертывать приложения через командную строку немного сложнее, чем через веб-консоль. Однако с помощью инструкций в ней можно быстро разобраться.
- CLI позволяет автоматизировать рутинные операции.
- Возможности для масштабирования при помощи скриптов.
Минусы командной строки: необходимость писать команды вручную, ограничения в управлении ресурсами по сравнению с Terraform.
Как развернуть приложение в облаке через API
Два предыдущих варианта были рассчитаны на широкий круг пользователей без знаний в ИТ. Теперь рассмотрим, как развернуть облако, имея опыт в написании кода. Один из удобных и популярных способов — составить запрос через программный интерфейс приложения API. Такой вариант предусматривает больше возможностей, с помощью кода в программном интерфейсе приложения можно создать практически все. API всегда актуален и поддерживает любые языки программирования.
Провайдер ITGLOBAL.COM предоставляет публичный API для взаимодействия с услугами облачного сервиса. Например, через API, так же, как и через CLI, можно автоматизировать часть процессов. Такой вариант особенно удобен, если пользователю нужно развернуть приложения сразу в нескольких серверах, протестировать, получить отчеты и удалить неработающие. С помощью API все это можно сделать автоматически, без участия человека.
# curl —location —request GET «https://api.itglobal.com/api/v1/locations» —header «X-API-KEY: 01d5916eba8930141a97e89ceaa2c288a1265120bab44f2957984fcefc5f1f82» | json_pp -json_opt pretty, canonical
{
«locations» : [
{
«additional_volume_min» : 10240,
«bandwidth_max» : 1000,
«bandwidth_min» : 50,
«cpu_quantity_options» : [
1,
2,
3,
4,
6,
8,
12,
16
],
«id» : «am2»,
«ram_size_options» : [
1024,
2048,
3072,
4096,
8192,
16384,
32768,
49152,
65536,
98304
],Так выглядит API у ITGLOBAL.COM
Плюсы использования API:
- Отсутствие ограничений по операционным системам и инструментам.
- Возможность написать код для любого сценария развертывания приложений.
- Масштабируемость, повторяемость.
- Возможность использовать любые удобные инструменты: вручную через платформу Postman, путем встраивания в свой код и т. д.
К минусам можно отнести необходимость привлекать специалиста, который умеет писать код и сложность этого кода. Также нужно сказать, что не все API одинаково удобны и функциональны. Но это уже не проблема данного способа развертывания.
Как развернуть приложение в облаке через провайдера
Некоторые облачные провайдеры предлагают дополнительные сервисы для развертывания. Например, у Google это — Cloud Deployment Manager, а у Azure — ARM Templates. Подобные инструменты уже имеют заданную конфигурацию, поддерживают входные данные и могут передавать информацию последующим скриптам. Удобство такого способа в том, что специальные сервисы рассматривают процесс развертывания как отдельный вид ресурса и могут добавить нужные настройки в уже созданную инфраструктуру, чтобы привести ее в соответствие с требованиями конфигурации сервера.
У ITGLOBAL.COM пока нет подобного сервиса, но недавно компания выпустила собственный инструмент 1-Click Apps. С его помощью одновременно с созданием сервера можно развернуть приложения, которые предварительно уже добавили разработчики. Это можно сделать через панели API и (в будущем) CLI. Сейчас в списке уже есть WordPress, Docker, PostgreSQL, PHP, Apache, Lamp и другие приложения. Это позволяет не тратить время и силы на развертывание и получить уже готовые программы для работы.
Плюсы 1-Click Apps:
- Администратор экономит ресурсы и не тратит время на развертывание приложений.
- Компании не нужно привлекать технического специалиста для этих работ, что позволяет экономить на персонале.
К минусам можно отнести только ограниченный набор приложений, который со временем планируют расширить.
Минусы развертывания приложений через других провайдеров: несовершенство некоторых инструментов и разрыв в технических характеристиках между облаком и его собственным сервисом. К тому же, такой инструмент плохо подходит для работы с облаками сторонних провайдеров. Это может создать сложности при создании гибридных AWS, git-репозиториев и т. д.
Развертывание приложений в облаке через Terraform
Terraform — программное обеспечение с открытым кодом, которое позволяет быстро создать инфраструктуру в облаке и управлять ей с помощью файлов конфигураций. Сразу оговоримся, что в настоящее время в России данный инструмент можно использовать только через VPN. Программное обеспечение позволяет представить всю ИТ-инфраструктуру в виде кода. Terraform позволяет получать данные о том, что и где должно быть развернуто в режиме реального времени.
Интеграция ITGLOBAL.COM с Terraform позволяет не только быстро развертывать приложения, но и создавать, обновлять и удалять самые различные элементы ИТ- инфраструктуры. Разработчик может описать всю инфраструктуру в виде кода. При этом файл создается вручную в любом редакторе исходного кода и в таком виде используется при работе с Terraform. Можно создать описание будущего сервера, его конфигурации, локации, CPU и т. д.
Плюсы Terraform:
- Хорошие возможности для автоматизации.
- Через этот инструмент удобно создавать, обновлять и удалять ресурсы.
- Масштабируемость и повторяемость. Например. при тестировании можно каждый раз создавать ту же самую среду, которая была во время прошлого теста.
- Поддержка большинства облачных провайдеров и возможность добавлять кастомные типы ресурсов.
- Возможность добавлять дополнительные функции в виде плагинов.
Основной минус Terraform — это количество усилий, которое требуется, чтобы освоить работу с этим инструментом.
Какой из пяти способов развертывания выбрать
Развертывание сервисов в облаке можно выполнить любым из предложенных способов. Выбор подходящего варианта зависит от задач, которые стоят перед администратором и от наличия технических специалистов в команде.
Если требуется управлять статичной инфраструктурой — лучше выбирать Terraform. При его использовании достаточно один раз создать файл с описанием инфраструктуры, нажать «применить» и наслаждаться прелестями автоматизации. Однако стоит учитывать, что для работы с этим инструментом требуется специалист, с глубокими техническими знаниями.
API и CLI больше подойдут тем, кому требуется контролировать состояние своих ресурсов. С их помощью можно создать, включить, выключить, перезагрузить или удалить сервер.
Веб-консоль и панель идеальны для тех, кто не умеет программировать и не нуждается в средствах автоматизации. Здесь все сделано для того, чтобы администратору было максимально просто, удобно и интуитивно понятно.
Полный текст статьи читайте на Компьютерра