isUpgrade 设置如何影响 Azure DevOps 中 Service Fabric 应用程序部署任务中的部署过程

Posted

技术标签:

【中文标题】isUpgrade 设置如何影响 Azure DevOps 中 Service Fabric 应用程序部署任务中的部署过程【英文标题】:How isUpgrade setting affects deployment process in Service Fabric Application Deployment task in Azure DevOps 【发布时间】:2020-11-18 20:13:12 【问题描述】:

Azure Devops 具有将应用部署到 ServiceFabric 的标准任务。该任务名为 Service Fabric 应用程序部署,并记录在 here。在其他设置中,它包含一个可选的布尔 isUpgrade 设置(默认值“true”)。我尝试将其显式设置为 true 和 false,但我没有发现任务的行为有任何差异。在这两种情况下,部署都是成功的,所有以前部署的包仍然被预配,并且 Azure Pipelines 日志是相同的。部署时间也是一样的。

我的问题是设置会影响什么?也许,有人在他的 CI 管道中使用了它。

【问题讨论】:

【参考方案1】:

Service Fabric 中有两种部署类型。这个isUpgrade 标志控制您正在执行的操作升级类型。

常规

基本上这会删除旧应用程序并部署新版本。因此,如果您有 Statefull 服务,这将删除所有状态。当您进行定期升级时,您将有停机时间。

升级

升级会做很多事情,它会保持状态,会做健康检查,确保服务可用。当运行状况检查失败时回滚,... 如果您的应用程序或服务未发生变化,则集群中不会发生任何变化。

通常升级会花费更多时间(这在很大程度上取决于您的健康检查规则)。见application upgrade flowchart

更多关于2 types的信息

如果你look at the code的任务。你看它只有在overridePublishProfileSettingstrue 时才会生效。否则使用 PulishProfile.xml。

【讨论】:

感谢您的回答。是的,这种方式非常适合我们的无状态服务。另外,我必须将overwriteBehavior设置为Always,否则部署不成功(因为之前这个设置是SameAppTypeAndVersion

以上是关于isUpgrade 设置如何影响 Azure DevOps 中 Service Fabric 应用程序部署任务中的部署过程的主要内容,如果未能解决你的问题,请参考以下文章

Azure 负载测试。了解虚拟用户如何影响性能

Azure,中间表上的聚集索引和性能影响

如何确定分配给 Azure 驱动器的字母?

如何通过 Azure Hdinsight 在 Visual Studio 中使用 pig

AWS 到 Azure 的连接:如何设置站点到站点的连接?

如何在 Azure 网站上设置 machineKey