让我们假设以下流程:
如何让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
答案 0 :(得分:0)
为什么不使用蓝/绿部署形式?
基本上,您有两个折叠器:project-a和project-b。假设您的生产正在项目-a上运行,您将在project-b中部署下一个版本,启动它,对其运行CI测试。然后,一旦所有内容都启动并运行,您就开始将请求定向到project-b(使用loadbalancer,iptables规则或其他任何内容)
现在你可以停止project-a(旧版本)以及你部署的零停机时间。
在下一次部署时,您将在project-a上移动新版本,然后以相反的方式执行完全相同的过程(在项目a中运行,将项目-b重定向到项目-a,杀死项目-b)