ZenML 오케스트레이터

ZenML 오케스트레이터

오케스트레이터(orchestrator) 는 파이프라인 스텝들을 배치 모드로 실행할 때 조율하는 스택 컴포넌트예요. 파이프라인은 비동기 의존 관계가 얽힌 스텝 조합으로 이뤄질 수 있어서, 어떤 스텝을 언제 실행할지를 결정하는 역할이 오케스트레이터에게 있어요. ZenML에서 모든 스택은 반드시 오케스트레이터를 하나 포함해야 해요.

출처: ZenML Orchestrators

오케스트레이터의 역할

오케스트레이터는 파이프라인이 실행될 때 스텝들의 실행을 전반적으로 관리해요. 구체적으로는 이러저러한 걸 처리해요.

  • 스텝 간의 실행 순서와 병렬 실행 결정
  • 스텝이 실행될 환경(컨테이너, 머신) 준비
  • 스텝 실행 결과와 상태 추적
  • 실패 시 재시도·오류 처리

오케스트레이터의 종류에 따라 파이프라인이 도는 환경이 달라져요. 예를 들어 로컬 오케스트레이터는 로컬 머신에서 실행하고, 쿠버네티스 오케스트레이터는 쿠버네티스 클러스터에서 파드로 스텝을 실행해요.

배치 모드와 온라인 모드

ZenML 파이프라인은 두 가지 방식으로 실행돼요.

  • 배치 모드(batch mode) — 전통적인 실행으로, 오케스트레이터가 전체 파이프라인을 한 번에 실행해요. 주기적인 훈련 파이프라인에 적합해요.
  • 온라인 모드(online mode) — 장기 실행 HTTP 서버로 파이프라인을 배포해서 REST API 호출로 실행해요. 실시간 추론·대화형 사용 사례에 적합하고, 이때는 오케스트레이터 대신 디플로이어(deployer) 가 파이프라인을 HTTP 서비스로 감싸 관리해요.

즉 오케스트레이터는 배치 실행을, 디플로이어는 온라인(실시간) 실행을 담당한다고 정리할 수 있어요.

오케스트레이터로 스택 바꾸기

스택에서 오케스트레이터를 교체하면 파이프라인 코드를 바꾸지 않고 실행 인프라만 바뀌어요. 이게 ZenML의 핵심 장점 중 하나예요. 다양한 오케스트레이터가 지원돼서, 팀 상황에 맞는 것을 골라 스택에 붙이면 돼요.

더 알아보기