选择编排框架

本文内容:

  • 使用协调框架的好处。
  • 哪种框架最适合你的方案。

Azure 提供了两个面向开发人员的业务流程框架,可用于生成应用:Azure Functions 中托管的应用的 Durable Functions ,以及托管在其他计算平台上的应用的 Durable Task SDK 。 业务流程(也称为 工作流)涉及排列和协调多个(长时间运行)的任务或进程(通常涉及多个系统)以某种顺序执行。 业务流程框架保证 持久执行,这意味着当发生中断或基础结构故障时,执行可以在另一个进程或计算机中从故障点继续执行。 Durable Task SDK 和 Durable Functions 通过内置状态持久性和自动重试确保业务流程持久执行,从而无需额外设计容错架构即可编写业务流程。

需要协调的场景

以下这些方案需要利用 Durable Task SDK 和 Durable Functions 的常见协调模式来进行工作流编排:

  • 函数链接: 对于涉及顺序步骤的方案,每个步骤可能取决于上一步的输出。
  • 扇出/扇入: 对于批处理作业、ETL(提取、传输和加载),以及需要并行处理的任何方案。
  • 人工交互: 对于双重身份验证,需要人工干预的工作流。
  • 异步 HTTP API: 在任何场景下,适用于客户端不希望等待长时间任务完成的情况。

以下两种方案共享 函数链接 模式。

在电子商务网站上处理订单

假设你创建了一个电子商务网站。 您的网站可能需要任何客户购买的订单处理工作流。 工作流可能包括以下顺序步骤:

  1. 检查清单
  2. 处理付款
  3. 更新清单
  4. 生成发票
  5. 发送订单确认

调用 AI 代理来规划行程

在此方案中,假设你需要创建智能行程规划器。 规划者应遵循一系列已知步骤:

  1. 根据用户要求建议想法
  2. 获取首选项确认
  3. 进行所需的预订

可以为每个任务实现 AI 代理,然后编写按特定顺序调用这些代理的业务流程。

业务流程框架选项

Durable Functions 和 Durable Task SDK 均以多种语言提供,但它们的使用方式存在一些差异。 以下各节介绍了每个框架选项的重要差异和用例。

持久性函数

作为 Azure Functions 的一项功能, Durable Functions 继承大量资产,例如:

  • 通过 Functions 扩展与其他 Azure 服务集成
  • 本地开发体验
  • 无服务器定价模型
  • 在 Azure 应用服务和 Azure 容器应用中托管

Durable Functions 在 存储后端 中保留状态,并支持:

何时使用 Durable Functions

如果需要使用工作流生成事件驱动应用,请考虑使用 Durable Functions。 Azure Functions 扩展提供与其他 Azure 服务的集成,使构建事件驱动的方案变得简单。 例如,使用 Durable Functions 的情况下:

  • 当消息传入 Azure 服务总线或文件上传到 Azure Blob 存储时,可以轻松启动业务流程。
  • 可以使用 Azure Functions 的计时器和 HTTP 触发器轻松构建定期运行或响应 HTTP 请求的编排。

考虑 Durable Functions 的另一个原因是你已编写 Azure Function 应用并意识到需要工作流。 由于 Durable Functions 编程模型类似于 Function,因此可以加速开发。

试试看

浏览以下快速入门或示例之一,了解更多关于 Durable Functions 的信息。

快速入门
快速入门 DESCRIPTION
持久任务计划程序(预览版) 使用 Durable Task Scheduler 创建 Durable Functions 应用 创建一个“hello world”Durable Functions 应用,该应用使用 Durable Task Scheduler 作为后端、在本地测试并发布到 Azure。
Azure 存储 使用 Azure 存储后端创建 Durable Functions 应用:
- .NET
- Python
- JavaScript/TypeScript
- 爪哇岛
- PowerShell
创建一个“hello world”Durable Functions 应用,该应用使用 Azure 存储作为后端、在本地测试并发布到 Azure。
MSSQL 使用 MSSQL 创建 Durable Functions 应用 创建一个“hello world”Durable Functions 应用,该应用使用 MSSQL 作为后端、在本地测试并发布到 Azure。
示例
示例 DESCRIPTION
订单处理工作流 使用 Durable Functions 创建订单处理工作流:
- .NET
- Python
此示例实现订单处理工作流,其中包括检查库存、处理付款、更新库存和通知客户。
智能 PDF 摘要生成器 创建使用 Durable Functions 处理 PDF 的应用:
- .NET
- Python
此示例演示如何使用 Durable Functions 协调使用 Azure 认知服务和 Azure OpenAI 处理和汇总 PDF 的步骤。

持久任务 SDK 与持久任务计划程序(预览版)

Durable Task SDK 是必须与 Durable Task Scheduler 一起使用的客户端 SDK。 这些 Durable Task SDKs 将您编写的编排连接到 Azure 中的 Durable Task Scheduler 编排引擎。 使用持久任务 SDK 的应用可以在任何计算平台上运行,包括:

  • Azure Kubernetes 服务
  • Azure 容器应用 (Azure Container Apps)
  • Azure 应用服务
  • 本地虚拟机(VM)

持久任务计划程序(目前为预览版)充当业务流程引擎和存储后端的作用,用于业务流程状态持久性。 持久任务计划程序:

  • 完全由 Azure 管理,从而消除管理开销
  • 提供高业务流程吞吐量
  • 提供现成仪表板,用于业务流程监视和调试
  • 包括本地模拟器

何时使用Durable Task SDK

如果不想使用 Azure Functions 编程模型,Durable Task SDK 提供了一种轻量且相对不具限制性的编程模型,用于编写工作流。

如果需要使用官方Microsoft支持在本地 Azure Kubernetes 服务或 VM 上运行应用,应考虑使用 Durable Task SDK。 虽然 Durable Functions 也可以在这些平台上运行,但没有官方支持。

试试看

使用以下任一快速入门来配置您的应用程序,以便将 Durable Task Scheduler 与 Durable Task SDKs 搭配使用。

快速入门 DESCRIPTION
本地开发快速入门 使用 .NET、Python 或 Java SDK 创建具有 Durable Task SDK 和 Durable Task Scheduler 的应用 使用 Durable Task Scheduler 模拟器在本地运行扇入/扇出编排,并使用仪表板查看编排历史记录。

注释

Durable Task Framework (DTFx) 是一个开源 .NET 业务流程框架,类似于 .NET Durable Task SDK。 虽然它 可用于 生成在 Azure Kubernetes 服务等平台上运行的应用,但 DTFx 不会获得官方Microsoft支持

后续步骤