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

Привет, собрал проект через compose, вроде все ок работает. У меня

только вопрос. При запуске команды docker-compose up -d перезапускаются контейнеры при наличии изменений в коде, что логично конечно же, только мне нужно, чтобы приложение на проде работало без вот этих пробелов во время перезапуска, так как в этот момент пользователи могут совершать важные запросы на сайте, которые должны все отработать.
Каким образом бесшовный деплой делают?

25 ответов

32 просмотра

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

doroved- Автор вопроса
Антон
?!

Ну если без докеров всяких просто деплоить новый код путем замены файлов, то никаких 500 не будет, а с докером костыли какие-то постоянно приходится делать) Это пока, что я понял за время изучения

doroved
Ну если без докеров всяких просто деплоить новый к...

Без докера код на ноде через pm2, пятисотит при деплоях…

doroved- Автор вопроса
Антон
Без докера код на ноде через pm2, пятисотит при де...

Ну это беда. Если в сервисе пользователь запускает длительные процессы и в это время происходит деплой, то его процесс тупо оборвётся, что повлечёт за собой негативный опыт

doroved
Ну если без докеров всяких просто деплоить новый к...

это работает только в случае cgi (а-ля php) или раздачи файлов из папки (.js, статика), да и то чудом (один файл обновился, второй нет, запрос попал на полурабочее окружение)

doroved
Ну это беда. Если в сервисе пользователь запускает...

И к выше описанному другим это происходит за какие то милесекунды и на 500 запросов в секунду, 2-3 пятисотки…

doroved- Автор вопроса

Для чего тогда докер? Для развлечений на локалке?)

doroved
Для чего тогда докер? Для развлечений на локалке?)

Ровно для того, что заявлено в описании

doroved
Для чего тогда докер? Для развлечений на локалке?)

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

doroved- Автор вопроса
Максим Мартынов
докер никогда не решал эту задачу и не собирается....

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

doroved
Это понятно. Ну в проде его используют для сайтов ...

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

doroved
Это понятно. Ну в проде его используют для сайтов ...

Я слышал что через это делают https://github.com/containrrr/watchtower , раннер и ci cd вроде . Там все вместе связано

Andrey Rastorguev
нет

Ну лан , тогда не прав )

doroved
Это понятно. Ну в проде его используют для сайтов ...

100% отказоустойчивости не бывает. 2-3 на 500 запросов это прям норм показатель.

doroved- Автор вопроса
Максим Мартынов
опять все в кучу. вопрос деплоя приложения таким о...

Тупанул кстати. Мне важно было чтобы при деплое запросы к апи не обрубались у пользователей. В нгиксе же настроен тайм-аут на ожидание ответа, который помогает избежать эту ситуацию. А вот что бы фронт сохранить доступным при деплое, может можно сделать фронт-заглушку со страницей типа "Идет обновление сервиса....". Ток хз, можно в компоузе как-то указать, что надо подрубать фронт заглушку, если основной фронт ещё не запущен

doroved- Автор вопроса
George Gaál
В компоузе никак

А какие варианты реализации этой идеи могут быть?

doroved
А какие варианты реализации этой идеи могут быть?

а как юзеры идут на приложение? по доменному имени? кмк только костыли с редиректом через днс на заглушку. но это уже все в не композа

doroved
А какие варианты реализации этой идеи могут быть?

Два app, один из них в nginx описан как backup upstream Обновляешь основной app, nginx видит, что он не доступен , шлёт запросы на запасной app Обновил основной, он заработал, трафик переключился на основной, обновил запасной

doroved- Автор вопроса
elBobrKurwa
а как юзеры идут на приложение? по доменному имени...

Ага домен. Ну редирект тогда придется на другой домен делать или поддомен где страничка заглушка будет. Как вариант да

doroved- Автор вопроса
Кирилл
Два app, один из них в nginx описан как backup ups...

Во, примерно такое думалось, спасибо изучу)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта