零宕机时间部署Nodejs应用程序
问题描述:
我有一个Nodejs应用程序,其中包含集群以进行错误处理的正常运行时间和域。零宕机时间部署Nodejs应用程序
现在为了实现零宕机部署,我有一条指令,但我需要帮助将此指令转换为Nodejs代码(我需要一个示例)。
这是指令:
- 当主机启动,给它一个符号链接到工作代码。
- 部署新代码后,更新符号链接
- 向master发送信号:fork new workers! Mater告诉老工人关闭,从新代码中分出新的工人。
- 母校过程永远不会停止运行
Instruction source - >幻灯片编号39
答
对于100%的正常运行时间在路上或多或少相同的,无论您使用的语言:
将会话令牌存储在数据库中而不是内存数组或其他内容中。这将允许用户在交换版本后保持登录状态。
运行服务器泊坞窗容器
使用代理内部的处理交换容器时,你需要运行一个新的服务器版本。
我写easy-deploy来处理这个问题,这样我就不用担心每次都设置代理了。
部署版本1
easy-deploy -p 80:80 -v some/path:other/path my-image:1
要部署一个新的版本,只是更新的标签名称
easy-deploy -p 80:80 -v some/path:other/path my-image:2
代理的照顾运行命令。 my-image:1
将被替换为my-image:2
而不会让任何请求下降。
另一种方法,您可能需要检查https://www.chrismoos.com/2016/09/28/zero-downtime-deployments-kubernetes/我已经在生产中遵循此设置并且工作得很好。不完全是你需要的,只是要记住。 –
谢谢,但它远比我的目的! –