注释
术语“工作流”通常具有多个含义。 在 Durable Functions 的上下文中,你可能会看到工作流称为业务流程。 为避免与容器业务流程有任何混淆,本文改用术语工作流。
工作流是通常按特定顺序发生的多步骤操作,并且涉及长时间运行的任务。 需要工作流的实际方案包括:
- 订单处理
- AI 代理业务流程
- 基础结构管理
- 数据处理管道
临时基础结构故障或依赖项停机等事件通常可能会中断工作流执行。 若要防止中断,可以使用 持久执行,从故障点继续执行,而不是重启。
持久执行
持久执行提供了一种容错方法来运行代码,并通过自动重试和状态持久性正常处理故障。 持久执行基于三个核心原则构建:
- 增量执行: 每个操作都独立执行,并依次进行。
- 状态持久性: 保存每个步骤的输出以确保进度不会丢失。
- 容错: 如果步骤失败,则会从上一个成功步骤重试该作,跳过之前完成的步骤。
持久执行适用于需要状态链式操作的场景。 它简化了复杂、长时间运行、有状态和容错应用程序模式的实现。
可以使用 Azure 托管工作流框架之一在 Azure 容器应用中实现持久执行。
Azure 中面向开发人员的工作流框架
Azure 提供了两个面向代码的工作流框架,可用于生成在 Azure 容器应用上运行的应用:
- 持久任务软件开发工具包
- Durable Functions
Durable Task SDK 和 Durable Functions 工作流框架专为开发人员设计,以多种编程语言提供。
持久任务 SDK
持久任务 SDK 是轻型客户端 SDK,提供对创作工作流无特定倾向性的编程模型。 与与 Functions 计算紧密耦合的 Durable Functions 不同,这些便携式 SDK 与任何计算分离。 它们允许应用连接到 Azure 中托管的名为 Durable Task Scheduler 的工作流引擎。
为了确保持久执行,Durable Task SDK 需要存储后端才能在应用运行时保留工作流状态。 持久任务计划程序后端在应用运行时持续检查工作流状态,并自动处理重试以确保持久执行。 计划程序负责以下内容:
- 计划和管理工作流任务执行。
- 存储和维护工作流状态。
- 处理持久性、失败和重试。
- 对容器应用大规模执行业务流程进行负载均衡。
注释
目前,Durable Task Python 和 Java SDK 以预览版提供。 了解建议使用哪个框架供生产使用。
Quickstarts
请尝试使用以下快速入门为容器应用配置 Durable Task SDK。
| 快速入门 | Description |
|---|---|
| 在应用程序中配置 Durable Task SDK | 了解如何创建使用 Durable Functions 应用模式的扇出/扇入工作流。 目前可用于 .NET、Python 和 Java Durable Task SDK。 |
Durable Functions
作为 Azure Functions 的一项功能, Durable Functions 将继承其许多特征作为 Azure 中面向代码的工作流框架产品/服务。 例如,您可以通过使用 Durable Functions 获得以下好处:
- 通过 Azure Functions 触发器和绑定与其他 Azure 服务集成
- 本地开发体验
- 无服务器定价模型
如何选择
可以使用 Durable Task SDK 或 Durable Functions 生成的应用程序托管在 Azure 容器应用中。 了解最适合你的方案框架。