Service Fabric - 如何在一个集群上部署多个代码分支?

时间:2017-02-28 02:57:40

标签: azure-service-fabric service-fabric-on-premises

由于每个群集必须至少具有3台服务器的硬件要求,我希望使用该硬件来支持多个分支/环境。具体来说,我们通常同时运行3个Dev和3个Test分支,以支持多个并行开发项目的应用程序。在我们发布到生产之后,代码被合并回到其他分支中。

我知道我可以创建应用程序类型的多个实例,但我认为我真正需要的是在同一个集群上有多个版本的Application Type。它很有可能同时在A和B分支中发生。我们希望测试并将两个分支部署到Dev Cluster。

类似地,我想使用相同的集群来公开测试环境端点。因此,当代码被提升时,我可以部署应用程序的TestB版本,如果发生错误修复,那么这些修复将被修复并部署在该应用程序类型的DevB版本中。

要处理WebAPI端点我们计划让端口问题让构建脚本选择特定于环境的WEBAPI服务清单,因为它包含将Service Fabric应用程序公开给调用应用程序的端口号。因此,我将拥有一个ServiceManifest-DevB.xml文件,该文件将被重命名为普通的旧ServiceManifest.xml,并在发布时与DevB构建打包。然后ServiceManifest-TestB.xml将执行相同但具有不同的端口。这里的另一个选择是Tokenizer。

但我在努力研究如何在群集上运行相同应用程序类型的不同版本?我可以在参数文件中覆盖应用程序类型或沿着这些行吗?我真的希望我不需要为此建立6个集群?这是一大堆不会飞的硬件。

请提前帮助和谢谢, 格雷格

2 个答案:

答案 0 :(得分:3)

一年前我有这个问题,并把它放下了。现在回来了,这次我会记录下来!!!

我在Dev和Test环境中使用一个集群,我们使用两个分支。我需要能够在不同的应用程序名称下为这两个分支部署应用程序。

为了解决这个问题,我遵循了ps1的方法。首先看一下刚刚将PublishProfile传递给Publish-NewServiceFabricApplication.ps1的Deploy-FabricApplication.ps1。这个人使用Utilities.ps1中名为Get-ApplicationNameFromApplicationParameterFile的方法。所有这一切都是打开环境特定的应用程序参数文件并从顶部读取它:

使用这是我的Dev Application Paramter文件:

<Application xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="fabric:/MyAppDEVA" xmlns="http://schemas.microsoft.com/2011/01/fabric">

在我的测试应用程序参数文件&#34;

中使用它
<Application xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="fabric:/MyAppTEST" xmlns="http://schemas.microsoft.com/2011/01/fabric">

当你知道时,轻松的轻松,知道是一半的战斗。

答案 1 :(得分:1)

通过New-ServiceFabricApplication创建应用程序实例时,可以传递所需的应用程序版本。只需复制,注册,然后新建您需要的应​​用程序类型和版本。