見出し画像

Netflixのサービスにおけるデータ活用方法

今回はネットフリックスのサービスにおいてデータサイエンスの技術がどのような場面で活用されているかについて、公式ブログの内容を簡単にまとめます。

NetflixではOpen Connectというシステムを使ってコンテンツの配信を行なっています。
Open Connectのサーバー(Open Connect Application;通称OCA)において数十TBのデータが毎秒飛び交う中で、データサイエンスチームはストリーミングの品質を担保するために以下のような取り組みを行なっています。

人気コンテンツの予測とエッジキャッシュ
Netflixでは15000以上の作品が配信されていますが、全ての動画データをサーバーロケーション上に保管することはできません。
そのため人気のあるコンテンツを事前に予測し、ローカルサーバーにキャッシュ化しておくことで通信負荷を削減しています。こちらはエッジキャッシュと呼ばれる仕組みだそうです。

画像1

夜間などNetflixの利用が増加する時間帯に向けて、オフピークの時間帯からどのコンテンツが視聴されるかの予測を行いキャッシュ化を事前に済ませています。これによって容量の大きいコンテンツもスムーズに配信することができるわけですね。
あくまでローカルサーバーにキャッシュすることが目的のため、個人ではなく、あくまでローカル層を対象にざっくりと予測を行うことになります。

また、作品によってはエンコーディングのために数百を超えるファイルが付随することになります。
この場合、ファイルは視聴者のデバイスやネットワークよって異なるため、どのファイルをキャッシュ化させるべきか、詳細な予測が必要となります。

こうした予測においては時系列予測や条件付き最適化、高度なネットワーク構築のような技術が活用されています。

クラスター内のコンテンツ割当の最適化
コンテンツをキャッシュした後は、OCAのクラスター内で各ファイルの配信方法を最適化します。ここではコンテンツの保管や動画の配信を行うクラスターをOCA内で作成します。
もしもトラフィックの過負荷などによってクラスター内のOCAの機能が阻害された場合は、トラフィックの一部を別のロケーションへ移動することでバランスを維持します。
また、こうしたトラフィックの不均衡は特定のデバイスによって引き起こされている可能性もあるため、トラフィック全体のみならずそれを構成する要素も加味して最適化が行われます。

画像2

ここで、クラスター内にどのコンテンツを保管するかは、コンシステントハッシュ法に基づいて、疑似乱数的に決定されます。
しかし、ランダム性を持つアルゴリズムに任せてしまうと負荷の高いコンテンツを含むホットスポットが形成される懸念もあります。
そのため、クラスターの管理においては条件付き最適化やトラフィックの変動に対する確率・統計モデルが使用されています。

キャパシティの長期的なプランニング
OCAの管理は、配信コンテンツの変化やユーザー増加、エンコーディングやデバイスの変化等、様々な事情によりアップデートされます。
そこでデータサイエンスチームは上記の要素や需要の変化から、中長期的なトラフィックを予測し、どのエリアにサーバーを増設するか等の計画を策定します。

参照記事:How Data Science Helps Power Worldwide Delivery of Netflix Content(https://netflixtechblog.com/how-data-science-helps-power-worldwide-delivery-of-netflix-content-bac55800f9a7

この記事が気に入ったらサポートをしてみませんか?