Dagu vs Argo Workflows

Argo Workflows は Kubernetes 上で動く。Dagu は普通のマシンで動く。

どちらも DAG を定義し、ステップを順に実行します。Argo Workflows は Kubernetes に組み込まれ、各ステップを pod としてスケジュールします。Dagu は既存のコマンドを呼ぶ 1 バイナリで、運用するクラスタはありません。

1 台のホストで動かせるワークフロー
name: nightly-ops
schedule: "0 2 * * *"

steps:
  - id: extract
    run: python scripts/extract.py

  - id: transform
    run: ./bin/transform
    retry_policy:
      limit: 3
    depends: [extract]

  - id: notify
    run: ./scripts/slack-success.sh
    depends: [transform]

自己完結した 1 バイナリ、Kubernetes クラスタ不要

既存コマンドを実行する宣言的 YAML

外部 database や message broker 不要

shell、Docker、HTTP、SSH、SQL、SubDAG、AI エージェント用の executor

一目で比較

Argo Workflows vs. Dagu の概要

ランタイム
Dagu

ローカルファイルに支えられた通常マシンの 1 バイナリ。

Argo Workflows

workflow controller を伴う Kubernetes クラスタ。

ステップの実体
Dagu

コマンド:shell、Docker、HTTP、SSH、SQL、SubDAG、AI エージェント。

Argo Workflows

クラスタ上で pod として動くコンテナ。

向いている用途
Dagu

すでに運用するホスト上の運用ジョブ、スクリプト、混在パイプライン。

Argo Workflows

Kubernetes ネイティブで、大規模なコンテナ中心や ML パイプライン。

詳細

それぞれの強みと向き不向き

01

下にクラスタを置かないオーケストレーション

Argo Workflows は稼働中の Kubernetes クラスタと、各ステップを pod に変える controller を前提とします。Dagu にその要件はありません。1 バイナリをサーバー、ノート PC、VM に置けば動きます。

  • Kubernetes も controller も etcd もない通常のマシンで動く。
  • 状態を別 database や broker ではなくローカルファイルに保持。
  • ローカルで始め、負荷が増えたらキューや分散モードへ移行。
02

ステップはコンテナだけでなくコマンド

Argo Workflows では各ステップが pod 内で動くコンテナです。Dagu もコンテナを動かせますが、shell スクリプト、HTTP エンドポイント、SSH コマンド、SQL クエリ、SubDAG、AI エージェントステップを直接呼べます。

  • 既存のスクリプトやバイナリを image 化せずそのまま使える。
  • 同じワークフロー内で Docker ステップと shell、HTTP、SSH を混在できる。
  • 実行、ログ、履歴を内蔵 Web UI で確認できる。
03

Argo Workflows を選ぶべきとき

すでに Kubernetes が基盤なら Argo Workflows が向いています。Kubernetes ネイティブで、各ステップを独立した pod としてスケジュールし、大量のコンテナ fan-out 向けに設計されています。Dagu はそれを行いません。

  • Kubernetes 上で動き、ワークフローを他のマニフェストと並ぶ CRD として定義したい。
  • 各タスクごとに pod スケジューリング、node selector、クラスタ autoscaling が必要。
  • パイプラインが多数のノードへ一度に数千コンテナへ fan-out する。

FAQ

Dagu を導入する前によくある質問

Dagu は Argo Workflows を置き換えますか?

すべてのチームでではありません。Kubernetes に標準化し、各ステップを pod として動かしたいなら Argo Workflows が適切です。クラスタを動かさず通常のマシンでコマンドをオーケストレーションしたいなら Dagu が向いています。

Dagu は Kubernetes なしで動きますか?

はい。Dagu はサーバー、VM、ノート PC で動く自己完結した 1 バイナリです。Kubernetes クラスタ、外部 database、message broker のいずれも不要です。

Dagu でもコンテナを動かせますか?

はい。コンテナが必要なステップ向けに Docker executor があります。違いは、コンテナが唯一の実行単位ではなく、shell、HTTP、SSH、SQL、SubDAG のステップと並ぶ 1 つの選択肢である点です。

次の一歩

まず 1 つのワークフローから。

Dagu をインストールし、不安定なスクリプトやエージェントタスクを 1 つ YAML に移して、実際の実行履歴を見て判断できます。