更新生产服务器和自动化

我想清楚,我不是一个系统pipe理员专业任何方式,也许我的问题已经答复,但只要我search谷歌/服务器错误/所以我没有find类似的东西。

假设我们有两个单个文件,我们要在一台生产服务器上进行更新。 我们可以用sshgit来做到这一点。 AFAIK文件逐一上传。 现在假设,我们希望这两个文件立即上传at once而不是我们希望用户面对file1UpdatedVersionfile2OldVersion的不幸的情况。

所以我认为我们必须closures服务器,上传文件,做一些testing,一切工作正常,再次打开服务器。

是否有自动化软件,我们可以发送上传的文件列表,给它提供一些testing用例,我们的更新将被视为成功,然后shutdown-update-start server ,为我们提供最小的server downtime

谢谢你的时间 !

有很多方法可以使停机时间最短来自动部署。 根据您当前的设置,可以应用不同的方法。 一个好的开始可能是让你的实际发布步骤成为符号链接的变化。

假设您从位于/var/www/app/v1 ,则会有一个名为/var/www/app/current的符号链接指向v1文件夹。 您将您的Web服务器configuration为使用current文件夹作为文档根目录。 当您即将发布v2 ,将其上载到/var/www/app/v2 ,然后将current符号链接更改为针对v2 。 使用这种方法,您将获得最less的(如果有的话)停机时间,并且用户不会同时处于不同版本的状态。

为了避免手动做这个,有些工具可以为你做这个。 这里有几个例子

  • Capistrano的
  • 米娜
  • 装运它

如果您想要将您的部署过程更进一步,我build议您查看不可变的服务器概念或诸如Docker之类的工具