впске (и субд на отдельном, если это важно). И есть задача сделать bluegreen deployment.
До сих пор окружение было развернуто без контейнеров, и я решал эту задачу через подмену ссылки на директорию с текущей версией проекта.
Сейчас начал переносить проект в контейнеры, и столкнулся с вопросом, как мне реализовать обновления с нулевым даунтаймом?
Я нагуглил, что swarm отлично решает эту задачу. Но у меня возникло несколько вопросов
Не много ли ресурсов жрет эта технология? Сервер сейчас скромный, 4 ядра, 4 оперативки. Хватит ли места и приложению, и демону оркестрации?
Надежна ли в принципе технология для продакшна? Начитался много отзывов как за, так и против, одни утверждают, что годами всё живет стабильно, вторые кричат, что это чуть ли не самая дьявольская технология
Ну и вопрос, который наверное стоило задать первым - нет ли более простых альтернатив для решения подобной задачи? Меня немного смущает, что для одного слабенького сервера надо разворачивать целый оркестратор :)
с нулевым дайнтаймом хз, но с минимальным мы через nginx как реверс прокси делаем
Можно где-то подробнее почитать про этот вариант?
юзаешь swarm прописываешь кол-во реплик для инстанции и при обновлении они по очереди отключаются и обновляются
Общий принцип я понял, спасибо. У меня больше вопрос к тому, подойдет ли моё слабое железо под эту технологию. И теперь ещё вопрос, почему его советуют не использовать)
все зависит от того сколько кушает ресурсов проект, придется считать самому, никто не поможет в этом
хм, не знаю, мы сами придумали. Схема такая - есть контейнер с текущей версий app_container, когда запускается деплой, то создается контейнер с новой версией кода app_container_new. Потом скрипт меняет конфиг nginx-а, что бы тот смотрел на новый контейнер, старый контейнер удаляется, новый переименовыватся в app_container
а что не так?
Спасибо, я думал над подобным, пока не узнал, что существует сворм. После этого мне показалось, что он делает то же самое, только умеет в healthcheck и плавное обновление нод. Ну и свой скрипт писать не надо над всем этим делом 🧐
усложнение системы и велосипедизация
а как лучше? Не отрицаю что это может быть плохой подход, но работает плавно и прозрачно
сворм режим минимум 2 реплики и при обновлении он сам будет их по очереди подменять
ну использовать оркестратор это само собой, но в нашем случае особой нужды в оркестраторе не было.
Обсуждают сегодня