手动回滚应用程序/服务

时间:2016-05-12 17:15:24

标签: azure-service-fabric

我有一个Service Fabric应用程序,下面有一些服务。它们目前都处于1.0.0版本。

我将更新部署到群集版本2.0.0。一切运行正常,部署成功。我注意到一个非常大但在版本中。有没有办法手动回滚到1.0.0版?我唯一发现的是升级过程中的自动回滚。

2 个答案:

答案 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版本。 “回滚”只是旧版本的“升级”。