Kamal: революция в деплое, или как уйти из облачного рабства
Опубликовано 23.12.2025
В последние десять лет индустрия развёртывания веб-приложений прошла путь от FTP-скриптов и rsync до сложнейших систем оркестрации.
Сегодня разработчики и небольшие команды всё чаще оказываются перед непростым выбором:
- либо платить серьёзную наценку за удобство PaaS-платформ (Heroku, Render, Fly.io),
- либо погружаться в когнитивную и операционную сложность Kubernetes.
Kamal предлагает третий путь: удобство современных облачных сервисов — на вашем собственном сервере.
Что такое Kamal
Kamal — это open-source CLI-инструмент от компании 37signals (создателей Basecamp и Ruby on Rails), предназначенный для деплоя веб-приложений поверх Docker без Kubernetes.
Ключевая идея Kamal проста:
сервер — это просто площадка для контейнеров, а деплой должен быть воспроизводимым, предсказуемым и дешёвым.
Изначально Kamal создавался для Rails-приложений, но сегодня он полностью агностичен к языку. Если приложение можно упаковать в Docker-образ — Kamal сможет его задеплоить.
Поддерживаемые сценарии:
- bare metal;
- VPS в любом облаке (AWS, DigitalOcean, Hetzner, Яндекс Облако);
- гибридные конфигурации;
- миграции между провайдерами.
Поясняющая аналогия
Представим деплой как жильё:
- PaaS (Heroku) — номер в дорогом отеле. Всё включено, но вы платите за каждый шаг и не можете ничего изменить.
- Kubernetes — строительство небоскрёба. Полный контроль, но нужен штат инженеров только для поддержки инфраструктуры.
- Kamal — современный модульный дом. Его можно поставить на любой участок (сервер), а при необходимости — перевезти целиком.
Как это выглядит на практике
В отличие от Kubernetes с его десятками YAML-манифестов, конфигурация Kamal умещается в одном файле
config/deploy.yml.
Пример минимального, но реального конфига:
# Название сервиса
service: my-app
# Docker-образ
image: user/my-app
# Список серверов
servers:
web:
- 192.168.0.1
- 192.168.0.2
# Реестр контейнеров
registry:
server: ghcr.io
username: user
password:
- KAMAL_REGISTRY_PASSWORD
# Переменные окружения
env:
secret:
- RAILS_MASTER_KEY
- DB_PASSWORD
Запуск деплоя:
kamal deploy
Что делает Kamal во время деплоя
За одной командой скрывается понятный и прозрачный процесс:
- Build — сборка Docker-образа.
- Push — загрузка образа в container registry.
- Pull — скачивание образа серверами.
- Boot & Switch — запуск нового контейнера и атомарное переключение трафика.
Результат — zero-downtime deploy без балансировщиков, ingress-контроллеров и сложных схем.
Ключевые технические особенности
1. Zero-downtime и kamal-proxy
Начиная с версии 2.0 Kamal использует собственный прокси — kamal-proxy, отказавшись от Traefik.
Это даёт:
- удержание активных соединений;
- переключение трафика только после healthcheck;
- отсутствие внешних ingress-зависимостей.
Для пользователя обновление проходит полностью незаметно.
2. Автоматический provisioning серверов
Команда:
kamal setup
Автоматически:
- устанавливает Docker;
- настраивает зависимости;
- готовит сервер к деплою.
Требования минимальны:
- чистая Ubuntu;
- SSH-доступ по ключу.
3. Accessories: базы и сервисы рядом
Kamal умеет управлять вспомогательными сервисами — базами данных, Redis, очередями.
Пример MySQL:
accessories:
db:
image: mysql:8.0
host: 192.168.0.1
env:
MYSQL_ROOT_PASSWORD: <%= ENV["DB_PASSWORD"] %>
Это удобно для:
- pet-проектов;
- MVP;
- ранних стадий стартапов.
Для highload-систем базы данных всё же лучше выносить отдельно.
Kamal vs остальной мир
| Критерий | Kubernetes | PaaS | Kamal |
|---|---|---|---|
| Сложность | Очень высокая | Минимальная | Низкая |
| Стоимость | Инфраструктура + DevOps | Высокая наценка | Только сервер |
| Vendor lock-in | Нет | Да | Нет |
| Контроль | Полный | Ограниченный | Высокий |
| Целевая аудитория | Enterprise | MVP без DevOps | Стартапы, агентства, инди |
Почему Kamal лучше Capistrano
Capistrano долго был стандартом в Ruby-мире, но Kamal решает его системные проблемы:
- зависимости больше не живут на сервере;
- не нужно управлять версиями языков;
- сервер становится одноразовым ресурсом.
Когда Kamal не подойдёт
Kamal — не серебряная пуля.
Он не лучший выбор, если:
- требуется агрессивное авто-масштабирование;
- нагрузка скачет на порядки;
- нужна сложная service-mesh архитектура.
В таких случаях Kubernetes остаётся оправданным.
Итог: философия независимости
Kamal — это не просто инструмент деплоя. Это манифест независимости:
- минимальные расходы;
- полный контроль;
- отсутствие привязки к вендору;
- лёгкая миграция между облаками.
VPS за 50 € в Hetzner вместо 300 € на AWS — без потери удобства.
Отзывы по теме
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
visupSTUDIO · Настройка vps, настройка сервера
16.12.2025 · ⭐ 5/5
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
Все сделали оперативно. Будем и дальше обращаться. Рекомендую!
rotant · Настройка vps, настройка сервера
10.12.2025 · ⭐ 5/5
Все сделали оперативно. Будем и дальше обращаться. Рекомендую!
Все сделали оперативно. Михаил всегда на связи. Будем и дальше обращаться
samstiray · Настройка vps, настройка сервера
10.12.2025 · ⭐ 5/5
Все сделали оперативно. Михаил всегда на связи. Будем и дальше обращаться
Михаил, профессионал! Уже ни первый раз показал это на практике.
Vadim_U · Настройка vps, настройка сервера
Освоившийся покупатель03.12.2025 · ⭐ 5/5
Михаил, профессионал! Уже ни первый раз показал это на практике.
Огромное спасибо Михаилу, обратился к нему с очень срочным вопросом по настройке сервера, так как сам в этом не очень силен а нужно сайт показать заказчику. Ответ быстрый, помощь без лишних слов и очень быстро! Желаю вам много заказов и лучшего рейтинга! Спасибо огромное!
Ekleo · Настройка vps, настройка сервера
Очень мощный покупатель28.11.2025 · ⭐ 5/5
Огромное спасибо Михаилу, обратился к нему с очень срочным вопросом по настройке сервера, так как сам в этом не очень силен а нужно сайт показать заказчику. Ответ быстрый, помощь без лишних слов и очень быстро! Желаю вам много заказов и лучшего рейтинга! Спасибо огромное!
Спасибо, быстро помог.
Bodanov · Настройка vps, настройка сервера
Мощный покупатель28.11.2025 · ⭐ 5/5
Спасибо, быстро помог.