172 похожих чатов

Всем привет! У меня есть проект, который хостуется на одной

впске (и субд на отдельном, если это важно). И есть задача сделать bluegreen deployment.
До сих пор окружение было развернуто без контейнеров, и я решал эту задачу через подмену ссылки на директорию с текущей версией проекта.
Сейчас начал переносить проект в контейнеры, и столкнулся с вопросом, как мне реализовать обновления с нулевым даунтаймом?

Я нагуглил, что swarm отлично решает эту задачу. Но у меня возникло несколько вопросов

Не много ли ресурсов жрет эта технология? Сервер сейчас скромный, 4 ядра, 4 оперативки. Хватит ли места и приложению, и демону оркестрации?
Надежна ли в принципе технология для продакшна? Начитался много отзывов как за, так и против, одни утверждают, что годами всё живет стабильно, вторые кричат, что это чуть ли не самая дьявольская технология

Ну и вопрос, который наверное стоило задать первым - нет ли более простых альтернатив для решения подобной задачи? Меня немного смущает, что для одного слабенького сервера надо разворачивать целый оркестратор :)

13 ответов

15 просмотров

с нулевым дайнтаймом хз, но с минимальным мы через nginx как реверс прокси делаем

Watch-This Автор вопроса
Yura
с нулевым дайнтаймом хз, но с минимальным мы через...

Можно где-то подробнее почитать про этот вариант?

юзаешь swarm прописываешь кол-во реплик для инстанции и при обновлении они по очереди отключаются и обновляются

Watch-This Автор вопроса
Oleg B
юзаешь swarm прописываешь кол-во реплик для инстан...

Общий принцип я понял, спасибо. У меня больше вопрос к тому, подойдет ли моё слабое железо под эту технологию. И теперь ещё вопрос, почему его советуют не использовать)

Watch This
Общий принцип я понял, спасибо. У меня больше вопр...

все зависит от того сколько кушает ресурсов проект, придется считать самому, никто не поможет в этом

Watch This
Можно где-то подробнее почитать про этот вариант?

хм, не знаю, мы сами придумали. Схема такая - есть контейнер с текущей версий app_container, когда запускается деплой, то создается контейнер с новой версией кода app_container_new. Потом скрипт меняет конфиг nginx-а, что бы тот смотрел на новый контейнер, старый контейнер удаляется, новый переименовыватся в app_container

Oleg B
*facepalm

а что не так?

Watch-This Автор вопроса
Yura
хм, не знаю, мы сами придумали. Схема такая - есть...

Спасибо, я думал над подобным, пока не узнал, что существует сворм. После этого мне показалось, что он делает то же самое, только умеет в healthcheck и плавное обновление нод. Ну и свой скрипт писать не надо над всем этим делом 🧐

Yura
а что не так?

усложнение системы и велосипедизация

Oleg B
усложнение системы и велосипедизация

а как лучше? Не отрицаю что это может быть плохой подход, но работает плавно и прозрачно

Yura
а как лучше? Не отрицаю что это может быть плохой ...

сворм режим минимум 2 реплики и при обновлении он сам будет их по очереди подменять

Oleg B
сворм режим минимум 2 реплики и при обновлении он ...

ну использовать оркестратор это само собой, но в нашем случае особой нужды в оркестраторе не было.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта