Netflix、ワークフローオーケストレーター「Maestro」をオープンソース化 1日に約200万のジョブを完了:幅広いワークフローのユースケースをサポート
Netflixはデータ/MLワークフロー管理ツール「Maestro」をオープンソース化した。データパイプラインやMLモデルのトレーニングパイププラインなど複雑なワークフローを効率的に管理できるという。
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.
関連記事
- プラットフォームエンジニアリングを用いてKubernetesでDevOpsワークフローを実装
企業が「Kubernetes」の導入規模を拡大している。Kubernetesは、DevOpsをサポートするために一から設計された、コンテナ化されたサービスの設定や管理を自動で行うオープンソースソフトウェアだ。 - Netflix、モノリシックな動画処理パイプラインをマイクロサービスプラットフォームで再構築した事例を紹介
Netflixは公式エンジニアブログで、動画処理パイプラインをマイクロサービスで再構築した事例を紹介する記事を公開した。なぜ、動画処理パイプラインをマイクロサービスベースの新たなプラットフォームで再構築することに決めたのか、どのようにサービスを切り分けたのか、Netflixのビジネスに与えた影響などを紹介している。 - NetflixはKubernetes環境における「孤立したPod問題」にどう取り組んでいるのか
Kubernetes環境における孤立したPodとは何なのか。Netflixのエンジニアが孤立したPodの問題にどう取り組んでいるのか解説した。