Azure 容器应用中的工作流

注释

术语“工作流”通常具有多个含义。 在 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 容器应用中。 了解最适合你的方案框架。

后续步骤