在我的公司,我们的商业网站有 8 名 Web 开发人员(完全用 PHP 编写,但这无关紧要)。小组中的每个人都在同时从事不同的项目,每当他们完成任务时,他们就会立即部署它(因为这些天业务发展迅速)。
目前,开发发生在一个共享服务器上,所有开发人员都在同一个代码库上工作(使用 RCS 将文件“锁定”远离其他人)。当部署到期时,更改的文件被复制到“暂存”服务器,然后同步脚本将文件上传到我们的主网络服务器,从那里它被分发到其他 9 个服务器。
非常高兴的是,Web 开发团队向我们寻求帮助以改进流程(在我们抱怨了一段时间之后),现在我们设置他们的开发环境的想法如下:
- 具有虚拟目录的开发服务器,因此每个人都有自己的代码库,
- SVN(或任何其他 VCS)跟踪更改
- 用于测试保存最新签入代码的中央服务器
现在的问题是:我们如何设法将更改的文件部署到服务器上,而不会意外上传其他项目的错误?我的第一个想法是简单地从存储库中导出最新版本,但这不会完全控制文件。
你如何处理这样的情况?你有什么样的部署脚本在行动?
(作为一项特殊挑战:该网站在过去 10 年中不断发展壮大,因此项目并没有被分成小块,而是一个特定功能的文件分布在整个目录树中。)