使用 VSTS 构建的部分部署 - 源代码控制策略
Partial deployment using VSTS builds - source control strategy
我正在构建 VSTS 构建管道以继续集成和部署 MVC web 项目。我的客户希望在继续部署的情况下停机时间为 0,因此我们考虑重组源代码控制策略并将单个代码存储库拆分为以下内容:
核心功能
- 功能 1
- 特征 2 .....
- 特征 n
我们计划将功能保留为核心功能的子分支,并为每个分支和子分支放置单独的构建模板。所以理想的情况是,如果核心功能分支有任何变化,构建应该使用完整代码(分支+子分支)部署,但如果只有 1 个功能分支发生变化,继续部署将只对该分支执行或分支中的功能。
所以需要一些指导的问题是:-
- 功能分支的想法是否可以用于生产?
- .Net MVC 应用程序是 n 层应用程序,具有 Web 层、服务层和存储库层。我是否也应该在核心和功能分支中拆分服务和存储库层以使其分开?
如果我拆分服务和存储库,不同功能之间应该如何通信:
通过服务调用服务?就像功能 1 需要功能 2 的某些功能一样,功能 1 服务调用功能 2 服务并合并结果以将其发送到功能 1 GUI?
功能 1 存储库调用功能 2 存储库,但这种方法会带来功能 1 对功能 2 的依赖,这意味着如果功能 2 在部署时关闭,功能 1 也会遇到错误。
将存储库拆分为多个功能是个好主意吗?
谢谢
将存储库拆分为多个功能是可以的,因为它们可以在其他应用程序(例如移动应用程序)中使用
我建议您可以考虑 VSTS Packages feature 或其他 3rd package feed。工作流程:
- 将更改推送到服务器 > 触发器 CI 构建 > 使用 NuGet task
打包并将包发布到 VSTS 提要
- 为网络项目和编码安装必要的包。
- 将 Web 项目的更改推送到服务器 > 触发 CI 使用当前安装的包构建(不更新包)
- 为新功能更新必要的包到 web 项目
- 将 Web 项目的更改推送到服务器 > 触发器 CI 构建
我正在构建 VSTS 构建管道以继续集成和部署 MVC web 项目。我的客户希望在继续部署的情况下停机时间为 0,因此我们考虑重组源代码控制策略并将单个代码存储库拆分为以下内容:
核心功能
- 功能 1
- 特征 2 .....
- 特征 n
我们计划将功能保留为核心功能的子分支,并为每个分支和子分支放置单独的构建模板。所以理想的情况是,如果核心功能分支有任何变化,构建应该使用完整代码(分支+子分支)部署,但如果只有 1 个功能分支发生变化,继续部署将只对该分支执行或分支中的功能。
所以需要一些指导的问题是:-
- 功能分支的想法是否可以用于生产?
- .Net MVC 应用程序是 n 层应用程序,具有 Web 层、服务层和存储库层。我是否也应该在核心和功能分支中拆分服务和存储库层以使其分开?
如果我拆分服务和存储库,不同功能之间应该如何通信:
通过服务调用服务?就像功能 1 需要功能 2 的某些功能一样,功能 1 服务调用功能 2 服务并合并结果以将其发送到功能 1 GUI?
功能 1 存储库调用功能 2 存储库,但这种方法会带来功能 1 对功能 2 的依赖,这意味着如果功能 2 在部署时关闭,功能 1 也会遇到错误。
将存储库拆分为多个功能是个好主意吗?
谢谢
将存储库拆分为多个功能是可以的,因为它们可以在其他应用程序(例如移动应用程序)中使用
我建议您可以考虑 VSTS Packages feature 或其他 3rd package feed。工作流程:
- 将更改推送到服务器 > 触发器 CI 构建 > 使用 NuGet task 打包并将包发布到 VSTS 提要
- 为网络项目和编码安装必要的包。
- 将 Web 项目的更改推送到服务器 > 触发 CI 使用当前安装的包构建(不更新包)
- 为新功能更新必要的包到 web 项目
- 将 Web 项目的更改推送到服务器 > 触发器 CI 构建