二つのFlinkオートスケーラーの物語
Netflixは現在、2つのFlinkオートスケーラーを実行しており、1つのオープンソースソリューションに統合することを目指しています。当初、数千のFlinkジョブを管理するために社内オートスケーラーを構築しましたが、これは効果的でしたが、複雑なマルチオペレーターのジョブを処理する能力には限界がありました。この自社開発システムは外部メトリクスに依存しており、不正確であったり、内部ジョブの問題を見逃したりする可能性がありました。その後、Apache Flinkコミュニティは、ジョブ自体の中から推論する、より洗練されたオートスケーラーを開発しました。この2番目のオートスケーラーは、オペレーターの真の処理レートを推定して、頂点ごとの最適な並列度を決定します。Netflixは、ステートフルジョブをスケーリングし、詳細な設定を可能にする能力から、このオープンソースソリューションに収束しています。NetflixでOSSオートスケーラーを実装するには、既存のコントロールプレーンへの統合を含む、大幅な適応が必要でした。また、メトリクス収集の改善や、フォワード接続されたサブグラフやシンクの制限のような特定のジョブ構造を処理するために、Flinkのランタイムに変更を加えました。OSSオートスケーラーを採用することにより、Netflixは大幅なコスト削減とリソース利用率の向上を達成しました。学んだ教訓は、メトリクスの品質が重要であること、チューニング可能なデフォルト値が有益であること、そして既存のソリューションを拡張する前に採用することが賢明な戦略であることを強調しています。彼らは、運用を合理化するために、OSSベースのオートスケーラーへの完全な移行を計画しています。