// Engineering Log
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 — без потери удобства.
// Похожая задача
Если у вас похожая ситуация
Эта статья относится к одной из рабочих тем. Можно продолжить чтение по теме, перейти на главную, чтобы понять, чем я занимаюсь, или сразу открыть услуги.
Тема статьи
Деплой и стабильная работа
Docker, CI/CD, релизы, мониторинг, observability и разбор инцидентов.
Часто с этим приходят
- Настроить деплой без ручных действий и хаоса
- Подключить мониторинг, алерты и базовую observability
- Разобрать инциденты и стабилизировать production
// Следующий шаг
Если вам нужна не только статья, а помощь по этой теме, удобнее сразу перейти в услугу. Главная и подборка материалов остаются рядом.
Открыть услуги// Reviews
Отзывы по теме
Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. Результатом доволен.
Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. …
Настройка vps, настройка сервера
18.02.2026 · ★ 5/5
Все было сделано быстро и четко. Рекомендую
Все было сделано быстро и четко. Рекомендую
Настройка vps, настройка сервера
17.01.2026 · ★ 5/5
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
Настройка vps, настройка сервера
16.12.2025 · ★ 5/5
Все сделали оперативно. Будем и дальше обращаться. Рекомендую!
Все сделали оперативно. Будем и дальше обращаться. Рекомендую!
Настройка vps, настройка сервера
10.12.2025 · ★ 5/5
Все сделали оперативно. Михаил всегда на связи. Будем и дальше обращаться
Все сделали оперативно. Михаил всегда на связи. Будем и дальше обращаться
Настройка vps, настройка сервера
10.12.2025 · ★ 5/5
Михаил, профессионал! Уже ни первый раз показал это на практике.
Михаил, профессионал! Уже ни первый раз показал это на практике.
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
// Related