部署Azure Web应用程序时最大限度减少停机时间的最佳实践 [英] Best practice for minimizing downtime when deploying Azure Web Apps

查看:14
本文介绍了部署Azure Web应用程序时最大限度减少停机时间的最佳实践的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个应用程序服务计划,在该计划中,我已将我的解决方案的5个组件部署为Web应用程序。我使用Azure DevOps中的"发布管理"将代码部署到这些应用程序。

为了最大限度地减少部署期间的停机时间,我首先部署到分段槽,然后将分段槽交换到生产槽以完成部署。

我已将App Service预热(如here的详细信息)配置为调用将在插槽交换过程中"预热"应用程序的终结点。

这似乎可行,但我有两个问题:

  1. 即使预热已经运行,插槽交换后向应用程序发出的第一个请求也需要很长时间。我怀疑这是因为生产插槽有一个"粘性/插槽设置",据我所知,这需要应用程序重启。为了测试这一点,我删除了插槽设置,但延迟仍然存在。

  2. 应用程序相互依赖,插槽交换(即使在Azure DevOps中并行启动)不能保证同时完成,这意味着新代码可能与旧代码交互。虽然我们可以解决此问题,但这并不是最佳方案。

根据我到目前为止的调查,我能想到的解决这些问题的唯一方法是启动第二个应用程序服务计划,并将流量管理器配置为坐在这两个服务计划的前面。在部署时,我将在部署到另一个服务计划时确定其中一个服务计划的优先级,完成后,在升级另一个服务计划的同时将流量转移到新部署的服务计划,然后在两者处于相同代码级别时再次平衡两者之间的流量。

在Azure中使用WebApp时,零宕机部署的当前"最佳实践"是什么?

与流量管理器重复的服务计划是否可行,如果不可行,您有什么建议?

推荐答案

我建议将本地CAHCE部署插槽结合使用,以防止任何停机。

将粘滞应用设置WebSite_LOCAL_CACHE_OPTION添加到您的生产槽中,值始终为。如果您正在使用WEBSITE_LOCAL_CACHE_SIZEINMB,,还可以将其作为粘滞设置添加到生产插槽

·创建过渡槽并发布到您的过渡槽。如果获得生产插槽的本地缓存的好处,则通常不会将分段槽设置为使用本地缓存来启用分段的无缝生成-部署-测试生命周期。

·根据您的暂存槽测试您的站点。

·准备好后,在暂存生产插槽之间执行交换操作

·粘滞设置包括名称和粘滞到插槽。因此,当暂存槽交换为生产时,它将继承本地缓存应用程序设置。新交换的生产插槽将在几分钟后针对本地缓存运行,并将作为交换后插槽预热的一部分进行预热。因此,插槽交换完成后,您的生产插槽将针对本地缓存运行

请参阅Azure最佳实践文档:

https://docs.microsoft.com/en-us/azure/app-service/deploy-best-practices

https://docs.microsoft.com/en-us/azure/app-service/overview-local-cache

这篇关于部署Azure Web应用程序时最大限度减少停机时间的最佳实践的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆