Repolode
Netflix

Netflix/maestro

Netflixが開発する汎用ワークフローオーケストレーター。データとMLのパイプラインをスケジュールして実行する、ワークフロー・アズ・ア・サービスを提供します。

代替できる製品:Apache Airflow

スター
3,852
フォーク
311
未解決の Issue
39
最終コミット
18 時間前

これは何?

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 とは?
Netflixが開発する汎用ワークフローオーケストレーター。データとMLのパイプラインをスケジュールして実行する、ワークフロー・アズ・ア・サービスを提供します。 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 の数値は毎日更新されます。

関連プロジェクト