要点まとめ
- Maestroの概要
- Netflixが開発した大規模データ/MLワークフローオーケストレーター。
- 2024年7月にオープンソース化。
- DockerイメージやPython、SQLなど様々な形式でビジネスロジックをパッケージ化可能。
- 複雑なワークフロー(巡回グラフ、foreachループ、サブワークフローなど)に対応。
- Netflix内部での活用
- 数十万のワークフローをMaestroに移行し、現在も毎日数千のワークフローインスタンスを起動。
- ETL、機械学習モデルのトレーニング、ABテスト、データ移動など、幅広いユースケースに対応。
- 繁忙期には200万以上のジョブを処理。
- Maestroの技術的特徴
- ワークフローはバージョン管理され、トリガーやアラート機能も設定可能。
- ステップごとの再試行ポリシーやエラー対応が設定できる。
- 高いスケーラビリティと柔軟性を持ち、JavaとPython、Apache Kafka、Cassandraなどの技術を使用。
- インクリメンタル処理とApache Icebergの統合
- データの追加/更新のみを処理するインクリメンタルアプローチでリソース効率を向上。
- MaestroとApache Icebergの組み合わせにより、データ鮮度・精度を向上。
- マネージドバックフィル機能を提供予定。
- ICDCテーブルを使った新しいワークフローパターンが導入され、ワークフローの実行が簡素化。
Maestroの概要とオープンソース化の意義
Netflixは2024年7月、独自に開発したワークフローオーケストレーター「Maestro」をオープンソース化した。このツールは、大規模なデータ処理や機械学習(ML)ワークフローの管理を目的としたもので、リトライ(再実行)、キューイング、分散処理といった機能を持ち、ビジネスロジックをDockerイメージ、Python、SQLなど多様な形式でパッケージ化することができる。
従来のワークフローオーケストレーターがDAG(有向非巡回グラフ)に限定されるのに対し、Maestroは巡回グラフ、foreachループ、サブワークフロー、条件分岐など、複雑で柔軟なワークフローにも対応可能だ。この柔軟性は、データパイプラインやMLモデルのトレーニングパイプラインといった、Netflixが直面する多種多様なタスクにとって不可欠な要素となっている。
Netflix内部でのMaestroの役割
Netflixは、数十万のワークフローを短期間でMaestroに移行し、現在も日々の運用において数千のワークフローインスタンスを起動している。ETL(データ抽出、変換、ロード)パイプライン、MLワークフロー、ABテスト、データ移動など、幅広いユースケースに対応しており、繁忙期には1日で200万を超えるジョブが処理される。
この移行により、Netflixはワークフローの効率的な管理と自動化を実現。Netflixが提供するさまざまなサービスにおいて、Maestroは重要な役割を果たしている。たとえば、データ解析の自動化やシステムの異常検知が迅速に行われ、サービスの信頼性が飛躍的に向上した。
Maestroの技術的詳細
Maestroは、ワークフローの定義をバージョン管理されたプロパティとメタデータで構成する。このバージョン管理により、ワークフローの所有者や設定情報が一貫して管理され、トラブルシューティングが容易になる。また、所有権の移行もシームレスに行うことができる。
ワークフローの各ステップは、固有の識別子や再試行ポリシーを持ち、障害が発生した際の自動リカバリ機能が組み込まれている。これにより、システムの安定性がさらに向上し、Netflixが誇るサービスの品質が支えられている。
Maestroの技術スタックには、JavaやPython、Apache Kafka、Cassandraといった分散システムに特化した技術が使用されている。これにより、Netflixの巨大なデータインフラを支えるための高いスケーラビリティと柔軟性が実現されている。
インクリメンタル処理とApache Icebergの統合
Netflixは、データのインクリメンタル処理を実現するために、MaestroとApache Icebergを統合した。このアプローチにより、完全なデータセットの処理を避けることができ、リソースのコストと実行時間が大幅に削減される。
具体的には、ICDCテーブルと呼ばれる追加のIcebergテーブルを使用し、データの変更部分のみをキャプチャすることで、ワークフローの効率を最大化する。これにより、ルックバックウィンドウを使用する必要がなくなり、データ処理の簡素化が図られている。
Netflixは、今後もMaestroとApache Icebergの統合を進め、さらに複雑なデータ処理や、より高度なマネージドバックフィル機能を提供する予定だ。これにより、データの鮮度と精度が向上し、エンジニアリングリソースの最適化が期待される。