Subversion规划开发,升级,直播

时间:2010-09-14 03:58:09

标签: svn deployment live production staging

我正处于重组我们的颠覆过程和部署的计划阶段,以尽量减少代码丢失和生产部署问题。我们当前的系统只是在随机服务器上创建一个子域名,以便在推送之前进行测试,这让我疯狂。

我希望听到有关我当前计划的一些建议或意见,并获得有关如何改善此系统的反馈或想法。

详细信息:

  • 小型开发团队。
  • Dev和staging存在于同一个 机。
  • 生产版本存在于其他版本上 服务器。
  • 大约30个项目与网络相关 (网站,网络应用程序,网络 服务)。
  • 大约30个项目是桌面版 应用程序,DLL,组件,bat 文件等。
  • 可通过以下方式访问Dev子域名 仅限VPN访问。
  • 为网络暂存子域名 公共可访问。 exe分期 只能通过VPN访问。
  • 每个项目都有一个dev和 暂存子域和存储库。 开发版是一个分支 staging trunk。
  • 主要开发者存储库: dev.domain.com(使用的通用名称 例如)。
  • 主要临时存储库: staging.domain.com(通用名称 用于举例)。

部署:

项目的开发版本是暂存中继的分支。 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

这看起来怎么样?是否有任何我失踪或将失去的功能?他们应该使用更好的系统吗?

1 个答案:

答案 0 :(得分:1)

看起来不错。基本上你有“功能分支”来开发从每个发布分支(中继)隔离的东西,你有一个“手动”政策,所以他们应该在90%的时间内具有发布质量。 您可以为您的版本添加标签,这样您就可以准确地知道已发布的内容(以及需要回滚的内容是非常错误的。)

只要开销保持可管理,就保持项目隔离。

竖起大拇指。