我们有一个基于模块的MVC 5应用程序(功能组)。我们还有专门负责每个模块的团队。所以我的问题是:是否可以进行某种部分部署,我们只发布所需的更改?
我可能更好地解释一下我们今天的工作方式:
现在,当任何团队的每个成员提交代码时,我们运行CI构建和单元测试,并将站点部署到测试服务器,其中进行提交的开发人员测试它自己的代码,一旦他们对此感到满意我们将该版本部署到测试中。但这带来了一个问题,因为开发人员对HIS功能感到满意,但其他开发人员可能与其他模块中的开发的其他部分处于同一阶段,因此不需要的更改会部署到测试中。
当我将ASP.Net Webforms与其他项目一起使用时,我们通常在页面/代码后面进行部署并且它很好但现在所有内容(控制器,帮助器等)都被捆绑到一个程序集中,如果我们改变了在Bin文件夹上的东西,AppDomain被回收,所以应用程序基本上重新启动。
当然,我们正在处理这个测试部署问题,只是在发布测试内容之前与其他团队沟通,但我想知道是否还有更多我们可以做的事情,这就是为什么我想到了部署。
答案 0 :(得分:3)
如果你有不同的团队在同一个项目上工作,你应该看看branch strategies。在您的特定方案中,每个功能(或每个模块)的分支可能正常工作。
在您的情况下,必须在“main”分支上启用CI。当团队启动某个功能时,他们会创建一个分支。在开发期间,他们致力于该分支(您可以启用自动化测试执行并在“功能”分支上部署到开发人员)。完成一项功能后,他们将更改合并到“主”,CI创建一个版本并将其部署到服务器。但是有一个缺点,即合并期间可能会发生冲突,因此您需要确保您的团队尽可能多地提交主分支以最大限度地减少这些问题。