[Airflow] 3.0.0 출시
안녕하세요 마개입니다.
2025년 4월 22일 Airflow 3.0.0이 발표되었습니다. 이번 Airflow 3에서는 엄청나게 많은 변화가 있는 것으로 보이는데 대략적으로 내용들을 확인해보겠습니다.
- 참고 URL : 공식 홈페이지
Airflow 3.0
Airflow 3.0에서는 파이썬 버전 3.9 이상을 지원합니다. 그렇기에 3으로 업그레이드하려면 파이썬 버전을 확인해봐야 합니다.
대규모 UI 변경
Home
Airflow는 웹 페이지를
React
와 FastAPI
를 이용하여 구성되어 있는데 이번에 제일 큰 변화를 가져온 것 같습니다. 위 이미지가 Home 화면인데 눈에 띄는 것은 일단 다크 모드
를 지원한다는 것입니다. 다크 모드를 좋아하는 저로서는 매우 환영할만한 기능입니다.
그리고 Home
에서는 Airflow에서 실행되는 각 요소, MetaDatabase
, Scheduler
, Triggerer
, Dag Processor
에 대한 Health 체크가 한눈에 보이고 DAG의 상태 히스토리를 보여줍니다.
Dags
다음으로는
Dags
에 대한 UI입니다. Dag에 대한 목록들을 볼 수 있는데 목록을 보는 방법을 두 가지 제공하고 있습니다. 첫번째로는 기존과 같은 리스트
형태로 제공하고 있고 또 하나는 아이콘
형태입니다.
아이콘 형태라고 하지만 아이콘인지는 잘 모르겠습니다.
Assets
다음으로는
Assets
입니다. 이건 Airflow2에 있던 Datasets과 같습니다. 좋은 점은 어느 DAG, Task에서 사용 중인지 알 수 있다는 점입니다.
Asset을 클릭해보면 위와 같이 흐름도를 볼 수 있어 어느 DAG에서 사용 중인지 보기 쉽게 되어 있습니다.
Browse
다음으로는
Browse
인데 Browse에는 Audit Log
와 XComs
에 대한 데이터를 확인할 수 있습니다.
Admin
다음으로는
Admin
인데 Admin에는 Variables, Pools, Providers, Plugins, Connections가 있는 것을 볼 수 있습니다.
Providers와 Plugins에는 위와 같이 어떠한 Provider와 Plugin이 있는지 한눈에 볼 수 있다는 것이 좋네요
Security
Security
에는 기존과 동일하게 5개가 있습니다.
Users
를 들어가보면 이상하게 기존 Airflow2의 UI가 나오게 되고 다크 모드도 적용이 되지 않았습니다. 이는 Roles나 다른 메뉴를 들어가봐도 같습니다. 아직 이 메뉴들에 대해서는 신규 UI가 적용되지 않은 것 같네요..
정리
UI의 경우 많은 부분이 변경되었는데 제 개인적인 생각에는 아직 다듬는 과정이 필요한 것 같습니다. 아직은 Airflow2의 UI가 더 마음에 든다고 봐야할 것 같네요
Task Execution API & Task SDK
신규 Task Execution API
와 SDK
를 지원합니다. 이를 통해 원격으로 Task를 실행할 수 있게 되었습니다. airflow.sdk
네임스페이스를 이용해서 DAG와 Task를 이용할 수 있게 됩니다.
Edge Executor 지원
신규 Executor를 지원하게 되었습니다. Edge Executor
로 분산 처리, 이벤트 기반, edge 컴퓨팅까지 지원한다고 합니다. 이는 원격 컴퓨팅 환경에서 작업 실행도 되도록 지원하는 Executor인데요.
Backfills 강화
기존에 CLI를 통해 Backfill
을 진행했다면 이제 Scheduler에 의해 관리 받도록 변경되었습니다. 또한, UI와 REST API를 통해 Backfill을 지원하게 되었습니다.
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
를 이용해야 합니다.