이젠 알겠지만, airflow는 여러가지 작업을 쉽게 스케줄링하게 도와준다
주로 작업을 DAG (Directed Acyclic Graph)의 형태로 표현하는데, 앞에 작업이 끝나야 뒤에 작업이 시작된다는 스케줄러의 특징을 표현한 것이다
한개의 dag은 하나의 업무의 시작부터 끝을 설명하고, 하나의 dag는 특정 시간에 한번 end to end로 동작한다
예를 들어 아래 이미지들와 같이 작업을 만들 수 있다
1번 이미지처럼 작업을 실행하되, 성공/실패에 따라 다른 작업을 돌릴수도 있고
2번 작업처럼 앞 작업의 순서는 상관 없지만 앞에 작업이 끝나야만 뒷 작업이 돌게 할 수 있다
위와 같은 사이클이 마스터 크론처럼 특정 인터벌로 돌게 설정할 수 있고,
필요 시 다양한 기능으로 다른 dag의 작업에 의존성을 만들 수도 있다
이를 sensor라고 하는데, 직접 구현해 볼 것이다
세부적인 장점을 다른 스케줄링 프로그램들과 비교하면서 설명하겠다
내 컴퓨터에서 크론을 만드는 것과 airflow에는 큰 차이가 있는데, 아래와 같다
airflow는 하나의 스케줄러로, 스케줄링만을 위해 컴퓨터 한대가 사용된다 (주로 서버리스)
즉, 새로운 작업이 추가되면 작업마다 새로운 컴퓨터를 할당받아 프로그램을 돌릴 뿐이다
회사에서 큰 프로젝트를 위해 새로 직원을 뽑는 (필요 시 대표보다 인건비가 비싼) 예시와 비슷하다
그러면서 부하 없이 여러개의 작업을 한번에 돌릴 수 있다
반면, cron은 내 컴퓨터에 제한된 리소스를 사용하기 때문에 무서운 작업을 여러개 동시에 돌리지 못하거나, 내 컴퓨터 메모리보다 큰 작업은 실행하지 못한다