题
目前,我的团队采用的部署方式感到非常困扰……这很老式,我知道它的工作不太好。但是我不确定如何更改它,所以请给出一些建议...
这是我们当前的设置:
- 2个网络服务器
- 1个数据库服务器
- 1个测试服务器
当前部署适应
- 我们在测试服务器上开发和工作,每个更改都将手动上传到测试服务器。
- 更改或功能完成后,我们将更改提交为SVN存储库。
- 进行更改后,我们将更改上传到第一个Web服务器,在该Web服务器中将每分钟运行一个Cronjob,以在服务器之间同步文件。
很烦人的事情是,每当我们上传文件时,就像同步作业启动一样,同步编辑的文件将看起来损坏,因为它只有半个上计划。另一件事是,每当有部署故障时,很难恢复。这些基本上是我面临的问题,我该怎么办?
此外,由于第一个网络服务器上有文件,需要随时随地与其他服务器同步,因此Cronjob出于原因。
P/S:很抱歉,我忘了提到,SVN服务器已托管。我们对它没有太多的控制,但我相信我可以编辑钩子...
其他提示
我在最后一个地方做了同样的事情。我们的是:
- 每个网站存储库
- 每个专门用于实时网站的网站的分支机构(即
/branches/live
)和测试网站(即/branches/testing
) - 2个可以与SVN交谈的网络服务员
- 可以与SVN交谈的测试服务器
- 所有服务器都安装了SVN命令行客户端
每个Web服务器都独立运行,因此他们并不真正了解彼此 - 这留给了负载平衡器。每个服务器都有一个每3小时运行一次的cronjob, 出口 每个网站的最新版本 live
分支到文件系统上的正确文件夹中。
在我们的测试服务器上,这是一个 查看 的 testing
每个网站的分支机构,也没有Cronjob。开发人员只要想将某些内容放出供用户进行测试,就会更新这些文件夹。
在发展过程中,对 trunk
网站。当更改准备进行测试时,它们被合并到测试分支中,然后在测试服务器上手动更新结帐。当更改准备上线时,它们被合并到现场分支,服务器将在一天结束时进行更新。
在三年的时间里,我们只有一个问题,开发人员犯了一些错误的事情,不得不回滚站点。
作为部分修复,在访问它时在网站上创建一个触发rsync命令的网站上的URL,以便您可以控制RSYNC运行时(显然,您需要确保使用此URL击中服务器1,并且不要公开此URL对公众)。更好的是,请使用Curl在您使用的任何上传脚本的末尾调用Rsync URL。
不隶属于 StackOverflow