在生产中更新 NodeJS 运行 的过程是什么?

What's the process of updating a NodeJS running in production?

我正在开发一个网络应用程序,它将在生产环境中发布,然后随着功能和错误修复的出现而定期更新。

我运行它喜欢node app.js加载配置,连接到数据库,启动网络服务器。

我想知道,当我有下一个版本时,更新应用程序的过程是什么? 我想,我必须终止进程并在更新和部署后启动?这意味着会有一些停机时间?

我是否应该收集 week/month 期间最少使用的统计数据并在此期间应用更新?或者我应该在另一台机器上启动当前版本,将所有请求重定向到它并更新主要版本,然后切换回去?

我认为第二种方法更好。

第一个不会阻止停机,它只会确保影响最少的用户,而第二个根本不会造成停机。

此外,我认为您应该将旧版本 运行 在另一台机器上保留一段时间,以防您发现由于某种原因必须还原新版本。在这种情况下,您只需将流量重定向到旧节点即可,无需停机。

此外,如果您正在设置生产环境,我建议您使用 "node" 命令而不只是 运行 您的进程,您将使用类似 forever or pm2 的东西,以便执行自动重启和其他一些高级功能。