Dagu vs Prefect
Если нужна orchestration без написания Python, посмотрите на Dagu.
Prefect — это Python framework для data-команд, которые пишут flow в коде. Dagu — один бинарник, исполняющий декларативный YAML с вызовом ваших существующих команд, без БД для эксплуатации. Эта страница честно показывает, где что подходит.
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]Workflow — это декларативный YAML, а не Python-код
Один бинарник с file-backed state
Без внешней БД или message broker
Executors для shell, Docker, HTTP, SSH, SQL, sub-workflow и AI-agent шагов
Декларативный YAML вместо Python framework
Prefect моделирует работу как Python-функции, обернутые decorator @flow и @task, поэтому workflow живет внутри вашего кода. Dagu оставляет каждый шаг командой и оборачивает вокруг него расписания, ретраи и зависимости в YAML.
- Определяйте шаги, запускающие shell, Docker, HTTP, SSH, SQL или sub-workflow
- Сохраняйте workflow читаемым для операторов, не пишущих Python
- Держите YAML в git рядом со скриптами, которые он вызывает
Один бинарник с file-backed state
Продакшн-конфигурация Prefect запускает Prefect server с БД вроде Postgres плюс workers, исполняющие flow. Dagu поставляется как один бинарник и хранит историю запусков, логи и состояние очереди в локальной файловой системе.
- Старт с одной загрузки, без подготовки БД
- Бэкап и обновление через работу с файлами и одним бинарником
- Рост от локальных запусков к queue-based или distributed workers по мере нужды
Когда выбрать Prefect
Prefect лучше, когда ваши workflow относятся к Python, а команда готова эксплуатировать его сервисы. Часть потребностей ложится на Prefect естественнее, чем на Dagu.
- Нужны динамические DAG, форма которых вычисляется в Python во время выполнения
- Ваши pipeline передают Python-объекты между задачами, а не вызывают команды
- Нужен managed-вариант, который Prefect дает через Prefect Cloud
Dagu vs Prefect кратко
FAQ
Practical questions before adopting Dagu
Заменяет ли Dagu Prefect?
Не для каждой команды. Если ваши workflow на Python и опираются на динамические flow или передачу Python-объектов между задачами, лучше Prefect. Dagu лучше, когда работа выполняется как команды, контейнеры или service calls, а вам нужен YAML без БД.
Можно ли использовать Dagu без написания Python?
Да. Workflow в Dagu — это YAML, вызывающий команды. Шаг может запустить ваш Python-скрипт, но самому слою orchestration не нужны ни Python, ни framework import.
Какая инфраструктура нужна Dagu по сравнению с Prefect?
Dagu нужен один бинарник и файловая система, так как состояние file-backed. Типичный деплой Prefect запускает server с БД и один или несколько workers. У Dagu нет managed cloud, поэтому вы хостите его сами.
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.