零停机部署Nodejs应用程序

时间:2017-06-04 11:04:50

标签: node.js deployment uptime downtime

我有一个Nodejs应用程序,其中包括用于正常运行时间的群集和用于错误处理的域。

现在实现零停机部署,我有一条指令,但我需要帮助才能将此指令转换为Nodejs代码(我需要一个示例)。

这是指示:

  1. 当master启动时,给它一个符号链接到工作人员代码。
  2. 部署新代码后,更新符号链接
  3. 向master发送信号:fork new workers!
  4. Mater告诉老员工关闭,从新代码中征求新员工。
  5. Mater过程永不停止运行
  6. Instruction source - >幻灯片编号39

1 个答案:

答案 0 :(得分:1)

对于100%的正常运行时间,无论您使用何种语言,道路都或多或少相同:

  • 将会话令牌存储在数据库中,而不是存储在内存数组中。这将允许用户在交换版本后保持登录状态。

  • 在Docker容器中运行服务器

  • 当您需要运行新的服务器版本时,使用代理来处理交换容器。

我写了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

代理人负责。 <{1}}将替换为my-image:1,而不会丢弃任何请求。