你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

任务关键型全局内容分发

缓存是为用户减少后端服务负载并优化性能的常用方法。 内容分发网络 (CDN)(包括 Azure Front Door)在网络边缘提供缓存功能。

任务关键型工作负载通常使用多个 CDN 来获得更长的运行时间。 如果一个 CDN 遇到中断或性能下降的情况,流量会自动转移到另一个 CDN。

如果你实现多个 CDN,请考虑此方法的影响。 每个 CDN 都为应用程序服务器提供单独的网络路径,需要单独配置和测试每个 CDN。

本文介绍将 Azure Front Door 与合作伙伴 Verizon 的 CDN 配合使用的方法。 此方法适用于严重依赖缓存来交付静态内容分发、媒体和大规模电子商务应用程序的解决方案。

注意

此用例是整体设计策略的一部分,该策略涵盖 Azure Front Door 不可用时的替代方法。 有关上下文和注意事项的信息,请参阅任务关键型全局 Web 应用程序

方法

Verizon 的 CDN 和 CDN 平台 (Edgio) 可以集成到 Azure 解决方案中。 可以通过 Azure 门户和 API 对其进行配置。 该平台与 Microsoft 的基础结构相隔离。

这种隔离在灾难情况下提供了高度的复原能力。 如果发生中断或灾难,流量会自动在 Azure Front Door 和 Verizon 的 CDN 之间转移。 可以使用 Azure 流量管理器来检测中断,并将流量重定向到备用 CDN。

Azure Front Door 和 Verizon 的 CDN 之间的流量管理器路由示意图。

  • 使用优先级路由模式的流量管理器有两个终结点。 默认情况下,流量管理器通过 Azure Front Door 发送请求。 如果 Azure Front Door 不可用,流量管理器会改为通过合作伙伴 CDN 发送请求。

  • Azure Front Door 处理和路由大部分应用程序流量。 Azure Front Door 将流量路由到相应的源应用程序服务器,并提供应用程序的主路径。 如果 Azure Front Door 不可用,流量会自动通过辅助路径重定向。

  • Verizon 的 Azure CDN 配置为将流量发送到每个源服务器。

  • 源应用程序服务器需要准备好随时接受来自 Azure Front Door 和 Verizon 的 Azure CDN 的流量。

注意事项

任务关键型全局 Web 应用程序中所述的注意事项仍适用于此用例。 下面是一些其他要点:

选择 CDN

在此示例中,我们建议使用 Verizon 的 CDN。 Verizon 的 CDN 通常是一个不错的选择,因为它可以通过 Azure 进行部署、配置和计费,从而降低操作复杂性。 它在 Azure Front Door 的单独物理基础结构上运行,这意味着它可以对 Microsoft 基础结构上的中断或问题进行复原。

你可以选择使用不同的 CDN,甚至选择使用多个 CDN,具体取决于你的要求和风险容忍度。

功能奇偶一致性

Azure Front Door 和 Verizon 的 CDN 提供不同的功能,两种产品之间的功能并不等效。 例如,它们对 TLS 证书、WAF 和 HTTP 规则的处理均不同。

请仔细考虑所使用的 Azure Front Door 功能,以及备用 CDN 是否具有等效功能。 有关详细信息,请参阅入口路径的一致性

缓存填充

如果在主动-被动模式下运行多个 CDN,则在故障转移期间,被动模式下配置的 CDN 需要在故障转移期间从源执行缓存填充。

测试 Azure Front Door 和备用 CDN 之间的故障转移,以检测异常或性能问题。

如果解决方案在缓存填充期间面临性能问题的风险,请考虑采用以下方法来降低风险:

  • 横向扩展或纵向扩展源以应对更高的流量级别,尤其是在缓存填充期间。

  • 预填充两个 CDN。 你可以通过被动 CDN 提供一定比例的最常用内容,即使在故障转移事件发生之前也是如此。 例如,可以考虑使用加权流量路由模式

权衡

使用多个 CDN 需要权衡利弊。

  • 成本。 解决方案的总体成本可能会增加。 部署多 CDN 体系结构时,需要为多个 CDN 付费。 请确保了解解决方案中的每个 CDN 以及部署的所有其他组件的收费方式。

  • 性能。 在 Azure Front Door 和备用 CDN 之间进行故障转移时,可能会出现性能问题。

    一个常见的问题是 CDN 在主动-被动模式下运行时缓存重新填充。 被动模式下配置的 CDN 需要从源重新填充其缓存。 在此过程中,它可能会使源系统重载。

后续步骤

查看全局 HTTP 入口方案,了解它是否适用于你的解决方案。