你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 逻辑应用 通过减少必须编写的代码量,帮助你更轻松地集成和协调应用、云服务和本地系统之间的数据。
使用 Azure 时, 可靠性是共同的责任。 Microsoft提供了一系列功能来支持复原和恢复。 你负责了解这些功能如何在你使用的所有服务中工作,并选择满足业务目标和运行时间目标所需的功能。
本文介绍如何使逻辑应用工作流能够灵活应对各种潜在的中断和问题,包括暂时性故障、可用性区域中断和区域中断。 它还重点介绍了有关 Azure 逻辑应用服务级别协议(SLA)的一些关键信息。
提高可靠性的生产部署建议
对于生产工作负载,我们建议您:
- 对于具有隔离或网络安全要求的企业和安全工作流,请在单租户 Azure Logic Apps 中创建并运行标准工作流,而不是在多租户 Azure Logic Apps 中创建和运行消费工作流。 有关详细信息,请参阅创建并部署到不同的环境。
- 对于使用单租户 Azure 逻辑应用进行生产部署, 请启用区域冗余 ,以便将逻辑应用资源分散到多个可用性区域。
可靠性体系结构概述
本部分介绍从可靠性的角度来看,服务工作原理最相关的一些重要方面。 本部分介绍逻辑体系结构,其中包括部署和使用的某些资源和功能。 它还讨论了物理架构,该架构提供了服务内部运作方式的详细信息。
逻辑体系结构
部署的主要资源是 一个逻辑应用。 消耗逻辑应用只有一个工作流,而标准逻辑应用可以有多个工作流。 大多数工作流使用一个或多个 连接 来访问其他应用、服务和系统。
如果访问本地系统中的数据,则可以部署 本地数据网关。 每个网关资源在本地计算机上代表一个独立的数据网关安装。 可以使用多台计算机配置本地数据网关以实现高可用性。 有关详细信息,请参阅高可用性支持。
使用 Azure 逻辑应用进行 企业到企业(B2B)企业集成 方案时,可以部署 集成帐户 ,在其中定义和存储逻辑应用工作流使用的项目。
物理体系结构
对于消耗逻辑应用,Azure 逻辑应用会自动管理计算基础结构、状态存储和其他资源。 你无需配置或管理任何虚拟机 (VM)。 消耗逻辑应用在多个客户之间共享计算基础结构。
对于标准逻辑应用程序,Azure Logic Apps 使用专属于你的计算资源,称为 Workflow Service Plans 或 服务计划。 每个计划可以有多个实例,可以选择跨多个可用性区域分布这些实例。 每个实例大致映射到虚拟机(VM),但看不到这些 VM,不需要直接配置或管理它们。 工作流在计划实例上运行。
标准逻辑应用要求配置存储以维护有状态工作流的状态。 有关详细信息,请查看有状态和无状态工作流。
标准逻辑应用使用与 Azure Functions 和 Azure 应用服务类似的底层基础结构。 但是,与其他服务相比,为逻辑应用配置计划的方式存在一些差异。
有关详细信息,请参阅 标准逻辑应用与消耗逻辑应用之间的差异。
暂时性故障的复原能力
暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 暂时性故障在短时间内自行纠正。 重要的是,应用程序可以处理暂时性故障,处理方式通常是重试受影响的请求。
与任何云托管的 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循 Azure 暂时性故障处理指南。 有关详细信息,请参阅有关处理暂时性故障的建议。
在 Azure 逻辑应用中,许多工作流触发器和作会自动支持 重试策略,这些策略会自动重试因暂时性故障而失败的请求。 有关如何更改或禁用重试策略的详细信息,请参阅 Azure 逻辑应用中处理错误和异常。
如果操作失败,你可以自定义后续操作的行为。 你还可以创建“范围”,以将可能失败或成功的相关操作分组在一起。
有关详细信息,请参阅处理 Azure 逻辑应用中的错误和异常。
应对可用区故障的弹性
可用性区域 是在物理上彼此独立的数据中心群组,位于同一个 Azure 区域内。 当一个区域发生故障时,服务可以故障转移到其他区域。
Azure 逻辑应用支持 区域冗余,这些冗余将计算资源和状态分散到多个可用性区域。 将逻辑应用工作负载资源分散到多个可用性区域后,可以改进生产逻辑应用工作负载的复原能力和可靠性。
多租户 Azure 逻辑应用中的新的和现有的消耗逻辑应用工作流会自动启用区域冗余。
Azure 逻辑应用支持“区域冗余”,它将计算资源分散到多个可用性区域。 可以选择为逻辑应用工作流存储的状态配置区域冗余。 将逻辑应用工作负载资源分散到多个可用性区域后,可以改进生产逻辑应用工作负载的复原能力和可靠性。
对于单租户 Azure 逻辑应用中使用工作流服务计划托管选项的标准工作流,你可以选择启用区域冗余。
对于使用应用服务环境 v3 托管选项的标准工作流,你可以选择启用区域冗余。 有关应用服务环境 v3 如何支持可用性区域的详细信息,请参阅 应用服务环境中的可靠性。
Requirements
- 区域支持:在任何支持可用性区域的区域中部署的消耗逻辑应用都是自动区域冗余的。 日本西部例外,目前不支持区域冗余逻辑应用,因为某些依赖服务尚不支持区域冗余。
- 区域支持: 可以在支持 Azure 应用服务可用性区域的任何区域中使用工作流服务计划部署区域冗余的标准逻辑应用。 日本西部例外,目前不支持区域冗余逻辑应用,因为某些依赖服务尚不支持区域冗余。 有关详细信息,请参阅 Azure 应用服务中的可靠性。
- 区域支持:若要查看哪些区域支持应用服务环境 v3 的可用性区域,请参阅 区域。
- 实例计数:必须至少部署工作流服务计划的两个实例。 每个实例大致对应于一个 VM,因此,若要将这些实例(VM)分配到多个可用性区域,必须至少具有两个实例。
Considerations
- 存储:为有状态标准工作流配置外部存储时,必须为存储帐户配置区域冗余。 有关详细信息,请参阅 Azure Functions 的存储注意事项。
连接器:如果逻辑应用是区域冗余,则内置连接器会自动进行区域冗余。
集成帐户:默认情况下,高级 SKU 集成帐户是区域冗余的。
Cost
无需额外付费即可使用区域冗余,该冗余会自动为多租户 Azure 逻辑应用中的新消耗逻辑应用和现有消耗逻辑应用启用。
在单租户 Azure 逻辑应用中具有工作流服务计划的标准逻辑应用时,如果具有两个或更多个计划实例,则无需额外付费即可启用可用性区域。 根据方案 SKU、指定的容量,以及在符合自动缩放条件的情况下扩展或缩减规模的任何实例,来计算费用。 如果启用可用性区域但指定少于两个实例,平台将强制至少创建两个实例,并为这两个实例收取费用。
应用服务环境 v3 具有针对区域冗余的特定定价模型。 有关应用服务环境 v3 的定价信息,请查看定价。
配置可用性区域支持
消耗逻辑应用工作流会自动支持区域冗余,因此无需进行配置。
创建新的区域冗余逻辑应用:若要为标准逻辑应用启用区域冗余,请参阅为 逻辑应用启用区域冗余。
在现有逻辑应用上启用区域冗余:创建服务计划后无法启用区域冗余。 相反,你需要创建启用了区域冗余的新计划,并删除旧计划。
禁用区域冗余:创建工作流服务计划后,无法禁用区域冗余。 相反,你需要创建禁用了区域冗余的新计划,并删除旧计划。
容量计划和缩放
若要准备可用性区域故障,请考虑对计划的容量进行 冗余配置。 超额预配使解决方案能够容忍一定程度的容量损失,并且仍然可以继续运行而不会降低性能。 有关详细信息,请参阅 通过超额配置管理容量。
所有区域正常时的行为
本部分介绍在为区域冗余配置逻辑应用资源并使所有可用性区域正常运行的条件下会发生的情况。
区域之间的流量路由:在正常作期间,工作流调用可以使用区域中任何可用性区域中的计算资源。
区域之间的数据复制:对于有状态工作流,使用区域冗余存储(ZRS)在可用性区域之间同步复制工作流状态。
区域之间的流量路由:在正常作期间,工作流调用分布在所有可用性区域的所有可用计划实例之间。
区域之间的数据副本:对于有状态的工作流,工作流状态将根据您配置的状态存储进行保存。 使用 Azure 存储作为外部存储系统时,需要使用区域冗余存储(ZRS),该存储在可用性区域之间同步复制工作流状态。
区域故障期间的行为
本部分介绍在为区域冗余配置逻辑应用资源时发生可用性区域中断时会发生什么情况。
- 检测和响应:Azure 逻辑应用负责检测可用性区域中的故障。 无需执行任何操作即可启动区域故障转移。
- 通知:当区域关闭时,Microsoft不会自动通知你。 但是,可以使用 Azure 服务运行状况 来了解服务的总体运行状况,包括任何区域故障,并且可以设置 服务运行状况警报 来通知问题。
活动请求:如果可用性区域不可用,Azure 逻辑应用将终止在故障可用性区域中的 VM 上运行的任何正在进行的工作流执行。 平台会自动在不同的可用性区域中的另一个 VM 上恢复工作流。 由于此行为,活动工作流可能会遇到一些暂时性故障或更高的延迟,因为新 VM 会被添加到剩余的可用性区域。
预期的停机时间:Azure 逻辑应用中不会造成停机。 但是,如果依赖于遇到停机的其他服务,逻辑应用也可能受到影响。
预期数据丢失: 不会丢失任何数据。
- 重新路由流量:传入流量自动分发到健康区域中的基础设施。
- 流量重新路由:传入流量会在健康区域可用时自动分发到新的方案实例。 有关详细信息,请参阅 Azure 应用服务的可靠性 - 区域故障期间的行为。
- 非运行时间行为:即使可用性区域遇到中断,区域冗余计划中逻辑应用工作流也会继续运行。 但是,在可用性区域中断期间,非运行时间行为可能会受到影响。 有关这些行为的详细信息和列表,请参阅 Azure 应用服务中的可靠性 - 区域故障期间的行为。
- 非运行时间行为:即使可用性区域遇到中断,区域冗余计划中逻辑应用工作流也会继续运行。 但是,在可用性区域中断期间,非运行时间行为可能会受到影响。 有关这些行为的详细信息和列表,请参阅 Azure 应用服务环境中的可靠性 - 区域故障期间的行为。
区域恢复
当可用性区域恢复时,Azure 逻辑应用会自动在可用性区域中还原实例,移除在其他可用性区域中创建的任何临时实例,并照常在实例之间重新路由流量。
测试区域故障
Azure 逻辑应用管理区域冗余逻辑应用资源的流量路由、故障转移和故障回复。 你不需要启动任何东西。 此功能完全托管,因此无需验证可用性区域故障过程。
对区域范围的故障的复原能力
每个逻辑应用都部署到单个 Azure 区域。 如果该区域变得不可用,你的逻辑应用也会不可用。
用于复原的自定义多区域解决方案
为了提高复原能力,你可以在辅助区域中部署备用或备份逻辑应用,并在主要区域不可用时故障转移到该其他区域。 若要启用此功能,请完成以下任务:
- 在主要区域和辅助区域中部署你的逻辑应用。
- 根据需要重新配置与资源的连接。
- 配置负载均衡和故障转移策略。
- 计划监视主实例的运行状况,并启动故障转移。
有关逻辑应用工作流的多区域部署的详细信息,请参阅:
服务级别协议
Azure 服务的服务级别协议 (SLA) 描述了每个服务的预期可用性,以及解决方案为实现该可用性预期而必须满足的条件。 有关详细信息,请参阅 联机服务的 SLA。