Dagu vs Kestra

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

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

Workflow, который вызывает уже имеющиеся команды
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]

Единый бинарник без 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 и без внешней database
  • Каждый шаг запускает команду, контейнер или скрипт, которым уже пользуется
  • Начните на одном хосте и позже перейдите на 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.