选择 Workflows 或 Managed Airflow 进行服务编排

工作流和 Managed Service for Apache Airflow 均可用于服务编排,以组合服务来实现应用功能或执行数据处理。虽然它们在概念上类似,但都是针对不同用例集而设计的。 本页面可帮助您为自己的用例选择合适的产品。

主要区别

Workflows 和 Managed Airflow 之间的核心区别在于每种产品旨在支持的架构类型。

工作流将多个基于 HTTP 的服务编排成持久的有状态工作流。它具有较短的延迟时间,可以处理大量执行。它也是完全无服务器的。

工作流非常适合将微服务链接在一起、自动执行基础架构任务(如启动或停止虚拟机)以及与外部系统集成。Workflows 连接器还支持在 Cloud Storage 和 BigQuery 等 Google Cloud 服务中执行简单的操作序列。

Managed Airflow 旨在编排数据驱动的工作流(尤其是 ETL/ELT)。它基于 Apache Airflow 项目构建,但 Managed Airflow 是全代管式。无论您的流水线位于何处(包括本地或多个云平台),Managed Airflow 都能提供支持。Managed Airflow 中的所有逻辑(包括任务和调度)都以 Python 有向无环图 (DAG) 定义文件的形式表示。

Managed Airflow 最适合可处理任务执行之间几秒延迟的批处理工作负载。您可以使用 Managed Airflow 来编排数据流水线中的服务,例如在 BigQuery 中触发作业或启动 Dataflow 流水线。您可以使用预先存在的运算符与各种服务进行通信,仅 Google Cloud 就有 150 多个运算符。

详细的功能比较

特征 Workflows Managed Airflow
语法 YAML 或 JSON 格式的 Workflows 语法 Python
状态模型 命令式流控制 声明式 DAG 具有自动依赖项解析
集成 HTTP 请求和连接器 Airflow 运算符和传感器
在步骤之间传递数据 512 KB(用于变量) 48 KB1(适用于 XCom)
执行触发器和调度 gcloud CLI、 Google Cloud 控制台、Workflows API、Workflows 客户端库、Cloud Scheduler DAG 定义文件 Airflow 传感器中的类似 Cron 的时间表
异步模式
  • 轮询
  • 回调
  • 等待长时间运行的 Google Cloud 操作
轮询
并行执行 同一工作流的并发执行,或工作流内使用并行步骤 基于依赖项的自动化
执行延迟时间 毫秒 秒
基于开放源代码 否 是 (Apache Airflow)
扩缩模型 无服务器(可按需扩缩) 已预配
结算模式 基于用量(按步骤执行) 基于预配容量
数据处理功能 否 回填(能够重新运行 DAG)

  1. airflow.models.xcom 的源代码。Apache Airflow 文档。2021 年 8 月 2 日 ↩