如何在不停止和重新启动的情况下部署 Web 应用程序

问题描述

我之前将项目构建为二进制文件并部署到服务器。并以 nohup 开头。但是如果我更新我的代码并重建我的程序。我必须先终止进程,然后更新文件并重新启动。

我的问题是:

  1. 应用必须至少关闭几秒钟。
  2. 我必须手动更新文件登录服务器,终止进程,替换文件,然后启动它)

有没有热更新程序,比如PHP?我只需要通过 git(或 svn 或其他方式)将我的代码更新到服务器。然后服务器将重建应用程序并正常重启它。

解决方法

通常您会在反向代理(例如 nginx 或任何其他负载平衡器)后面运行多个 Web 应用程序实例。如果几秒钟的停机时间对您来说是个问题,那么无论如何您都需要进行 HA 设置。在这样的设置中,您可以进行滚动更新,您可以一个一个地替换实例。
快速谷歌搜索将让您找到如何进行部署的说明,例如:https://www.digitalocean.com/community/tutorials/how-to-deploy-a-go-web-application-using-nginx-on-ubuntu-18-04