Не у каждой команды есть Kubernetes. Часто сервисы живут на одной-двух виртуалках с Docker, а деплой - это ssh, docker compose pull и надежда, что ничего не упадёт. Теперь Opsy умеет деплоить и туда: на обычный сервер с Docker, с той же формой, правами, окружениями и аудитом, что и для кластера.
Подключение - одна команда
На сервер ставится тот же агент Opsy, что и в Kubernetes, только контейнером: админка Opsy выдаёт готовую команду docker run. Модель безопасности не меняется: агент сам ходит к Opsy по исходящему HTTPS за задачами, входящих соединений на сервер нет, доступ по SSH и ключи от сервера мы не получаем. Для доменов агент поднимает на хосте Traefik.
Деплой как в кластер
Docker-хост в Opsy - ещё один вид цели рядом с кластерами. Приложение катится из той же формы или автоматически по пушу в ветку, окружения dev → stage → prod работают с промоушеном между ними. Во время деплоя видны живые шаги: скачивание образа, запуск, проверка здоровья. Если сервис не поднялся, Opsy сам откатывает его на прошлую версию, а из истории откат делается в одно действие.
Каталог сервисов
Базы, брокеры и хранилища из каталога ставятся в пару кликов - сейчас там 12 сервисов (список ниже). Версии закреплены, пароли генерируются и хранятся зашифрованными, данные лежат в именованном томе. Шаблон можно поправить под себя (например, взять образ из своего реестра) или вставить свой docker-compose.yml. Сервис можно сделать общим, чтобы им пользовались другие приложения на этом хосте.
Домены и TLS
Домен указывается в форме, сертификат Let's Encrypt выпускается и продлевается сам: достаточно A-записи на сервер и открытого 80 порта. Для закрытых контуров без входа из интернета подключается свой сертификат из «Дефолтов деплоя» - тот же, что используется для кластеров.
Compose под контролем
Агент с доступом к Docker на сервере - это фактически root, поэтому Opsy проверяет каждый compose до запуска: запрещены privileged, host-сеть, pid и ipc хоста, cap_add, монтирование хостовых путей, docker.sock и устройств. Данные - только в именованных томах. Права на приложения и окружения, аудит действий - те же, что для Kubernetes.
Наблюдение
Контейнеры, логи и ресурсы хоста открываются в том же интерфейсе, что и для кластера: тот же экран логов с поиском и живым обновлением, загрузка CPU и памяти по контейнерам, тома и образы.
Что пока только в Kubernetes
Автоскейлинг, рекомендации по ресурсам, canary и blue-green деплой остаются возможностями кластера. На Docker-хосте compose up пересоздаёт контейнер, поэтому на время деплоя бывает короткий простой.
Хотите посмотреть на своём сервере? Подключим и разберём доставку вместе.
Написать нам