تحول بزرگ در Apache Airflow: معرفی نسخه ۳


بعد از سال‌ها کار با نسخه‌های ۱ و ۲، بسیاری از ما به محدودیت‌های Airflow عادت کرده بودیم — از ضعف در مدیریت DAGهای پیچیده، تا اجرای محدود وظایف و نبود انعطاف کافی در تعامل با داده‌ها و رویدادها. حالا نسخه ۳ آمده تا این چالش‌ها را برطرف کند.
در این پست، مهم‌ترین ویژگی‌های Airflow 3 را با هم مرور می‌کنیم:


📌 ۱. نسخه‌بندی DAGها و مشاهده تاریخچه اجرا

در نسخه‌های قبلی، کوچک‌ترین تغییر در DAG باعث گم‌ شدن در کد می‌شد. تشخیص اینکه کِی یک task حذف یا اضافه شده‌ دشوار بود.
✅ حالا با ویژگی‌های AIP-65 و AIP-66، ایرفلو در نسخه ۳ امکان نسخه‌بندی DAGها را فراهم کرده است.
در UI می‌توان به‌راحتی تغییرات بین نسخه‌های DAG را مشاهده کرد — هم در نمای گرافیکی و هم در نمای جدولی. این ویژگی به‌ویژه برای audit، دیباگ کردن و بررسی‌های بعد از وقوع خطا بسیار حیاتی است.

1

🔄 ۲. Backfill هوشمند و هماهنگ با Scheduler

در گذشته اجرای backfill برای دوره‌های زمانی طولانی، به‌ویژه در ML pipelineها، باعث کندی شدید یا مصرف بیش از حد منابع می‌شد.
✅ Airflow 3 با AIP-78، فرآیند backfill را مستقیماً به Scheduler سپرده. حالا این اجراها هم مقیاس‌پذیرتر شده‌اند و هم از UI قابل کنترل هستند.
این ویژگی اجرای Pipelineهای مرتبط با داده های قبلی یا تست مدل‌های ML با داده‌های گذشته را بسیار راحت‌تر کرده.

3

🌍 ۳. اجرای وظایف در هر زبان و محیطی

یکی از بزرگ‌ترین تغییرات Airflow 3، تبدیل آن به یک معماری Client/Server است.
✅ با معرفی Task Execution API (AIP-72)، اجرای وظایف از حالت «فقط پایتون» خارج شده و می‌توان از زبان‌هایی مثل Go (و در آینده زبان‌های دیگر) استفاده کرد.

📦 همچنین قابلیت اجرای Task در محیط‌های مختلف مثل Local، Kubernetes یا حتی Remote edge نیز فراهم شده است.
این یعنی می‌توان Airflow را در ساختارهای چند ابری (multi-cloud) و چند زبانه (multi-language) استفاده کرد.


📩 ۴. زمان‌بندی بر اساس رویدادها (Event-Driven Scheduling)

در نسخه‌های قبلی، DAGها فقط بر اساس زمان یا وابستگی به DAGهای دیگر اجرا می‌شدند.
✅ با Airflow 3 و AIP-82، مفهوم جدیدی به‌نام Data Assets و Watchers معرفی شده است. این ساختار اجازه می‌دهد تا DAGها با رخدادهای بیرونی تریگر شوند.

🔸 مثال: با رسیدن یک پیام به AWS SQS، می‌توان یک DAG را اجرا کرد.
اما نکته مهم‌تر اینجاست:

✅ ساختار Watcherها قابل توسعه است. یعنی اگر شما به جای SQS از Kafka استفاده می‌کنید، می‌توانید یک Watcher سفارشی برای Kafka بنویسید تا روی یک Topic مشخص گوش کند و در صورت دریافت پیام، DAG دلخواه را اجرا کند.

💡 این موضوع Airflow را برای سناریوهای real-time، stream processing و سیستم‌های رویدادمحور مثل IoT بسیار کاربردی می‌کند.


🧠 ۵. اجرای DAG برای Inference و تحلیل‌های لحظه‌ای

پیش‌تر Airflow فقط DAGهایی با وابستگی زمانی را پشتیبانی می‌کرد.
✅ حالا با AIP-83، امکان اجرای DAG بدون وابستگی به execution_date فراهم شده.
این قابلیت برای اجرای مدل‌های ML به‌صورت API-based یا انجام Inferenceهای سریع بسیار مفید است.


🖥 ۶. رابط کاربری کاملاً جدید

UI در نسخه‌های قبلی با Flask AppBuilder ساخته شده بود و توسعه‌ آن سخت و کند بود.
✅ Airflow 3 با AIP-38 و AIP-84، رابط کاربری را با React و FastAPI بازنویسی کرده.
نتیجه؟ رابطی سریع‌تر، سبک‌تر و قابل‌توسعه‌تر.

🔸 همچنین Flask AppBuilder از هسته Airflow جدا شده و به یک پکیج مستقل تبدیل شده است که بروزرسانی‌های امنیتی و نگهداری را ساده‌تر می‌کند (AIP-79).

4

🔐 ۷. امنیت بهتر با ایزولاسیون وظایف و CLI مدرن

در سازمان‌های بزرگ، وقتی چند تیم از یک Airflow استفاده می‌کردند، مسئله امنیت بین Taskها جدی بود.
✅ حالا Taskها می‌توانند ایزوله اجرا شوند و با API Server تعامل داشته باشند.
همچنین CLI جدید airflowctl معرفی شده که به‌صورت remote و امن با Airflow تعامل دارد (AIP-81).

نوشته های مشابه