พอดีต้องไปแบ่งปันความรู้เรื่องการใช้งาน Apache Airflow ขั้นพื้นฐาน
เลยไปเห็น roadmap ของความสามารถต่าง ๆ ใน Apache Airflow 3.0
จึงทำการสรุปความสามารถที่น่าสนใจไว้นิดหน่อย
มาดูกัน

อย่างแรกคือ Modern Web Application

ซึ่งในส่วนของ UI นั้นพัฒนาด้วย React, TypeScript และ Chakra UI
ทำการปรับปรุงเรื่องของ navigation, realtime refresh และ dark mode
และทำการลบ Flask AppBuilder, or FAB ออกไปจาก Airflow

เรื่องที่สองคือ DAG versioning

โดยปกตินั้น Airflow จะทำการ run DAG ใน code ล่าสุดเสมอ
ทำให้เกิดปัญหาบางอย่างขึ้นมา คือ
ในขณะที่ DAG กำลัง run อยู่นั้น มีการเปลี่ยนแปลงขึ้นมา
มักจะทำให้เกิดปัญหา หรือ ผลทำงานไม่เป็นไปตามที่คาดหวัง
หรือไม่รู้เลยว่า การ run แต่ละครั้งใช้ code version ไหนบ้าง
ดังนั้นเรื่องของ DAG versioning เป็นการเปลี่ยนแปลงที่น่าสนใจมาก ๆ

เรื่องที่สาม ในการเขียน Task สนับสนุนภาษาโปรแกรมมากขึ้น

จากเดิมที่เขียนได้เฉพาะภาษา Python เท่านั้น
แต่ใน version นี้มีการสร้าง Task SDK หรือ interface ขึ้นมา
พร้อมกับ Remote executor ขึ้นมาใหม่
ส่งผลให้สามารถเขียน Task ด้วยภาษาโปรแกรมอื่น ๆ ได้ เช่น

  • JavaScript และ TypeScript
  • Go
  • Java

เรื่องที่สี่ Data Assets, Event driven scheduling

ทำให้ Airflow scheduler ทำงานแบบ event-driven
ซึ่งจากเดิมทำงาน time-based และ ตาม dependency ใน workflow เท่านั้น
หรือถ้าต้องการทำงานแบบ event-driven ได้
ก็ต้องใช้พวก external task sensors, sensors/deferrable operators, REST API หรือ datasets เท่านั้น

แต่ในตัวใหม่นี้สามารถ integrate การทำงานแบบ event-driven
เข้ามายัง workflow ได้เลย ไม่ต้องแยก process การทำงานอีกต่อไป
ทำให้สามารถทำงานกับข้อมูลของระบบต่าง ๆ ได้แบบ near realtime มากยิ่งขึ้น
เช่น ระบบ cloud ต่าง ๆ ถ้ามีการเปลี่ยนแปลงใด ๆ
สามารถส่ง event trigger มายัง Airflow ได้เลย
เพื่อทำการ start task การทำงานแบบง่าย ๆ

ลองศึกษาเพิ่มเติมกันดู
โดยจาก roadmap ตัว final น่าจะออกต้นเดือนเมษายนนี้

Tags: