테크레시피

넷플릭스, 워크플로 관리 시스템 오픈소스화

넷플릭스가 자사 제작 워크플로 오케스트레이터 마에스트로(Maestro)를 오픈소스화했다. 마에스트로는 넷플릭스 사내에서 현재 가동 중이며 데이터 파이프라인과 기계 학습 파이프라인과 같은 대규모 워크플로 관리에 사용되고 있다고 한다.

넷플릭스는 사용자가 다음에 시청할 작품 예측 등을 목적으로 기계 학습을 활용하고 있으며 현재 수천 개에 이르는 기계 학습 워크플로 인스턴스를 실행하고 평균적으로 하루 50만 개 작업을 실행하며 그 중에서도 바쁜 날에는 200만 개에 달하는 작업을 실행하고 있다고 한다. 넷플릭스에서 운영 중인 워크플로는 방대하기 때문에 워크플로를 작은 그룹으로 분할해 다른 클러스터로 관리하는 방식은 복잡성이 증가하고 분할된 워크플로를 조정하는 추가 메커니즘이 필요하며 사용자 경험이 저하된다는 문제가 발생한다. 이로 인해 넷플릭스는 단일 워크플로 오케스트레이터로 모든 워크플로를 관리하고 있다.

넷플릭스는 2016년경부터 기계 학습 워크플로 관리를 위해 자사 제작 오케스트레이터인 ‘메이슨(Meson)을 사용하고 있었다. 이후 실행하는 기계 학습 인스턴스 수가 계속 증가한 결과 메이슨으로는 시스템을 수직 방향으로 확장해야 하며 AWS 인스턴스 상한선에 가까워지고 있다는 문제가 드러났다고 한다. 이로 인해 넷플릭스는 시스템을 수평 방향으로 확장 가능한 새로운 오케스트레이터인 마에스트로를 2020년 개발해 운용을 시작했다.

이어 넷플릭스는 7월 23일 마에스트로를 아파치-2.0 라이선스 하에 오픈소스화했다고 발표했다. 마에스트로 소스 코드는 이미 깃허브 저장소에서 공개되어 있다.

마에스트로는 데이터 파이프라인과 기계 학습 모델 훈련 파이프라인 등 대규모 워크플로를 관리하기 위해 설계된 워크플로 오케스트레이터로 시스템을 수평 방향으로 확장할 수 있다. 사용자는 자신의 비즈니스 로직을 도커 이미지, 노트북, 배시(bash) 스크립트, SQL, 파이썬 등 형식으로 관리할 수 있으며 워크플로 정의는 JSON 형식으로 작성할 수 있다. 워크플로 정의 예도 공개되어 있다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사