选择 Workflows 或 Cloud Composer 进行服务编排

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

主要区别

Workflows 和 Cloud Composer 之间的主要区别在于每个产品旨在支持的架构类型。

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

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

Cloud Composer 旨在编排数据驱动型工作流(尤其是 ETL/ELT)。它基于 Apache Airflow 项目构建,但 Cloud Composer 是一项全代管式服务。Cloud Composer 可以支持您的流水线,无论它们位于本地还是跨多个 Cloud Platform。Cloud Composer 中的所有逻辑(包括任务和调度)在 Python 中都表示为有向无环图 (DAG) 定义文件。

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

详细的功能比较

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

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