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

Но деплой в облаке — задача нетривиальная. Нужно подготовить код и среду, проверить работоспособность и доступность сервиса. Есть открытые решения, которые упрощают этот процесс. Некоторые из них уже набрали популярность — например, Piku и Dokku. Но мы решили поговорить о менее известных, но не менее интересных утилитах, позволяющих запустить коммерческие проекты и снизить расходы на администрирование: Kamal, Qovery, Cuber и MicroK8s.

Kamal — для навигации в облаке

Kamal представила команда 37signals, которая также разработала Basecamp, инструмент для совместной работы над проектами. Новую утилиту авторы опубликовали относительно недавно (с лицензией MIT). Изначально решение назвали MRSK, но потом переименовали в честь древнего навигационного устройства (камала), которое использовали арабские моряки.

Стимулом для разработки стало желание 37signals создать инструмент, который бы упростил развертку в мультиоблачных средах. По словам команды, они вдохновлялись Capistrano (open source инструмент для выполнения скриптов на нескольких серверах, который в основном используется для веб-приложений). Kamal работает по аналогичному принципу в контейнерной среде — достаточно прописать IP-адреса нужных серверов в конфигурационном файле и сгенерировать SSH-ключ. Деплой выполняется командой kamal setup — она поможет установить docker и curl (при необходимости), запустит контейнер с новой версией приложения и остановит контейнер со старой. Если серверов несколько, останется настроить балансировщик.

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

Qovery — внутренняя платформа для разработчиков

У проекта три основателя c опытом более десяти лет в администрировании ИТ-систем и backend-разработке. Они начали работу над Qovery в 2019 году на программе акселерации Techstars.

Основатели сформулировали цель продукта — дать разработчикам возможность сфокусироваться на коде и разворачивать его за минуты без глубокой экспертизы в DevOps. Qovery можно использовать по лицензии GPL-3.0, но есть платные тарифы с техподдержкой и дополнительными функциями, например, контролем доступа на основе ролей (Role-based access control).

Для быстрого развертывания инструмент выстраивает уровень абстракции между кластером Kubernetes и приложениями. Разработчики могут запускать последние в продакшн с минимальной поддержкой от администратора — как заявляют авторы платформы, команде потребуется лишь один DevOps-инженер. Такое «самообслуживание» возможно благодаря автоматизированной работе с облачными средами: инструмент позволяет дублировать их вместе с конфигурациями в пару кликов, а также автоматически разворачивать и удалять среды. Qovery имеет несколько интерфейсов: GUI, CLI, API, Terraform. Разработчики платформы также предусмотрели интеграцию с распространенным инструментарием: GitHub, GitLab, Helm и Slack.

Qovery не раз занимал лидирующие позиции в рейтинге программных продуктов G2 (G2 Best Software Awards). Пользователи особо отмечают, что инструмент прост в освоении. Что интересно, на вопросы в службу поддержки часто все еще отвечают сами фаундеры, и довольно быстро.

Cuber — десять строк кода и готово

Решение развивает фулстек-разработчик, в портфолио которого есть и другие проекты, например, Pushpad для отправки уведомлений и BuonMenu для создания онлайн-меню в заведениях. Поскольку автор более десяти лет специализируется на фреймворке Ruby on Rails, инструмент Cuber он написал тоже на Ruby и опубликовал в 2021 году (распространяет его по лицензии Apache 2.0).

Мотивация разработчика примерно такая же, как и у создателей Kamal — сделать развертывание приложений доступнее. По его мнению, Cuber объединяет в себе модели PaaS и IaaS: от первой есть простой запуск облачных сред, а от второй — экономия средств. Для развертки кластера с помощью этого инструмента достаточно написать Cuberfile примерно из 10 строк и выполнить команду cuber deploy. После этого утилита извлечет код из репозитория, проведет сборку с Docker или Buildpacks, опубликует образ в реестре и запустит приложение в кластере Kubernetes. У продукта нет зависимостей помимо перечисленных, что обеспечивает простоту и надежность.

Проект предназначен для веб-приложений, поэтому работа с ним будет отличаться от привычного многим CI/CD. Продукт может снизить затраты по сравнению с PaaS, а также значительно снизить сложность эксплуатации по сравнению с прямым управлением инфраструктурой.

MicroK8s — подойдет для IoT

Развитием продукта занимаются разработчики Ubuntu. MicroK8s они выпустили по лицензии Apache 2.0. Первые версии решения относятся к 2018 году, и сейчас в его сообщество входит множество участников. Авторы инструмента ставили перед собой цель построить решение, которое упростит развертывание в средах Kubernetes для разработчиков, DevOps’ов и вендоров.

MicroK8s обеспечивает безопасность сред, автоматически устанавливая патчи Kubernetes сразу после их выхода или по расписанию. Продукт поддерживает большое количество расширений — например, сервисы для мониторинга fluentd и prometheus. Сюда же относится инструментарий для проектирования сервисной сети (Istio, Linkerd) и бессерверной архитектуры (Knative).

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

Среди прочих функций: возможность использовать инструмент для развертки кластеров на IoT-устройствах. У каждого из них свои технические требования, что усложняет конфигурирование инфраструктуры, а еще нужно организовать сбор и передачу данных из разных сетей. MicroK8s не создаст излишней нагрузки на устройства и упростит управление IoT-приложениями. С помощью этого инструмента можно также построить «домашнее облако» на Raspberry Pi.

Заключение

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

Важный глобальный тренд приложений в облаке — вычисления становятся более распределенными. Мы видим растущий спрос на облачные ресурсы рядом с клиентом, особенно когда нужна высокая скорость вычислений. Здесь у МТС и облачного провайдера CloudMTS есть большое преимущество — собственная сеть, включающая 230 тыс. км оптоволокна по всей стране, и более 70 тыс. площадок с подведенной оптикой и электричеством. Подключить виртуальную инфраструктуру и другие облачные сервисы можно в непосредственной близости к их пользователю. 

Комментарии (0)