我想澄清的是,我并不是一名系统管理员专业人士,也许我的问题已经得到解答了,但只要我在 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
。使用此方法,您将获得最少的停机时间(如果有的话),并且用户不会处于同时提供不同版本的状态。
为了避免手动执行此操作,可以使用一些工具来为您执行此操作。以下是一些例子: