我正处于重组我们的颠覆过程和部署的计划阶段,以尽量减少代码丢失和生产部署问题。我们当前的系统只是在随机服务器上创建一个子域名,以便在推送之前进行测试,这让我疯狂。
我希望听到有关我当前计划的一些建议或意见,并获得有关如何改善此系统的反馈或想法。
详细信息:
部署:
项目的开发版本是暂存中继的分支。 Staging保存特定项目的存储库。然后手动将文件复制到生产位置或执行部署脚本。
示例:开发人员使用从projectname.projecttype.dev.domain.com(site1.web.dev.domain.com)获取的本地副本。对本地版本进行了更改,并将其合并到项目开发分支进行测试。完成所有测试后,分支将合并到项目主干中。如果项目主干通过所有测试,项目将被推送。
Subversion存储库结构: *注意:文件结构将匹配域名的结构。 *
开发分支:此服务器上的签出始终发生在本地开发环境中。
dev.domain.com
web.dev.domain.com
site1.web.dev.domain.com
site2.web.dev.domain.com
exe.dev.domain.com
app1.exe.dev.domain.com
app2.exe.dev.domain.com
Staging trunk:开发人员从未接触过。仅通过将分支合并到特定项目的主干中来更新文件。 在推送之前测试安装。应该假定为具有生产能力但不能让客户访问。
staging.domain.com
web.staging.domain.com
site1.web.staging.domain.com
site2.web.staging.domain.com
exe.staging.domain.com
app1.exe.staging.domain.com
app2.exe.staging.domain.com
这看起来怎么样?是否有任何我失踪或将失去的功能?他们应该使用更好的系统吗?
答案 0 :(得分:1)
看起来不错。基本上你有“功能分支”来开发从每个发布分支(中继)隔离的东西,你有一个“手动”政策,所以他们应该在90%的时间内具有发布质量。 您可以为您的版本添加标签,这样您就可以准确地知道已发布的内容(以及需要回滚的内容是非常错误的。)
只要开销保持可管理,就保持项目隔离。
竖起大拇指。