1

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

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

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

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

但是我正在努力解决如何在集群上运行相同应用程序类型的不同版本?我可以覆盖参数文件中的应用程序类型或类似的东西吗?我真的希望我不需要为此构建 6 个集群?那是一吨不会飞的硬件。

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

4

2 回答 2

3

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

我为我的开发和测试环境使用了一个集群,我们为这些环境使用了两个分支。我需要能够以不同的应用程序名称为这两个分支部署应用程序。

为了弄清楚这一点,我遵循了 ps1 的踪迹。首先,您查看刚刚将 PublishProfile 传递给 Publish-NewServiceFabricApplication.ps1 的 Deploy-FabricApplication.ps1。这家伙在 Utilities.ps1 中使用了一个名为 Get-ApplicationNameFromApplicationParameterFile 的方法。所有这一切都是打开环境特定的应用程序参数文件并从顶部读取它:

使用这是我的开发应用程序参数文件:

<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">

在我的测试应用程序参数文件中使用它”

<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">

当你知道时轻松轻松,知道是成功的一半。

于 2018-03-08T04:37:56.703 回答
1

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

于 2017-02-28T22:58:19.023 回答