在我的公司,我们有一个 nodejs api,带有一个前端应用程序。
目前它是一个systemd服务和一个nodejs集群。
当我们部署新版本时,我们会重新启动 systemd 服务,并且该服务会停机几秒钟。
导致订单在没有任何警告或解释的情况下被拒绝、服务不可用等。
基础结构如下:
机器 A:nginx 反向代理到机器 B 的 6081 端口
机器 B:Varnish 监听端口 6081,代理到端口 5000 上的 nodeJS 集群
该服务不需要很高的可扩展性。
我想将其改进为零停机部署。
目前我知道两种实现零停机时间的方案:
- 使用nodejs集群的pm2集群
- 一个 Docker 容器,但据我了解,它确实需要一个协调器?
我们使用 gitlab。docker 镜像可以从 CI/CD 构建。
还有什么其他选择?