📽️

Netflixにおけるデータベースの歴史とCockroachDBをどのように利用しているか

2023/04/05に公開約2,900字

https://www.cockroachlabs.com/blog/netflix-at-cockroachdb/

2008年、NetflixがDVD-by-mailからストリーミングに移行した後、ストリーミングサービスをオンプレミスで運用していたところ、3日間の停止に見舞われました。それがクラウドへの移行の始まりでした。まずAWSを導入しました。そして2014年、グローバルレプリケーションのニーズをサポートするためにCassandraを採用(そして普及)しました。

この2部構成のプレゼンテーションではShengwei Wang氏とShahar Zimmerman氏(いずれもシニアソフトウェアエンジニア)がNetflixがCockroachDBを採用した理由とその導入方法について説明します。

https://www.youtube.com/watch?v=7tnIcs-pi4k

Cassandraに合わないNetflixの3つのユースケース

2019年、Netflixは特定のユースケースでCassandraの問題に直面するようになりました。当時、Netflixは需要が増加してデータベース要件が増加していました。例えばNetflixのスタジオ側ではより多くの番組や映画を制作するようになり、新たなデータニーズが追加されました。一般的に言えば一貫性のあるデータの必要性が高まり、特に以下の3つのユースケースに対応するようになったのです:

  • クラウドドライブサービス - Netflixのスタジオサイドが必要としていたメディア資産用のファイルシステム的なサービスです。
  • コンテンツ配信 - NetflixはOpen Connectという独自のCDNを構築し、世界中のネットワークデバイスを管理するためのコントロールプレーンサービスを必要としていました。
  • Spinnaker - クラウド上の継続的デリバリープラットフォーム。

これらはすべてグローバルなサービスであり、時には一貫したトランザクションをサポートする必要があります。Cassandraではリッチなトランザクションが得られないため、一貫したトランザクションをサポートすることは問題です。Cassandraでは豊富なトランザクションが得られないため、代わりに軽量トランザクションを利用することになりますが、これは非常にパフォーマンスが高いものの制限があります。また、Cassandraのセカンダリーインデックスは信頼性が低く、機能しないことがよくあります。

Netflixがこれらのユースケースで検討した他の選択肢はAWS AuroraとDynamoDBでしたが、そこではスケーラビリティにいくつかの制限がありました。

Netflixはこれら3つのユースケースに対してスケーラブルなSQLデータベースが必要だと判断し、以下の要件を設定しました: マルチアクティブトポロジー、グローバルで一貫したセカンダリーインデックス、グローバルトランザクション、オープンソース、そしてSQLです。

図からわかるようにCockroachDBはこれらの要件をそれぞれ満たし、Netflixのアーキテクチャのテーブルに座ることができました。

CockroachDBはNetflixでどのように展開されているのでしょうか?

2020年、Netflixは最初のCockroachDBクラスタを本番にデプロイしました。現在、100の本番クラスタと150以上のテストクラスタがあります。現時点ではほとんどのクラスタが3つのアベイラビリティゾーンを持つ1つのリージョンにデプロイされています。Netflixで最大のCockroachDBクラスタは60ノード、単一リージョンのクラスタで、26.5テラバイトのデータを持っています。

このセクションではShengwei Wang氏が、NetflixがCockroachDBバイナリを使用しない理由、NetflixがCockroachDBの新しいバージョンへのアップグレードをどのようにナビゲートするか、NetflixがCockroachDBのデプロイ/管理をどのように行うかについて説明しています。これらの微妙な詳細については、ここで直接Shengweiから聞くことができます:

https://www.youtube.com/watch?v=7tnIcs-pi4k

Netflixのその他のCockroachDBリソース

2020年にCockroachDBを採用して以来、Netflixの技術ブログではCockroachDBを活用したさまざまなユースケースについて、いくつかの記事を掲載しています:

Twitter、Shipt、Starburstなどの企業がCockroachDBをどのように使っているかに興味があれば、彼らのプレゼンテーションをRoachFestのホームページで見ることができますし、顧客のページではより多くのケーススタディを読むことができます。

Discussion

ログインするとコメントできます