【问题标题】:Service Fabric - How to deploy multiple branches of code on one cluster?Service Fabric - 如何在一个集群上部署多个代码分支?
【发布时间】:2017-07-18 20:52:24
【问题描述】:

由于每个集群必须至少有 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 个集群?那是一吨不会飞的硬件。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    为了弄清楚这一点,我跟踪了 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">
    

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

    【讨论】:

    • 如何让它在相同的端口号上工作,有没有办法用一些后缀来改变 url,比如 localhost:20443/SIT/Account/login localhost:20443/UAT/Account/login 类似上面
    【解决方案2】:

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

    【讨论】:

    • 嘿伙计,很抱歉在这里回复您稍有延迟。 :) 如果您是手动部署,那么您有正确的答案,但如果您使用的是应用程序参数文件和发布配置文件,则答案是更新 ApplicationParamter 文件中的 ApplicaitonName。
    猜你喜欢
    • 1970-01-01
    • 2017-08-06
    • 2018-02-20
    • 2019-12-02
    • 2017-03-29
    • 2017-07-25
    • 2017-01-14
    • 2019-12-17
    • 2016-11-24
    相关资源
    最近更新 更多