为Azure / GitHub Publishing组织n层应用程序分支

时间:2013-01-16 15:17:37

标签: .net git azure github n-tier-architecture

我计划开发一个多层.NET应用程序,在Azure上至少托管三个独立的层:

  • 网络前端
  • 后端/工作人员角色
  • 数据库

我想将Azure Git Publishing与GitHub一起使用,以便分别对每个图层进行连续部署。组织git分支以便为每个组件单独启用Azure部署,同时在它们之间共享代码的最佳方法是什么?

最好,我希望将所有代码放在一个git分支中,并为Azure中的每个代码设置单独的构建/发布过程。但是,我怀疑这不起作用,因为:

  1. Azure使用分支中的任何推送来触发部署。我不希望我的前端更新触发我的后端部署。
  2. 据我所知,没有办法配置Azure用来生成要发布的输出的构建命令。
  3. 如果我需要使用单独的Git分支,那么在它们之间共享代码的最简单方法是什么?

2 个答案:

答案 0 :(得分:2)

亲切的先生,

听起来你需要为每个部署目标提供一个git repo。也就是说,希望独立于任何其他层部署的每个层的回购。另外还有一个共享代码的repo。据推测,共享代码可以编译成一些dll,可以通过将它们捆绑为NuGet包来与其他项目共享。通过这种方式,Web前端不会在共享代码更新的奇思妙想时触发部署。只有在你完成NuGet更新时才会发生这种情况。

那就是说,我想,“不希望更新前端触发我的后端部署”真的是一个要求吗?在我的工作场所,我们几乎所有的部署都是完全自动化的。没有停机时间,只是有效。我们有时每天部署5次,10次或更多次。我们不必关心多少次。如果你也可以这样做,那么你可以拥有一个大的git仓库。是的,偶尔不会影响图层的更改仍然会部署该图层,但是,不管怎么样。代码组织和共享变得非常简单。

你的朋友, 约什

答案 1 :(得分:0)

根据this related question,Azure git发布仅适用于网站,而不适用于云服务。

因此,允许单独项目发布的组织问题是无关紧要的。最简单的选择是将项目保留在单个Git分支中并使用传统的Azure部署(而不是自动Git发布)。