Airflow 替代方案

如果 Airflow 太重,就让编排更靠近操作系统。

Dagu 面向那些需要调度、重试、依赖关系、日志和 UI,但不想引入 Python DAG 框架和沉重元数据栈的团队。

无需框架 import 的工作流
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]

无需 Python DAG 框架

起步时无需元数据库

直接运行现有脚本和容器

需要时再扩展到 workers

At a glance

面向脚本团队的 Airflow vs. Dagu

编写方式
Dagu

用声明式 YAML 调用命令。

Typical alternative

Python DAG 定义和 operator 抽象。

运行时
Dagu

从单一二进制和本地文件开始。

Typical alternative

需要 scheduler、webserver、metadata DB 和 executor 选择。

更适合谁
Dagu

运维自动化、脚本、容器、Agent CLI 和轻量流水线。

Typical alternative

依赖 Airflow 生态的大型数据平台工作流。

In depth

Where each tool fits

01

把命令作为工作流边界

Airflow 很强大,但很多团队只是想编排现有代码。Dagu 让业务逻辑继续留在脚本里。

  • 运行 Python、Bash、Java、Go、PHP、容器、HTTP 和 SSH
  • 避免把每个任务改写成专用 operator
  • 保持运维和工程师都看得懂的 YAML
02

在真正需要前,不要先上重基础设施

Dagu 从一个基于文件的单一二进制开始,之后再按需要补队列和 workers。

  • 先本地试用,再考虑平台化 rollout
  • 让升级和备份更简单
  • 在单机不够之前不引入分布式复杂度
03

更适合混合型工程任务

运维任务、ETL、AI Agent、报表和内部自动化,很少只属于一种语言或一个框架。

  • 每个步骤都可使用它原来的运行时
  • 在应用代码之外控制调度和重试
  • 让编排在团队和技术栈之间保持可移植

FAQ

Practical questions before adopting Dagu

Dagu 能完全替代所有 Airflow 部署吗?

不能。Airflow 在数据平台领域有很大的生态。对于已经以脚本、容器或服务调用存在的工作,Dagu 更合适。

Dagu 能运行数据管道吗?

可以。只要管道能表达成命令、容器、HTTP、SSH 或子工作流,Dagu 就能编排它。

支持分布式执行吗?

支持。Dagu 提供本地、队列和 coordinator-worker 三种执行模式。

Next step

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.