목록 보기
데이터 엔지니어의 Airflow 데이터 파이프라인 CI 테스트 개선기
데브옵스

데이터 엔지니어의 Airflow 데이터 파이프라인 CI 테스트 개선기

버즈빌
버즈빌
2024년 4월 18일

두줄요약

Airflow 데이터 파이프라인 CI의 이미지 캐시, 의존성, 초기화·병렬 실행을 개선했습니다. 최대 7분 걸리던 테스트를 안정적인 3분 중반대로 약 50% 단축했습니다.

문제 상황

  • 데이터 파이프라인 YAML Pull Request마다 실행되는 CI 테스트의 최대 7분 소요
  • 이미지 빌드 시간 편차와 테스트 환경 초기화·순차 실행으로 인한 대기 시간

원인 분석

  • CI 테스트용·배포용 이미지가 브랜치 단위 캐시를 공유하며 캐시 데이터 상호 덮어쓰기
  • 이미지 푸시 이후 캐시 생성·푸시 완료까지 대기하는 불필요한 의존성
  • Airflow 초기화에 1분 40초 소요, pytest·Athena 쿼리 검증의 순차 실행

해결 방법

  • 브랜치·Dockerfile명·빌드 타깃 기준 이미지 캐시 분리 및 이미지 푸시 기준 의존성 변경
  • airflow.db 결과물 리포지토리 관리로 초기화 제거, pytest와 Athena 쿼리 검증 병렬화
  • GitHub Actions 캐시를 활용한 mypy 캐시 관리

성능/운영 포인트

  • 최대 7분의 CI 테스트를 안정적인 3분 중반대로 단축해 약 50% 개선
  • GitHub Actions 캐시의 10GB 용량 제한과 7일 미접근 캐시 삭제 정책 고려
  • 대용량 이미지 캐시에 따른 캐시 효율 저하 가능성 점검

다음 읽기

#Airflow 주제를 이어서 읽기

데이터 엔지니어의 Airflow 데이터 파이프라인 CI 테스트 개선기

데이터 파이프라인 CI 테스트 시간을 7분대에서 3분대로 줄인 개선 사례를 다뤘습니다. YAML 작성부터 PR, 배포까지의 흐름 속 병목을 줄이는 방법을 소개했습니다.

버즈빌
버즈빌
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...