我有一个Service Fabric应用程序,下面有一些服务。它们目前都处于1.0.0版本。
我将更新部署到群集版本2.0.0。一切运行正常,部署成功。我注意到一个非常大但在版本中。有没有办法手动回滚到1.0.0版?我唯一发现的是升级过程中的自动回滚。
答案 0 :(得分:5)
马特的回答是正确的,但我会在这里详细说明。
关键是要了解应用程序部署期间的不同步骤:
Visual Studio将这些内容整合到单个“发布”和“升级”操作中,以使其变得简单方便。但这些实际上是Service Fabric管理API中的单个命令(通过PowerShell,C#或HTTP)。让我们快速看看这些步骤是什么:
复制强>: 这只需要您编译的应用程序包并将其复制到群集。没什么大不了的。
<强>注册强>: 这是您案件中的重要一步。 Register基本上告诉集群它现在可以创建应用程序的实例。最重要的是,您可以注册同一应用程序的多个版本。此时,您的应用程序尚未运行。
创建强>: 这是您注册的应用程序的实例创建并开始运行的地方。
在我们升级之前,让我们看一下群集上的内容。第一次使用应用程序的1.0.0版本(称为FooType)完成此部署过程时,您将只注册一种类型:
FooType 1.0.0
现在您已准备好升级了。您首先将新应用程序包与新版本(2.0.0)一起复制到群集。然后,您注册新版本的应用程序。现在您已注册了该类型的两个版本:
FooType 1.0.0
FooType 2.0.0
然后,当您运行升级命令时,Service Fabric将获取1.0.0的实例并将其升级到2.0.0。如果您需要在升级完成后将其回滚,只需使用相同的升级命令将应用程序实例从2.0.0“升级”回1.0.0。您可以这样做,因为1.0.0仍在群集中注册。请注意,版本号实际上对Service Fabric没有意义,只是它们是不同的字符串。如果我愿意,我可以使用“orange”和“banana”作为我的版本字符串。
因此,关键是当您从Visual Studio进行“发布”以升级您的应用程序时,它正在执行所有这些步骤:它是复制,注册和升级。在您的情况下,您实际上并不想重新注册1.0.0,因为它已经在群集上注册。您只想再次发出升级命令。
对于偶数更长的说明,请参阅:Blue/Green Deployments with Azure ServiceFabric
答案 1 :(得分:0)
只需遵循相同的升级程序,但请定位1.0.0版本。 “回滚”只是旧版本的“升级”。