Netflix Stratum Media Processi... ノート

Netflix Stratum Media Processing: 自動コンテナのサイズ調整

StratumはNetflixの社内サーバーレスメディア処理プラットフォームであり、エンコーディングやパッケージングといった多様なメディアワークロードの処理に不可欠です。エンジニアはStratum関数をOCIイメージとして定義し、それらはTitusコンピューティングプラットフォーム上のバッチジョブとしてスケジュールされます。何十万ものコンテナを管理するStratumは、ポッドキャストやライブイベントのような新しいコンテンツフォーマットに対応するために動的なスケーリングを必要とします。YAMLで指定されるリソースリクエストは、インフラストラクチャやアプリケーションの変更が進化するため、しばしば過剰にプロビジョニングされ、非効率性と運用コストの増加につながります。この問題に対処するため、NetflixはStratum Resource Tuner(SRT)を開発しました。これは、本番環境のコンテナリソースを適切なサイズに調整するための自動化されたシステムです。SRTは、手動でのリソース設定を排除することを目指しており、当初はリソース使用量の70〜80%を占める、レイテンシ要件が緩和された高スループットワークロードに焦点を当てています。関数オーナーは、リソースタイプ(CPU、メモリ、ディスク、ネットワーク)ごとに自動的な適切なサイズ調整を選択できます。SRTのワークフローは、リソース使用状況のメトリクス収集、推奨事項の生成、実験による推奨事項の検証、推奨事項の適用または拒否、適用後のメトリクスの監視という5つのステップで構成されます。推奨事項は、CREATED、EVALUATING、APPLIED、REJECTED、MONITOREDの状態を経ます。例えば、VideoEncoder.encodeV1関数の過剰にプロビジョニングされていたメモリとCPUは、正常に調整されました。メトリクス収集は堅牢であり、実行レベルのサマリーは短期間の検索のためにElasticsearchに保存され、高解像度の生の利用メトリクスは長期間のトレンド分析のためにIcebergテーブルに保存されます。Conductorワークフローが毎日実行され、1ヶ月分のIcebergデータを使用して、すべての関数とリソースタイプに対する推奨事項を生成します。このプロセスには、高スループットワークロードのフィルタリング、CPUとネットワーク(p99使用率)のアグレッシブな調整、メモリとディスク(安全バッファ付きのp99.9使用率)のコンサバティブな調整が含まれます。削減量が小さすぎる推奨事項の破棄や、メモリとディスクの最大削減量をサイクルあたり15%に制限するなど、安全策が講じられています。推奨事項はCREATED状態で作成され、この段階を過ぎると変更できなくなります。例では、CPUの推奨事項が1回のステップで8から4に、メモリが18000MBから15300MBに削減されたことを示しており、コスト最適化におけるSRTの実用的な適用例を示しています。
CdXz5zHNQW_2pPMwVXJcD.png