2 분 소요

 안녕하세요 마개입니다.
2025년 4월 22일 Airflow 3.0.0이 발표되었습니다. 이번 Airflow 3에서는 엄청나게 많은 변화가 있는 것으로 보이는데 대략적으로 내용들을 확인해보겠습니다.


image





Airflow 3.0

 Airflow 3.0에서는 파이썬 버전 3.9 이상을 지원합니다. 그렇기에 3으로 업그레이드하려면 파이썬 버전을 확인해봐야 합니다.



대규모 UI 변경

Home

Airflow UI Home  Airflow는 웹 페이지를 ReactFastAPI를 이용하여 구성되어 있는데 이번에 제일 큰 변화를 가져온 것 같습니다. 위 이미지가 Home 화면인데 눈에 띄는 것은 일단 다크 모드를 지원한다는 것입니다. 다크 모드를 좋아하는 저로서는 매우 환영할만한 기능입니다.
 그리고 Home에서는 Airflow에서 실행되는 각 요소, MetaDatabase, Scheduler, Triggerer, Dag Processor에 대한 Health 체크가 한눈에 보이고 DAG의 상태 히스토리를 보여줍니다.


Dags

Airflow UI Dags  다음으로는 Dags에 대한 UI입니다. Dag에 대한 목록들을 볼 수 있는데 목록을 보는 방법을 두 가지 제공하고 있습니다. 첫번째로는 기존과 같은 리스트 형태로 제공하고 있고 또 하나는 아이콘 형태입니다.

Airflow UI Dags Icon  아이콘 형태라고 하지만 아이콘인지는 잘 모르겠습니다.


Assets

Airflow UI Assets  다음으로는 Assets입니다. 이건 Airflow2에 있던 Datasets과 같습니다. 좋은 점은 어느 DAG, Task에서 사용 중인지 알 수 있다는 점입니다.

Airflow UI Assets Flow  Asset을 클릭해보면 위와 같이 흐름도를 볼 수 있어 어느 DAG에서 사용 중인지 보기 쉽게 되어 있습니다.


Browse

Airflow UI Browse  다음으로는 Browse인데 Browse에는 Audit LogXComs에 대한 데이터를 확인할 수 있습니다.


Admin

Airflow UI Admin  다음으로는 Admin인데 Admin에는 Variables, Pools, Providers, Plugins, Connections가 있는 것을 볼 수 있습니다.

Airflow UI Providers Airflow UI Plugins  Providers와 Plugins에는 위와 같이 어떠한 Provider와 Plugin이 있는지 한눈에 볼 수 있다는 것이 좋네요


Security

Airflow UI Security  Security에는 기존과 동일하게 5개가 있습니다.

Airflow UI Security Users  Users를 들어가보면 이상하게 기존 Airflow2의 UI가 나오게 되고 다크 모드도 적용이 되지 않았습니다. 이는 Roles나 다른 메뉴를 들어가봐도 같습니다. 아직 이 메뉴들에 대해서는 신규 UI가 적용되지 않은 것 같네요..

정리

 UI의 경우 많은 부분이 변경되었는데 제 개인적인 생각에는 아직 다듬는 과정이 필요한 것 같습니다. 아직은 Airflow2의 UI가 더 마음에 든다고 봐야할 것 같네요



Task Execution API & Task SDK

 신규 Task Execution APISDK를 지원합니다. 이를 통해 원격으로 Task를 실행할 수 있게 되었습니다. airflow.sdk 네임스페이스를 이용해서 DAG와 Task를 이용할 수 있게 됩니다.



Edge Executor 지원

 신규 Executor를 지원하게 되었습니다. Edge Executor로 분산 처리, 이벤트 기반, edge 컴퓨팅까지 지원한다고 합니다. 이는 원격 컴퓨팅 환경에서 작업 실행도 되도록 지원하는 Executor인데요.



Backfills 강화

 기존에 CLI를 통해 Backfill을 진행했다면 이제 Scheduler에 의해 관리 받도록 변경되었습니다. 또한, UI와 REST API를 통해 Backfill을 지원하게 되었습니다.



DAG Versioning

DAG Versioning  DAG에 대한 버전을 지원하기 시작했습니다. 버전을 통해 DAG의 변경 내용들이 Metadata에 저장되어 트래킹됩니다. 이를 통해 과거 버전으로 돌리는게 가능할지도 궁금해지네요.



사라진 기능들

execution_date

 execution_date가 사라지고 대신 dag_run.logical_date를 이용하도록 권고하고 있습니다.


SugDagOperator / SubDAGs

 SubDag 대신에 TaskGroups를 이용합니다.


SLA callbacks / metrics

 추후에 Deadline Alerts 예정


DAG / Xcom Pickling

 파이썬 객체를 바이트 스트림으로 변환하는 것을 Pickling, 반대는 Unpickling이라 하는데 이것도 더이상 지원하지 않습니다. DAG Pickling의 경우 JSON 직렬화를, Xcom의 경우 Custom Xcom backend를 이용해야 합니다.


DebugExecutor

 DebugExecuor는 없어지고 대신 LocalExecutor를 이용해야 합니다.