検索
ニュース

Netflix、ワークフローオーケストレーター「Maestro」をオープンソース化 1日に約200万のジョブを完了幅広いワークフローのユースケースをサポート

Netflixはデータ/MLワークフロー管理ツール「Maestro」をオープンソース化した。データパイプラインやMLモデルのトレーニングパイププラインなど複雑なワークフローを効率的に管理できるという。

Share
Tweet
LINE
Hatena

 Netflixは2024年7月23日(米国時間)、大規模なデータ/ML(機械学習)ワークフローオーケストレーター「Maestro」のオープンソース化を発表した。

 Maestroは、大規模なデータ/MLワークフロー(データパイプラインやMLモデルのトレーニングパイプラインなど)を管理するために設計された、スケーラブルなワークフローオーケストレーターだ。リトライ、キューイング、コンピュートエンジンへの分散など、ワークフローのライフサイクル全体を管理する。

 ユーザーは、Dockerイメージ、ノートブック、bashスクリプト、SQL、Pythonなど、さまざまな形式でビジネスロジックをパッケージ化できる。有向非巡回グラフ(DAG)のみをサポートする従来のワークフローオーケストレーターとは異なり、Maestroは巡回グラフ、foreachループ、サブワークフロー、条件分岐など処理を繰り返すような複雑なワークフローにも対応しているという。

MaestroはNetflixでどのように活用されてきたのか

 Maestroは、Netflixのエンドユーザー、アプリケーション、サービスにWaaS(Workflow as a Service)を提供する、フルマネージドのワークフローオーケストレーターとして構築された。

 Netflixでは、数十万のワークフローをほとんど中断なくMaestroに移行することに成功している。現在、NetflixにおいてMaestroは毎日平均して数千のワークフローインスタンスを起動し、50万近くのジョブを実行しており、繁忙日には約200万のジョブを完了させているという。

 ETL(Extract、Transform、Load)パイプライン、MLワークフロー、ABテストパイプライン、異なるストレージ間でデータを移動するパイプラインなど、幅広いワークフローのユースケースをサポートしている。Maestroの水平スケーラビリティは、多数のワークフローと、単一のワークフロー内の多数のジョブの両方を管理できるとしている。

Maestroの特徴

 Maestroにおけるワークフローの定義は、プロパティとメタデータを含むバージョン管理されたワークフローという2つの項目で構成されている。Maestroは作成者や所有者の情報、実行設定が含まれるプロパティをバージョンごとに管理する。この一貫性により、管理が簡素化され、トラブルシューティングが容易になるという。

 現在のワークフローの所有権が変更された場合、新しい所有者は、新しいワークフローのバージョンを作成することなく、ワークフローの所有権を引き継ぐことができる。また、ユーザーはプロパティを通じて、指定されたワークフローに対してトリガー機能やアラート機能を有効にできる。

 バージョン管理されたワークフローには、固有の識別子、名前、説明、タグ、タイムアウト設定、優先順位付けのための重要度レベル(低、中、高)などの属性が含まれる。ワークフローを変更するたびに、新しいバージョンが作成され、追跡や簡単な復元が可能になる。デフォルトでは、アクティブなバージョン、または最新バージョンが使用される。

 ワークフローは、ユーザーが定義したワークフローグラフのノードを「ステップ」として構成する。ステップはジョブ、サブワークフローステップを使用する別のワークフロー、またはforeachステップを使用するループを表すことができる。ステップは固有の識別子、ステップタイプ、タグ、入力および出力ステップパラメーター、ステップの依存関係、再試行ポリシー、障害モード、ステップ出力などで構成される。Maestroは、ステップの回復力を高めるためにエラータイプに基づいた再試行ポリシーを設定することもできる。

 「Maestroが提供するスケーラビリティとユーザビリティが、Netflix外でのワークフロー開発を加速させることを願っている」と、Netflixは述べている。

Copyright © ITmedia, Inc. All Rights Reserved.

[an error occurred while processing this directive]
ページトップに戻る