3. Airflow Usecase
• Data Ingestion, Source → Destination
• Data Analytics Pipeline
• AI / ML Work
fl
ow, IDC Kubernetes GPU Cluster
• Data Platform, Governance Management
6. Airflow 환경
• 계정에 따라 다양한 환경이 존재 ( prod, stage, beta … )
• 각 환경에 매핑되는 저장소와 브랜치
• 불일치 발생, 화려한 cherrypick과 빈번한 hard reset 의 반복
• PR → beta → PR → beta → PR → prod 😭
12. Airflow 개인개발환경
Airflow UI 에서 브랜치, Provider 설치 여부, 권한을 선택
개인 주소로 접근 후 개발 ( https://airflow.mydomain/myname ) / 정책에 따라 삭제
13. Airflow 개인개발환경
• Pool, RBAC Security 모든 환경에 설정 필요
• DB까지 삭제되는 임시 환경의 Connection, Variable 관리
• 단일 브랜치를 여러 환경에서 사용하도록 (beta, prod…)
• 이 DAG은 beta에만 / prod에만 배포해야 합니다
• on / o
ff
기능 활용으로 부족
14. Airflow 개인개발환경 - RBAC, Pool
RBAC 설정
Custom Security Manager를 통해 확장
커스텀 플러그인에 대한 접근 권한 설정
Pool 설정
json 파일로 관리, 이미지에 추가
initContainer를 통해 pool 자동 등록
15. Airflow 개인개발환경 - Conn / Variable
개인개발환경을 위한 Connection, Variable UI 플러그인 추가
SSM Parameter Store Secret Backend에 저장 / DB까지 삭제 후 다시 생성해도 접근 가능
16. Airflow 개인개발환경 - 단일 브랜치
Airflow DAG Policy를 활용, AirflowClusterPolicySkipDag Exception 적용
DAG에 only_for_beta 태그 추가 → prod 환경은 skip, beta 환경에서만 사용 가능
22. KEDA AutoScaler
MetaDB의 실행 중인 task 수에 따라
Air
fl
ow Worker AutoScaling
새벽 배치 시간 📈 , 주간 📉
안정적인 Scale-In을 위해
HPA replica
fl
apping
Worker Warm Shutdown
Pod Termination Grace Periods
25. Airflow 테스트
DAG 테스트
• DAG 순환 참조, Syntax 오류 등
Provider 테스트
• CI 단계에서 단위 테스트 수행
• DAG 통합 테스트 수행
Air
fl
ow 테스트
• 패키지 의존성 검사
• 테스트 환경에서 수행
• UI 플러그인
• 신규 버전 테스트
• 성능 테스트
27. Airflow 비용 정산
플랫폼팀의 누명, 누가 범인일까
DAG 태그 정책 추가 : 팀 이름 필수
DAG에서 수행하는 Operator에서 Label 전달
Kubecost를 통해 팀 별 파이프라인 비용 집계
28. Airflow Self-Service
CI를 통해 정책 반영
• Owner 작성, 팀 태그 추가, 권한 확인
• Spark 3.1 버전 F/O → 점진적인 3.3 버전 업데이트
• 지원 종료된 Operator 경고 안내
Provider에 누구나 기여할 수 있도록
• 문서, 버전 관리, CI / CD