Workflow Orchestration

Data Engineering Zoomcamp 2026 스터디의 모듈 2 내용을 정리했다.

💡 Data Lake 란?

  • 정형, 반정형, 비정형 데이터를 포함한 모든 형태의 데이터를 원시(Raw) 상태 그대로 저장하는 대규모 중앙 저장소
  • 특징:
    • 데이터를 가공하지 않고 원본 그대로 저장하며, 데이터를 읽을 때 스키마를 정의하는 Schema-on-read 방식을 사용
    • **비정형 데이터(텍스트, 이미지, 로그 등)**를 포함한 모든 종류의 데이터를 수용 가능
    • 저장소와 컴퓨팅을 분리하여 저렴한 비용으로 무제한에 가까운 확장이 가능
  • 목적: 데이터 과학자나 엔지니어가 머신러닝, 탐색적 데이터 분석, 스트리밍 분석 등을 수행하기 위해 사용
  • 주의점: 메타데이터 관리나 데이터 거버넌스가 부재할 경우, 데이터가 무엇인지 알 수 없는 **데이터 늪(Data Swamp)**이 될 위험이 있음

💡 Kestra 란?

Kestra는 이벤트 네이티브 워크플로 오케스트레이터로, 스트리밍/이벤트 처리에 강점이 있으며 이벤트 작업 뿐만 아니라 배치 작업 또한 지원한다.
단 몇 줄의 YAML 코드만으로 UI에서 직접 안정적인 워크플로우를 구축할 수 있다. 고 홍보중인데, 깃허브의 리드미를 보면 밑과 같은 특징이 정리되어 있다.

주요 특징

  • UI에서 워크플로우를 구축하더라도 Git 버전 관리와 통합되어 모든 프로세스를 코드로 유지
  • 단순한 트리거 정의를 통해 정기 예약 작업과 실시간 이벤트 기반 자동화를 모두 지원
  • 내장된 코드 에디터에서 단순한 설정 방식을 통해 워크플로우를 정의
  • 수백 개의 내장 플러그인을 활용하여 모든 데이터베이스, 클라우드 스토리지, API에서 데이터를 추출하고 다양한 언어의 스크립트를 실행할 수 있음
  • 구문 강조(Syntax Highlighting), 자동 완성, 실시간 구문 검증 기능을 갖춘 UI에서 워크플로우를 직접 구축하고 시각화
  • 고가용성(High Availability) 및 결함 허용(Fault Tolerance)을 바탕으로 수백만 개의 워크플로우를 처리할 수 있도록 설계
  • 내장 에디터에서 작성한 워크플로우를 Git 브랜치로 직접 푸시할 수 있어, CI/CD 파이프라인 및 버전 관리 시스템의 모범 사례를 구현
  • 네임스페이스, 라벨, 서브플로우, 재시도, 타임아웃, 에러 핸들링, 입력/출력 유효성 검사, 변수, 조건부 분기, 동적 태스크 등을 통해 복잡한 워크플로우를 체계적으로 관리하고 복구 능력을 강화
  • UI 또는 API 호출을 통해 워크플로우를 수정하면 YAML 정의가 자동으로 조정됨. 따라서 수정 방식(UI, CI/CD, Terraform, API)에 관계없이 오케스트레이션 로직은 항상 선언적 코드로 관리됨

🆚 kestra와 airflow 비교

그럼 궁금함이 생긴다.
그럼 기존까지 가장 자주 사용되던 Airflow와 차이점이 무엇일까? kestra는 airflow와 유사한 점이 많다는 것을 아는지 공식 문서에 두 오케스트레이터의 비교를 올려놨다.
그런 걸 포함해서 내용을 정리했다.

구분 Kestra Airflow
기본 개념 이벤트 기반 워크플로 오케스트레이터 배치 중심 워크플로 오케스트레이터
핵심 철학 선언형(YAML) + 이벤트 드리븐 코드 기반(Python) + 스케줄 드리븐
워크플로 정의 YAML Python (DAG)
실행 모델 Stateless 실행, 태스크 단위 격리 Stateful 스케줄러 + 워커
스케줄링 Cron + 이벤트 트리거 Cron 기반
이벤트 트리거 강력 지원 (Webhook, Queue, File 등) 제한적 (외부 연동 시 추가 작업 필요)
데이터 파이프라인 스트리밍/이벤트 처리에 강점 배치 데이터 처리에 강점
플러그인/확장 내장 플러그인 중심 방대한 커뮤니티 플러그인
재시도/에러 처리 YAML에서 명시적으로 설정 Python 코드로 세밀하게 제어
배포/운영 단일 바이너리 + Docker 친화적 구성 요소 많음 (Scheduler, Webserver, Worker 등)

개인적으로 둘을 잘 확인해본 해외 블로그 글은 여기에 있다.

kestra는 이벤트 네이티브라, Airflow가 가지고 있는 스케줄링의 한계를 극복할 수 있다는 점이 매력적이었다.