Airflow Overview
- 워크플로우를 만들고 관리하기 위한 목적의 파이썬 기반 오픈소스 플랫폼
- 워크플로우는 DAG(Directed Acyclic Graph) 구조를 가짐
- Cron 기반으로 작업 스케줄링
- 웹 UI를 통해 작업을 모니터링하고 실패 시 재실행이 가능
Airflow 장점
- 파이썬에서 지원되는 다양한 라이브러리를 활용 가능
- 대규모 환경에서 부하 증가 시 수평적 확장이 가능한 Kubenetes 등 아키텍처 지원
- 오픈소스 플랫폼의 이점을 살려 원하는 기능을 커스터마이징 가능
Airflow 단점
- 실시간 워크플로우 관리에 적합하지 않음 (최소 분 단위 실행)
- 워크플로우가 많아질수록 모니터링이 어려움
DAG(Directed Acyclic Graph)
- DAG는 Task 간의 종속성과 순서를 지정
- Task : DAG 내에서 어떠한 행위를 할 수 있는 객체
- DAG는 1개 이상의 Task로 구성
- Task 간에 순한되지 않고 방향성을 가짐
- Task에 대한 종속성은
>>
또는 <<
연산자를 사용해 선언
- 예시)
first_task >> second_task

Airflow Workflow
- Scheduler : 예약된 일정에 워크플로우를 Executor에게 넘겨 Task를 실행
- Executor : Scheduler 내부의 모든 작업을 실행하며, 모든 Task가 순차적으로 실행되게 관리
- Worker : 실제 Task를 실행하는 주체
- Metadata Database : Scheduler, Executor, Webserver가 상태를 저장하는데 사용
- DAG Directory : 파이썬으로 작성한 DAG 파일을 저장하는 공간
- Webserver : User Interface를 통해 Scheduler와 DAG 실행 과정을 시각화해 표시
User Interface
- DAG와 각각의 작업이 수행되는 내용을 시각적으로 확인
- DAG 실행을 직접 트리거
- DAG 실행 로그를 확인하고 제한적인 디버깅 수행

https://airflow.apache.org/docs/apache-airflow/2.6.0/core-concepts/overview.html