Nodejs 的零停机部署

Nodejs 的零停机部署

在我的公司,我们有一个 nodejs api,带有一个前端应用程序。

目前它是一个systemd服务和一个nodejs集群。

当我们部署新版本时,我们会重新启动 systemd 服务,并且该服务会停机几秒钟。

导致订单在没有任何警告或解释的情况下被拒绝、服务不可用等。

基础结构如下:

机器 A:nginx 反向代理到机器 B 的 6081 端口

机器 B:Varnish 监听端口 6081,代理到端口 5000 上的 nodeJS 集群

该服务不需要很高的可扩展性。

我想将其改进为零停机部署。

目前我知道两种实现零停机时间的方案:

  • 使用nodejs集群的pm2集群
  • 一个 Docker 容器,但据我了解,它确实需要一个协调器?

我们使用 gitlab。docker 镜像可以从 CI/CD 构建。

还有什么其他选择?

相关内容