什么是工作流?

工作流描述人类如何从头到尾完成工作。工作流由流程中的步骤和状态组成。工作流可以显示为检查单中的一系列步骤,或者可视化这些步骤的图表。

以下是一个简单的支持工作流示例:

  1. 客户 Carl 发起了一个支持请求。
  2. 该未结需求分配给支持代表 Sasha。
  3. Sasha 收到分配的需求并向 Carl 索要信息。在等待答复时,需求的状态为“待处理”。
  4. 在 Carl 提供所需信息后,Sasha 回复解决方案,然后将需求的状态更新为“已解决”。
  5. Carl 收到答复以及一个调查链接,他可以在其中提供有关其支持请求的反馈。他对 Sasha 的快速回复感到满意,并在调查中给予了很高的评价。需求的状态更新为“已关闭”。

在此工作流中,步骤包括“发起”、“分配”、“解决”和“关闭”。状态为“未结”、“已分配”、“待处理”、“已解决”和“已关闭”。步骤将流程沿路径从一个状态移动到另一个状态,直到工作流完成。

使用工作流有哪些好处?

工作流提供了一组可重复的步骤和任务,您可以启动、安排和监视这些步骤和任务。

您可以将工作流可视化以进行观察,验证工作流的正确性,并监视工作流中的操作。

借助工作流,企业可以提高分布式应用程序的可靠性级别,而不会增加代码的复杂性。您可以精细地自动化、优化和扩展工作流。 

工作流为应用程序架构带来了什么?

工作流促使作业阶梯式逻辑的流程控制与包含唯一业务逻辑的实际工作单元相互分开。通过此分区,您可以通过核心业务逻辑独立管理、维护和扩展应用程序的状态机制。

随着业务要求的变化,您可以轻松地变更应用程序逻辑,而无需更改底层的状态结构、任务分派和流程控制。

工作流服务如何改善应用程序架构?

可靠性

状态跟踪和任务处理的分离为基于云的架构带来了可靠性。使用工作流服务,您可以将任务分派到应用程序组件,跟踪其进度并了解系统的最新状态。

简易性

工作流消除了自定义编码的自主解决方案和流程自动化代码的复杂工作。

推进处理步骤的任务可能要长时间运行,也可能出现故障、超时或需要重新启动。它们完成时的吞吐量和延迟通常各不相同。在这些情况下,跟踪和查看任务不仅非常困难,而且工作毫无差别。

借助工作流服务,开发人员可以避免管理流程自动化的基础设施管道。因此,他们可以将精力集中在应用程序的独特功能上。

可扩展性

工作流服务旨在根据应用程序的使用情况无缝扩缩。在向应用程序添加更多工作流或增加工作流复杂性时,您可以自动管理工作流服务。

灵活性

开发人员可以使用工作流服务,以各种编程语言创建应用程序组件和协调逻辑。然后,开发人员可以专注于其差异化的应用程序逻辑。

有哪些常见的工作流用例?

工作流可帮助您处理能够细分成一系列步骤的任何计算问题或业务流程。工作流可简化具有相互依赖关系的作业管理。常见使用案例包括:

  • 应用程序编排 — 通过事件通信,协调松散耦合的微服务,每个微服务在自己的进程中运行并独立部署。结合无服务器函数,通过异步人工审批步骤构建 Web 应用程序。有关更多使用案例示例,请参阅 AWS Step Functions 开发人员指南中的微服务编排
  • 数据处理 - 将来自多个数据库的数据合并为统一的报告,优化并减少大型数据集,使之变成有用的格式,或协调多步骤分析和机器学习工作流。有关更多使用案例示例,请参阅 AWS Step Functions 开发人员指南中的数据处理
  • DevOps 和 IT 自动化 - 构建用于持续集成和持续部署的工具,或者创建自动响应基础设施更改的事件驱动型应用程序。有关更多使用案例示例,请参阅 AWS Step Functions 开发人员指南中的 IT 和安全自动化
  • 电子商务 - 自动执行任务关键型业务流程,如订单履行和库存跟踪。
  • Web 应用程序 — 实施稳健的用户注册流程和身份验证,可选择集成审核步骤和增强的安全性。
  • 机器学习 — 运行提取、转换、加载(ETL)作业以构建、训练和部署机器学习模型。例如,收集和处理图像数据以检测视频流中的对象、添加边界框或为数据编目提供视觉和元数据信息。有关更多使用案例示例,请参阅 AWS Step Functions 开发人员指南中的机器学习
  • 安全自动化 — 由托管资源事件启动的计划分析或安全事件响应,自定义工作流可根据业务规则调用审核和通知步骤。
  • 媒体处理 — 从 PDF 文档或图像中提取数据进行处理。使用大规模并行化对视频进行分割和转码。有关更多使用案例示例,请参阅 AWS Step Functions 使用案例中的媒体处理。 

如何创建工作流?

开发人员最初可以构建自定义编码的解决方案和流程自动化代码。这些解决方案一开始很简单,但随着时间的推移和发展,往往会变得复杂且容易出错。更新业务逻辑所需的工作量会增加,随着时间的推移,更改速度会减慢。

您可以通过采用特定于工作流程的库来降低自主开发解决方案的某些复杂性。但是,配置这些工具可能会给流程增加新的复杂工作。工作流步骤和状态可能仍然难以可视化。

工作流的高级创建和监视需要可视化工具来安排工作流状态和步骤。在这些工具中,业务逻辑规则可用于管理和更新。使用图形工具可以提高开发人员的工作效率和工作流程的可见性,并可以减少出错的可能性。

有关使用可视化工作流程设计器 Workflow Studio 的实践教程,请参阅 AWS 开发人员中心的如何创建无服务器工作流

常见的工作流模式有哪些?

使用工作流,您可以专注于定义组件交互,而不是编写软件来使交互起作用。

工作流可以编排微服务和容器。工作流的常见模式包括微服务链、异步或同步响应、人机交互、容器编排和编排、分支和错误处理。

AWS 提供哪些工作流服务?

AWS Step Functions 是一种低代码可视化工作流服务,用于编排 AWS 服务、自动执行业务流程和构建无服务器应用程序。Step Functions 包括 Workflow Studio,这是一款拖放式低代码可视化工作流设计程器。此工具会以 Amazon States 语言(一种基于 JSON 的结构化语言,用于定义状态机)自动生成函数和配置。您可以在 Step Functions 控制台中使用 Amazon States Language,也可以导出并编辑该语言。

Amazon Managed Workflows for Apache Airflow(Amazon MWAA)提供相同的开源 Apache Airflow 体验,但作为一项完全托管的服务。使用 Amazon MWAA 将您现有的本地解决方案迁移到云中,以降低运营成本并进行大规模部署。开发人员可以继续使用 Python 编写有向无环图(DAG)模型,声明任务的依赖关系,同时与其他 AWS 服务集成。

建议您对所有新应用程序使用 AWS Step Functions,因为它可以提供更富有成效且灵活的方法,以便您使用可视化工作流协调应用程序组件。有关同时使用 Step Functions Workflow Studio 和 Amazon States Language 的实践教程,请参阅 AWS 开发人员中心的如何创建无服务器工作流。 

在 AWS 上使用工作流的后续步骤

查看其他与产品相关的资源
详细了解应用程序集成服务 
注册 AWS Step Functions 免费套餐

使用 200 多个 AWS 服务和 9000 个 API 操作构建工作流

注册 
开始在控制台中构建

在 AWS 管理控制台中开始使用 API Gateway 进行构建。

登录