Repolode
Netflix

Netflix/maestro

데이터 및 ML 파이프라인을 예약하고 실행하는 워크플로 서비스형 오케스트레이터, Netflix의 범용 워크플로 오케스트레이터입니다.

대체할 수 있는 제품:Apache Airflow

스타
3,852
포크
311
열린 이슈
39
마지막 커밋
어제

어떤 프로젝트인가요?

Maestro는 데이터 및 머신러닝 파이프라인을 실행하기 위해 Netflix에서 처음 개발한 워크플로 오케스트레이터입니다. 사용자는 작업을 방향성 비순환 그래프(DAG)로 구성해 워크플로를 정의한 다음, 서버 API를 통해 예약하고 실행을 시작하거나 모니터링할 수 있습니다. 프로젝트는 Java로 작성되었으며 Spring Boot에서 실행됩니다.

서버는 워크플로 생성, 실행 시작, 인스턴스 및 단계별 실행 조회를 위한 버전 관리 REST API를 제공합니다. 워크플로는 YAML이나 JSON으로 제출할 수 있으며, Python SDK(maestro-sdk)는 코드로 워크플로를 정의하기 위한 빌더를 제공합니다. 설정 안내에는 빌드, 실행, 트리거 과정을 보여 주는 예제도 포함되어 있습니다.

저장소에는 SQS와 SNS를 위해 LocalStack을 사용해 로컬에서 실행할 수 있는 AWS 모듈과, 작업 실행을 위한 Kubernetes 옵션이 포함되어 있습니다. 선택 사항인 maestro-extensions 서비스는 서버 이벤트를 소비해 foreach 단계를 평탄화한 뷰와 같은 기능을 제공합니다.

핵심 기능

  • 01작업을 DAG로 구성해 워크플로를 정의하고 YAML 또는 JSON으로 제출합니다.
  • 02워크플로와 실행을 생성하고 시작하며 조회할 수 있는 버전 관리 REST API를 제공합니다.
  • 03워크플로를 빌드하고 제출할 수 있는 Python SDK를 제공합니다.
  • 04SQS와 SNS 이벤트 처리를 통한 AWS 통합을 지원합니다.
  • 05Kubernetes에서 작업을 실행할 수 있습니다.
  • 06foreach 단계를 평탄화한 뷰를 제공하는 확장 서비스를 제공합니다.

활용 사례

  • 정기적으로 실행되는 데이터 엔지니어링 ETL 또는 ELT 파이프라인을 예약합니다.
  • 머신러닝 학습 및 배치 스코어링 워크플로를 오케스트레이션합니다.
  • 관리형 API 기반 워크플로 서비스를 사용해 대량의 데이터 작업을 실행합니다.
  • 내부 데이터 플랫폼에 적용할 Netflix 스타일의 워크플로 엔진을 평가합니다.

빠른 시작

  1. 1

    사전 요구 사항을 설치합니다: Git, Java 21, Gradle, Docker

  2. 2

    프로젝트를 빌드합니다

    ./gradlew build
  3. 3

    서버를 실행합니다

    ./gradlew bootRun
  4. 4

    API를 통해 샘플 워크플로를 생성합니다

    curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows' -H "Content-Type: application/json" -d @maestro-server/src/test/resources/samples/sample-dag-test-1.json

사용 전 알아둘 점

  • 빌드 및 실행하려면 Java 21, Gradle, Docker가 필요합니다.
  • 대규모 내부 플랫폼으로 설계되어 셀프 호스팅을 위해서는 별도의 설정 작업이 필요합니다.
  • AWS 모드와 같은 일부 기능을 로컬에서 테스트하려면 Docker Compose와 LocalStack이 필요합니다.

토픽

자주 묻는 질문

maestro은(는) 무엇인가요?
데이터 및 ML 파이프라인을 예약하고 실행하는 워크플로 서비스형 오케스트레이터, Netflix의 범용 워크플로 오케스트레이터입니다. Maestro는 데이터 및 머신러닝 파이프라인을 실행하기 위해 Netflix에서 처음 개발한 워크플로 오케스트레이터입니다. 사용자는 작업을 방향성 비순환 그래프(DAG)로 구성해 워크플로를 정의한 다음, 서버 API를 통해 예약하고 실행을 시작하거나 모니터링할 수 있습니다. 프로젝트는 Java로 작성되었으며 Spring Boot에서 실행됩니다.
maestro은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
maestro은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
maestro은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. maestro의 마지막 커밋은 2026년 11월 6일입니다.
maestro은(는) 어디에 사용할 수 있나요?
정기적으로 실행되는 데이터 엔지니어링 ETL 또는 ELT 파이프라인을 예약합니다. 머신러닝 학습 및 배치 스코어링 워크플로를 오케스트레이션합니다. 관리형 API 기반 워크플로 서비스를 사용해 대량의 데이터 작업을 실행합니다. 내부 데이터 플랫폼에 적용할 Netflix 스타일의 워크플로 엔진을 평가합니다.
maestro는 어떻게 설치하나요?
사전 요구 사항을 설치합니다: Git, Java 21, Gradle, Docker 프로젝트를 빌드합니다: ./gradlew build 서버를 실행합니다: ./gradlew bootRun API를 통해 샘플 워크플로를 생성합니다: curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows' -H "Content-Type: application/json" -d @maestro-server/src/test/resources/samples/sample-dag-test-1.json
maestro은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Netflix/maestro

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트