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