ソフトウェア

Netflixが大規模ワークフローの管理システム「Maestro」をオープンソース化


Netflixが自社製ワークフローオーケストレーター「Maestro」をオープンソース化しました。MaestroはNetflix社内で現役稼働しており、データパイプラインや機械学習パイプラインといった大規模ワークフローの管理に使われているそうです。

Maestro: Netflix’s Workflow Orchestrator | by Netflix Technology Blog | Jul, 2024 | Netflix TechBlog
https://netflixtechblog.com/maestro-netflixs-workflow-orchestrator-ee13a06f9c78


Netflixは「ユーザーが次に視聴する作品の予測」などを目的に機械学習を活用しており、記事作成時点では何千もの機械学習ワークフローインスタンスを起動し、平均して1日当たり50万のジョブを実行、特に忙しい日は約200万ものジョブを実行しているとのこと。Netflixで稼働しているワークフローは非常に膨大なため、「ワークフローを小さなグループに分割して、異なるクラスターとして管理」という手法では「複雑さが増す」「断片化されたワークフローを調整するメカニズムが追加で必要になる」「ユーザーエクスペリエンスが低下する」といった問題が発生してしまいます。このため、Netflixは単一のワークフローオーケストレーターですべてのワークフローを管理しています。

Netflixは、2016年頃から機械学習ワークフローの管理のために自社製オーケストレーター「Meson」を使用していました。その後、実行する機械学習インスタンスの数が増加し続けた結果、「Mesonではシステムを垂直方向に拡張する必要があり、AWSインスタンスの上限に近づきつつある」という問題が顕在化したとのこと。このため、Netflixはシステムを水平方向に拡張可能な新型オーケストレーター「Maestro」を2020年に開発して運用開始しました。

そして、Netflixは2024年7月23日にMaestroをApache-2.0 licenseのもとでオープンソース化したことを発表しました。Maestroのソースコードはすでに以下のGitHubリポジトリで公開されています。

GitHub - Netflix/maestro: Maestro: Netflix’s Workflow Orchestrator
https://github.com/Netflix/maestro


Maestroはデータパイプラインや機械学習モデルのトレーニングパイプラインなどの大規模なワークフローを管理するために設計されたワークフローオーケストレーターで、システムを水平方向に拡張可能です。ユーザーは自身のビジネスロジックを「Dockerイメージ」「Notebook」「bash script」「SQL」「Python」などの形式で管理可能で、ワークフロー定義はJSON形式で記述可能です。ワークフロー定義の例は以下のリンク先で公開されています。

Workflow definition example · Netflix/maestro Wiki · GitHub
https://github.com/Netflix/maestro/wiki/Workflow-definition-example

この記事のタイトルとURLをコピーする

・関連記事
DockerコンテナやKubernetesクラスタをGUIで管理できる「Portainer」レビュー - GIGAZINE

GitHubに100種類以上の機能を追加し、インターフェースを使いやすく改良するブラウザ拡張機能「Refined GitHub」 - GIGAZINE

ライブラリ間の依存関係を銀河のように視覚化してくれるサイト「Code Galaxies Visualization」 - GIGAZINE

KubernetesのCPU limits設定時における「不要なスロットリング」を回避する方法とは? - GIGAZINE

in ソフトウェア, Posted by log1o_hf

You can read the machine translated English article here.