Agile Cat — in the cloud

Netflix の API は、200 億リクエスト/月 を処理する

Posted in Amazon, API, Entertainment, Netflix by Agile Cat on March 31, 2011

Netflix API Now Serving 20+ Billion Requests Per Month
Romin Irani, March 29th, 2011
http://blog.programmableweb.com/2011/03/29/netflix-api-now-serving-20-billion-requests-per-month/

_ ProgrammableWeb

Netflix continues to see tremendous growth in its Netflix API. The API which saw humble beginnings in 2008 has taken a giant leap in usage, ever since Netflix started streaming functionality to devices. In what could be one of the largest usages of a public API, the current number of requests for its API is around 20 billion per month and increasing by the day, forcing Netflix to look at measures to decrease them.

Netflix の API が、ものすごい勢いて成長し続けている。 Netflix のストリーミング機能が、2008 年から各種のデバイス向けに提供され始めた時から、この API も継続して提供されているが、最近になって、その使用量が大幅に拡大している。最も多く利用されるパブリック API の1つとして、Netflix のAPI の現時点におけるリクエスト数は 20 billion / month 前後に達し、また、さらに増加している。そのため、この API の使用を低減させるための処理を、Netflix は強いられるような状況にある。

at1042In December, we covered how Netflix was able to scale significantly by moving its API and other services over to Amazon Web Services (AWS). In an interesting blog post, Director of Engineering Daniel Jacobson has given the API numbers and laid out plans on how they are going to tackle this deluge of API usage.

この API と各種のサービスを Amazon Web Services(AWS)に移行することで、Netflix はスケールを大幅に拡大したと、私たちは 12月の記事でカバーしている。また、同社の Director of Engineering である Daniel Jacobson は、その興味深いプログ・ポストにおいて API を説明し、さらには、この API 使用の大洪水への、取り組みついて計画を述べた。

netflix-api-request-growth

Just look at the numbers. A 37x growth in 13 months, 20+ billion API requests in January of this year and the number may even be higher by now. One way to look at these numbers would be continuously boost your infrastructure requirements to anticipate higher load/usage. Netflix, however, wants to get to the root of the issue and as highlighted in the blog entry, its has set two clear goals for its API redesign after seeing these numbers:

まずは、一連の数値に注目して欲しい。 13ヶ月で 37倍に増大し、また、今年の 1月には 20+ billion 以上のAPI リクエストが発生し、その量は今後も伸び続けると予測される。 一般的に、このような傾向の値は、さらなる利用量と負荷の増大をもたらすため、インフラストラクチャの要件を連続的に引き上げていく。 しかし Netflix は、そのブログ・ポストで強調したように、問題の今回に着手することを望み、各種の値を計測した後に、API デザイン変更における 2つの目標を明確にした:

  • Decrease the total number of requests
  • Decrease the payload

It is good to see this discussion in the open. Netflix acknowledges that the number of resources that are being served via its REST API is too many (around 20) and with overlapping needs, it results in several series of calls from the device to its API before all the information is obtained. Hence, the need to look at these resources closely and design them in such a way that with minimum number of requests, the device gets what it needs. The flip side to reducing the number of requests would be that the payload may start getting bigger. To address this, Netflix is looking at approaches like partial response and even providing a SQL-like variability for their database, so that devices get what they need.

こうした状況が、オープンに語られるのは、きわめて好ましいことである。 Netflix は、REST API がサポートするリソース数(およそ20)が、あまりに多く、また、重複が要求されることを認めている。そして、すべての情報をユーザーが得るまでに、デバイスから API へ向けた、いくつかの連続するコールが生じていた。 したがって、デバイスが必要とするデータを、最小のリクエスト数で得られるようにするための、リソースの再設計が要件となった。 リクエスト数を削減する反作用として、データ本体の量が肥大し始めるかも知れない。 それに取り組むために、Netflix はパーシャル・レスポンス的なアプローチに注目した。 そして、さらに、SQL のような変化性(variability)を、自身のデータベースに を提供することで、必要とするデータをデバイスが得られるようにした。

Netflix is one of the best case studies of how APIs are becoming the cornerstone around which engineering makes its plans. It comes as no surprise that heavy usage of an API presents its own challenge in making sure that infrastructure and API design will be able to cater to unpredictable load in the future. Sometimes it pays to think about the basics like Netflix has done to look at reducing the number of requests and even payload size.

Netflix は、ベストなケース・スタディの1つである。つまり、エンジニアリングの観点からの計画を、API を基礎として取り入れる方式を示している。 この インフラストラクチャと API のデザインは、将来における予測不能な負荷に、対応できるのだろうか。しかし、API 利用への大きな依存により、新しい課題が生ずるという考え方は、驚きには値しない。 Netflix が実現したように、リクエスト数とデータ量の削減という、きわめて基本的な事柄について、時には再考すべきである。

Image Credits : The Netflix Tech Blog

 

 

ーーーーー

以前に、 Real World NoSQL シリーズで Netflix を紹介したときにも、ずいぶんとオープンな会社だと思いましたが、API の考え方についても情報を提供してくれるとは、とても有難いことですね! Google の MapReduce 論文や、Facebook による OSS コミットの辺りから活発になってきた、エコシステム作りが実を結び、あらゆるプロバイダーがスケールアウトを実現していくための、きわめて有用な基盤が確立してきていることが、ほんとうによく理解できる事例だと思います。 ーーー __AC Stamp 2

ーーーーー

<関連>
Real World NoSQL シリーズ – Netflix における Amazon SimpleDB
NoSQL のユースケースを一般論と具体論で整理する
NoSQL Database で 認識しておくべき 9つのポイント
Big Data を 美味しくいただくための、クッキング・ブックを作ろう

Tagged with: , , , ,

One Response

Subscribe to comments with RSS.

  1. [...] outcomes that Nostradamus predicted for 2012. In addition you can check out this related post: http://agilecat.wordpress.com/2011/03/31/netflix-%E3%81%AE-api-%E3%81%AF%E3%80%81200-%E5%84%84%E3%83… Additionally you can look at this related post: [...]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: