NetflixがKueueを活用してバッチ処理をいかに簡素化... ノート

NetflixがKueueを活用してバッチ処理をいかに簡素化したか

Netflixは、コンピューティングインフラをKubernetesネイティブモデルへと移行しており、KueueなどのコンポーネントをTitusプラットフォームに統合しています。クラウドネイティブなジョブキューイングシステムであるKueueは、自社開発のバッチソリューション「Compute Managed Batch(CMB)」の独自ロジックをほぼ置き換えました。 この移行の動機としては、CMBの老朽化、Kubernetesの進化、そして既存システムにプリエンプションなどの機能を追加することがますます困難になってきたことが挙げられます。Kueueが他の候補よりも選ばれた理由は、既存のTitusスケジューリングプロファイルとの互換性、導入の勢い、そしてプリエンプションなどの機能をネイティブにサポートしている点にあります。「Netflix Batch」として知られるこの移行では、ユーザーへの影響をゼロにし、スループットを低下させないことを目標とした。このプロセスでは、ジョブの送信先をKueue対応のTitusセルに再ルーティングし、ジョブの分散はTitusフェデレーションが処理した。 オペレーターによる調整は最小限で、主にテナントをKueueに登録するためのシンプルなUIトグルの切り替えのみでした。この登録により、CMBの既存のテナント階層およびキャパシティ設定が、Kueueの「コホート(Cohorts)」「クラスターキュー(ClusterQueues)」「ローカルキュー(LocalQueues)」という概念に変換されます。得られた主な教訓としては、スムーズなユーザー体験を確保するために旧システムとのAPI互換性を維持すること、および信頼性を確立するために複雑なユースケースを早期に移行することが挙げられます。また、KueueがNetflixの高いスループット要件に対応できることを確認するために負荷テストを実施し、デフォルト設定の調整が必要だった点も重要でした。 現在、Kueueは完全に稼働しており、数百万件のバッチワークロードを管理するとともに、フェアシェアリングおよびプリエンプション機能の強化を実現しています。これらの改善により、予約済みキャパシティの有効活用、ジョブのスターベーションの低減、および重要なワークロードの処理時間の短縮が可能となり、平均リソース利用率が大幅に向上しました。
CdXz5zHNQW_CNU9jjDeMi.png