Netflixのワークフローオーケストレーター「Maestro」:最新の進化とその影響

Technology

要点まとめ

  • 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の統合を進め、さらに複雑なデータ処理や、より高度なマネージドバックフィル機能を提供する予定だ。これにより、データの鮮度と精度が向上し、エンジニアリングリソースの最適化が期待される。

タイトルとURLをコピーしました