Dagu vs Kestra

Dagu vs Kestra: одна идея YAML, совсем разный след.

Dagu и Kestra декларативно описывают workflows в YAML, поэтому настоящий выбор касается runtime и зависимостей. Dagu — это самодостаточный единый бинарник, который вызывает команды, уже имеющиеся у вас. Kestra работает на JVM, за ней стоит database, а сверху расположен большой каталог плагинов.

Workflow, который вызывает уже имеющиеся команды
# backup.yaml
schedule: "0 4 * * *"
 
steps:
  - id: dump
    run: pg_dump -Fc appdb -f /backups/appdb.dump
 
  - id: upload
    run: aws s3 cp /backups/appdb.dump s3://acme-backups/
    retry_policy:
      limit: 3
      interval_sec: 60
    depends: [dump]
 
  - id: prune
    run: ./scripts/prune-backups.sh --keep=30
    depends: [upload]

Execution order

dumpupload3 retriesprune

Единый бинарник без JVM

Нет внешней database или брокера для обслуживания

Executor'ы для shell, Docker, HTTP, SSH, SQL, sub-workflows и AI-агентов

Работает в режимах local, queue и распределенном

At a glance

Dagu vs Kestra кратко

Runtime
Dagu

Единый бинарник на Go, без JVM.

Kestra

Java-приложение на JVM.

Зависимости
Dagu

Локальные файлы, без внешней database или брокера.

Kestra

Database для ядра; Kafka и Elasticsearch для масштаба.

Расширение шагов
Dagu

Прямой вызов команд через встроенные executor'ы.

Kestra

Большой каталог из 1400+ плагинов.

In depth

Where each tool fits

01

Что общего у двух инструментов

И Dagu, и Kestra декларативны. Вы пишете workflow в YAML, ведете версии в git и запускаете на своей инфраструктуре. Разница в том, что должно работать под каждым из них.

  • Декларативные YAML-workflows, которые можно ревьюить в pull request
  • Веб-UI для запусков, логов и истории
  • Self-hosted, поэтому данные остаются в вашем окружении
02

Почему Dagu легче в эксплуатации

Dagu поставляется как один бинарник на Go и хранит состояние в локальных файлах. Нет JVM для тюнинга и нет отдельного хранилища, которое нужно поддерживать. Kestra работает на Java и требует database для ядра, а конфигурации высокой доступности добавляют такие компоненты, как Kafka и Elasticsearch.

  • Один бинарник на файлах, без JVM и без внешней базы данных
  • Каждый шаг запускает команду, контейнер или скрипт, которым уже пользуется
  • Начните на одном хосте и позже перейдите на queue или распределенные worker'ы
03

Когда выбрать Kestra

Kestra хорошо подходит, когда нужен широкий каталог плагинов и редактирование через UI в большом масштабе. Ее экосистема плагинов и компания за ней крупнее, чем у Dagu, и для некоторых команд это важно.

  • Вам нужен большой каталог готовых плагинов вместо прямого вызова команд
  • Вы предпочитаете строить и править flows в UI-редакторе с поддержкой API
  • Вы планируете платформу высокой доступности и готовы держать Kafka и Elasticsearch

FAQ

Practical questions before adopting Dagu

Заменяет ли Dagu Kestra?

Для многих команд да. Если ваши workflows работают как команды, контейнеры, HTTP-вызовы, SSH-задачи или SQL, Dagu покрывает их с гораздо меньшим следом. Если вы опираетесь на большой каталог плагинов Kestra или ее UI-редактор в большом масштабе, Kestra подойдет лучше.

Оба используют YAML, в чем тогда разница?

YAML похож по духу. Разница ниже уровнем. Dagu — это один бинарник без JVM и без внешней database, а Kestra работает на Java с database и добавляет Kafka и Elasticsearch для высокой доступности.

У Dagu столько же интеграций, сколько у Kestra?

Нет. У Kestra больший каталог плагинов и маркетплейс плагинов. У Dagu меньший набор встроенных executor'ов, и он предполагает вызов существующих команд, скриптов и контейнеров вместо установки плагинов.

Next step

Start with one workflow.

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