サービス オーケストレーション用の Workflows または Managed Airflow を選択する

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

主な違い

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

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

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

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