2016-10-13 5 views
0

Я работаю над webapp, который будет опубликован в процессе производства, а затем обновляется на регулярной основе, так как появляются функции и исправления ошибок.Каков процесс обновления NodeJS, работающего на производстве?

Я запускаю его как node app.js, который загружает конфигурацию, подключается к базе данных, запускает веб-сервер.

Интересно, каков процесс обновления приложения, когда у меня есть следующая версия? Я полагаю, мне нужно убить процесс и начать после обновления и развертывания? Это означает, что будет время простоя?

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

ответ

1

Я думаю, что второй подход лучше.

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

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

Кроме того, если вы настраиваете производственную среду, я бы рекомендовал вместо того, чтобы просто запускать ваш процесс с помощью команды «node», вы будете использовать что-то вроде forever или pm2, чтобы выполнить автоматические перезагрузки и некоторые другие дополнительные функции.