サービス オーケストレーション用のワークフローまたは Cloud Composer を選択する

WorkflowsCloud Composer では、どちらも、サービス オーケストレーションに使用し、複数のサービスを組み合わせてアプリケーションの機能を実装することや、データ処理を実行することが可能です。考え方は似ていますが、それぞれ異なるユースケースを対象に設計されています。このページでは、ユーザーがユースケースに適したプロダクトを選択できるようにサポートします。

主な違い

Workflows と Cloud Composer の主な違いは、それらがサポートするアーキテクチャのタイプです。

Workflowsは、複数の HTTP ベースのサービスを耐久性に優れたステートフル ワークフローにオーケストレートします。レイテンシが小さく、多数の実行を扱えます。完全にサーバーレスでもあります。

Workflows は、マイクロサービスの連結、VM の起動や停止などのインフラストラクチャ タスクの自動化、外部システムと統合に最適です。Workflows コネクタは、Cloud Storage や BigQuery などの Google Cloud サービスでの簡単な操作シーケンスもサポートしています。

Cloud Composer は、データドリブンのワークフロー(特に ETL/ELT)をオーケストレートするように設計されています。Apache Airflow プロジェクト上に構築されていますが、Cloud Composer はフルマネージドです。Cloud Composer は、オンプレミスでも複数のクラウド プラットフォームでも、場所を問わずパイプラインをサポートします。タスクやスケジューリングを含むすべての Cloud Composer のすべてのロジックは、Python では有向非巡回グラフ(DAG)定義ファイルとして表現されます。

Cloud Composer は、タスクの実行間で数秒のレイテンシを処理できるバッチ ワークロードに最適です。Cloud Composer を使用すると、BigQuery でのジョブのトリガーや Dataflow パイプラインの開始など、データ パイプライン内のサービスをオーケストレートできます。既存の演算子を使用してさまざまなサービスと通信できます。Google Cloud には 150 以上の演算子があります。

詳細な機能の比較

機能 ワークフロー Cloud Composer
構文 YAML または JSON 形式の Workflows 構文 Python
状態モデル 命令型のフロー制御 宣言型の自動依存関係解決を使用した DAG
統合 HTTP リクエストコネクタ Airflow 演算子センサー
ステップ間でのデータの引き渡し 512 KB(変数用) 48 KB1XCom 用)
実行のトリガーとスケジューリング gcloud CLI、Google Cloud コンソール、Workflows API、ワークフロー クライアント ライブラリ、Cloud Scheduler DAG 定義ファイルで cron に似たスケジュール設定、Airflow センサー
非同期パターン
  • アンケート
  • Callbacks
  • 長時間実行される Google Cloud オペレーションを待機
アンケート
並列実行 同じワークフローの同時実行、または並列ステップを使用したワークフロー内での実行 依存関係に基づき自動
実行レイテンシ ミリ秒
基礎とするオープンソース × ○(Apache Airflow)
スケーリング モデル サーバーレス(需要に応じてスケールアップおよびゼロまでスケールダウン) プロビジョニング済み
課金モデル 使用量ベース(実行されるステップごと) プロビジョニングされた容量ベース
データ処理機能 × バックフィルDAG の再実行機能

  1. airflow.models.xcom のソースコード。Apache Airflow のドキュメント(2021 年 8 月 2 日)。