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

Workflows と Managed 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 のすべてのロジックは、有向非巡回グラフ(DAG)定義ファイルとして Python で表現されます。

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 定義ファイルで cron に似たスケジュール設定、Airflow センサー
非同期パターン
  • アンケート
  • Callbacks
  • 長時間実行される Google Cloud オペレーションを待機
ポーリング
並列実行 同じワークフローの同時実行、または 並列ステップを使用したワークフロー内 依存関係に基づき自動
実行レイテンシ ミリ秒 秒
基礎とするオープンソース × あり(Apache Airflow)
スケーリング モデル サーバーレス(需要に応じてスケールアップおよびゼロまでスケールダウン) プロビジョニング済み
課金モデル 使用量ベース(実行されるステップごと) プロビジョニングされた容量ベース
データ処理機能 × バックフィル、DAG を再実行する機能

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