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的任务。你看它只有在overridePublishProfileSettings
是true
时才会生效。否则使用 PulishProfile.xml。
【讨论】:
感谢您的回答。是的,这种方式非常适合我们的无状态服务。另外,我必须将overwriteBehavior
设置为Always
,否则部署不成功(因为之前这个设置是SameAppTypeAndVersion
)以上是关于isUpgrade 设置如何影响 Azure DevOps 中 Service Fabric 应用程序部署任务中的部署过程的主要内容,如果未能解决你的问题,请参考以下文章