更新生产服务器和自动化

更新生产服务器和自动化

我想澄清的是,我并不是一名系统管理员专业人士,也许我的问题已经得到解答了,但只要我在 google/serverfault/SO 上搜索,我找不到任何类似的东西。

假设我们有两个要更新的单个文件ssh生产服务器。我们可以使用-来实现git。据我所知,文件会逐个上传。现在假设,我们希望上传这两个文件,at once并且我们绝不希望用户面临file1UpdatedVersion和的不幸情况file2OldVersion

因此我认为我们必须关闭服务器,上传文件,进行一些测试确保一切正常,然后再次打开服务器。

是否有任何自动化软件,我们可以向其中发送要上传的文件列表,并向其提供一些测试用例,其中我们的更新将被视为成功,然后shutdown-update-start server以这种方式为我们提供最低限度的服务server downtime

谢谢你的时间 !

答案1

有很多方法可以实现部署自动化,同时最大程度减少停机时间。根据您当前的设置,可以应用不同的方法。一个好的开始可能是将实际发布步骤变为符号链接的更改。

假设您一开始位于app v1/var/www/app/v1然后您有一个名为 的符号链接/var/www/app/current指向该v1文件夹。您将 Web 服务器配置为使用该current文件夹作为文档根目录。当您即将发布 时v2,您将其上传到/var/www/app/v2,然后更改current符号链接以指向v2。使用此方法,您将获得最少的停机时间(如果有的话),并且用户不会处于同时提供不同版本的状态。

为了避免手动执行此操作,可以使用一些工具来为您执行此操作。以下是一些例子

如果你想进一步推进你的部署过程,我建议你看一下不可变服务器概念或工具,例如Docker

相关内容