بديل Airflow
إذا كان Airflow أكثر من اللازم، فأبقِ orchestration قريباً من النظام.
Dagu موجه للفرق التي تريد scheduling وretries وdependencies وlogs وواجهة UI من دون framework Python DAG أو metadata stack ثقيل.
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]من دون framework DAG في Python
من دون metadata database في البداية
تشغيل السكربتات والحاويات الحالية مباشرة
التوسع إلى workers فقط عند الحاجة
At a glance
Airflow مقابل Dagu للفرق المعتمدة على السكربتات
YAML تصريحي يستدعي الأوامر.
Python DAG definitions وoperator abstractions.
ملف ثنائي واحد وملفات محلية للبدء.
Scheduler وwebserver وmetadata DB وقرارات executor.
Ops automation وscripts وcontainers وagent CLI وpipelines خفيفة.
Workflows كبيرة لمنصات البيانات تستفيد من Airflow ecosystem.
In depth
Where each tool fits
اجعل الأوامر هي حدّ الـ workflow
Airflow قوي، لكن كثيراً من الفرق تريد فقط orchestrate code موجود. يترك Dagu منطق العمل داخل سكربتاتك.
- شغّل Python وBash وJava وGo وPHP وcontainers وHTTP وSSH
- تجنب تحويل كل مهمة إلى operator خاص
- أبقِ YAML مفهوماً للمهندسين والمشغلين
تجنب البنية التحتية قبل الحاجة إليها
يبدأ Dagu كملف ثنائي واحد مع ملفات محلية. يمكن إضافة queues وworkers لاحقاً من دون تغيير النموذج الأساسي.
- جرّبه محلياً قبل التخطيط لـ platform rollout
- بسّط upgrades وbackups
- استخدم الوضع الموزع فقط عندما لا تكفي آلة واحدة
أنسب للعمل الهندسي المختلط
وظائف العمليات وETL ومهام الوكلاء والتقارير والأتمتة الداخلية نادراً ما تعيش في لغة أو framework واحد.
- كل خطوة تستخدم runtime الذي تعمل به بالفعل
- تبقى scheduling وretries حول الأوامر الموجودة
- تبقى orchestration قابلة للنقل بين الفرق والـ stacks
FAQ
Practical questions before adopting Dagu
هل Dagu بديل كامل لكل نشرات Airflow؟
لا. يمتلك Airflow ecosystem كبيراً لفرق منصات البيانات. يناسب Dagu أكثر الأعمال الموجودة أصلاً كسكربتات أو containers أو service calls.
هل يمكن لـ Dagu تشغيل data pipelines؟
نعم، إذا أمكن تمثيل الـ pipeline كأوامر أو containers أو HTTP calls أو SSH commands أو sub-workflows.
هل يدعم التنفيذ الموزع؟
نعم. يدعم Dagu أوضاع local وqueue-based و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.