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