VD
ну, у меня идея в том, чтобы на серверах ничего не хранить.
инфраструктуру разворачиваем через terraform.
наше приложение запаковано в image и лежит в private registry без переменных сред.
у меня локально есть env-файл со значениями для продакшена. переходить на всякие Vault'ы и etcd пока не хочется.
я хочу иметь возможность с локального компьютера разворачивать все контейнеры с нужными командами по серверам.
я себе это вижу так:
- есть несколько docker-compose.yml файла, по одному на каждый сервер
- в них описано какие контейнеры с какой командой должны запускаться. в каждый контейнер-приложение я передаю локальный env-файл, который будет использовать при запуске контейнера на удаленном сервере.
- масштабировать мне нужно определенную контейнер. для этого я либо в рамках существующего сервера запускаю еще один контейнер с нужной командой (добавив его в docker-compose). либо создаю еще один сервер, и запускаю там.
тем самым:
- имедж у меня универсальный, может работать и в локальном окружении, и в продакшен
- сервер не требует практически никакой настройки. все находится в контейнерах
- с локального компьютера я могу контроллировать запущенные удаленные контейнеры и запускать новые.
- вся инфраструктура (сервера + докер) описана и лежит в гите.
в целом пока хочется иметь возможность масштабировать некоторые процессы вручную, но в будущем хотелось бы автоматизировать это, перейдя на кубернетесы или что-то подобное.