- airflow는 airbnb에서 만든 workflow를 만드는 오픈소스 프로젝트
- python코드로 workflow를 작성하고 스케쥴링, 모니터링 하는 플랫폼
- 스케쥴링을 하고 모니터링을 코드로 작성하기 때문에 세분화가 가능해, 정교한 파이프라인 구성 가능
- 예약된 workflow를 트리거 하고 실행 할 node에 task를 전달하는 두가지를 모두 처리하는 스케쥴러
Airflow 동작원리

구성 요소
- ui / web server : airflow는 설치시 web server를 구성할 수 있다.
- dag directory : 작업 스케쥴을 만들어주는 스케쥴링 단위를 작성한 dag를 보관하는 장소이며, python script로 작성되어진다.
- worker : 실제 task를 실행하는 곳, excutor 종류에 따라 동작방식이 다양
- Metadata Database : 실행할 task의 관한 정보를 저장해 놓는다. 순서나 작업 스케쥴링 등등
- Scheduler : dag와 작업들을 모니터링하고 실행 순서와 상태 관리를 한다.
- Executor : 스케쥴러와 같이 동작하는 구성요소, status가 queued인 태스크를 확인하여, 실제 어떤 리소스가 실행 될것인지를 결정한다. (local executor, celery executor, kubernetes executor)