使用PM2部署NodeJS应用程序(无论是群集还是非群集)

时间:2017-06-26 11:09:28

标签: node.js pm2

让我们假设以下流程:

    服务器上的
  1. / project有一个范围 pm2实例正在运行
  2. 新应用版本推送到掌握
  3. CI构建新版本
  4. 如何让CI将新的应用实例部署到x机器?

    目前的想法: 4. CI将构建转移到服务器上的/ project-next 5. CI在/ project上停止作用域pm2并在/ project-next上开始作用域pm2 6. CI移动/项目 - 项目旁边/项目

    但是第5步会导致应用程序崩溃:如何在没有停机的情况下设置优雅的pm2部署?

    关联的github问题:https://github.com/Unitech/pm2/issues/2944

1 个答案:

答案 0 :(得分:0)

为什么不使用蓝/绿部署形式?

基本上,您有两个折叠器:project-a和project-b。假设您的生产正在项目-a上运行,您将在project-b中部署下一个版本,启动它,对其运行CI测试。然后,一旦所有内容都启动并运行,您就开始将请求定向到project-b(使用loadbalancer,iptables规则或其他任何内容)

现在你可以停止project-a(旧版本)以及你部署的零停机时间。

在下一次部署时,您将在project-a上移动新版本,然后以相反的方式执行完全相同的过程(在项目a中运行,将项目-b重定向到项目-a,杀死项目-b)

相关问题