Workflows と Cloud 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 KB1(XCom 用) |
実行のトリガーとスケジューリング | gcloud CLI、Google Cloud コンソール、Workflows API、ワークフロー クライアント ライブラリ、Cloud Scheduler | DAG 定義ファイルで cron に似たスケジュール設定、Airflow センサー |
非同期パターン |
|
アンケート |
並列実行 | 同じワークフローの同時実行、または並列ステップを使用したワークフロー内での実行 | 依存関係に基づき自動 |
実行レイテンシ | ミリ秒 | 秒 |
基礎とするオープンソース | × | ○(Apache Airflow) |
スケーリング モデル | サーバーレス(需要に応じてスケールアップおよびゼロまでスケールダウン) | プロビジョニング済み |
課金モデル | 使用量ベース(実行されるステップごと) | プロビジョニングされた容量ベース |
データ処理機能 | × | バックフィル、DAG の再実行機能 |
-
airflow.models.xcom のソースコード。Apache Airflow のドキュメント(2021 年 8 月 2 日)。↩