Agile Cat — in the cloud

Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _3

Posted in Facebook by Agile Cat on July 9, 2010

Exploring the software behind Facebook, the world’s largest site _3
Posted in
Main on June 18th, 2010
by Pingdom
http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/

image_thumb2

いよいよ最終回です。 前回は Facebook が利用しているソフトウェアをリストアップしていましたが、そこには含まれなかった運用に関するノウハウを、今回は紹介してくれます。 スケールという視点からして、参照できる事例のない Facebook としては、道なき道を切り開いていかざるを得ないわけです。 したがって、他では聞くことのできない貴重な情報が、たっぷりと含まれている記事となっています。 楽しんでくださ~~~い。 ーーー A.C.

ーーーーー

Other things that help Facebook run smoothly

We have mentioned some of the software that makes up Facebook’s system(s) and helps the service scale properly. But handling such a large system is a complex task, so we thought we would list a few more things that Facebook does to keep its service running smoothly.

ここでは、Facebook のシステムを構築し、サービスのスケールを適切に支援する、いくつかのソフトウェアを説明してきた。 ただし、このような大規模システムの取り扱いには、複雑なタスクがつきものだ。 したがって、Facebook がサービスを円滑に提供するために用いている、いくつかの事柄についてリストアップしておく。

Gradual releases and dark launches

Facebook has a system they called Gatekeeper that lets them run different code for different sets of users (it basically introduces different conditions in the code base). This lets Facebook do gradual releases of new features, A/B testing, activate certain features only for Facebook employees, etc.

Facebook は、それぞれのユーザーのグループに対して、異なるコードを実行させる、Gatekeeper というシステムを持っている(基本的にコードベースに異なる条件を導する)。 それにより Facebook は、新しい機能の段階的なリリースや、A / B テスト、従業員に限定した特定機能のアクティベーションなどを実現している。

Gatekeeper also lets Facebook do something called “dark launches”, which is to activate elements of a certain feature behind the scenes before it goes live (without users noticing since there will be no corresponding UI elements). This acts as a real-world stress test and helps expose bottlenecks and other problem areas before a feature is officially launched. Dark launches are usually done two weeks before the actual launch.

さらに Gatekeeper は、Facebook における運用前の機能を、“Dark Launche” と呼ばれる仕組みの中で実施していく(そのための UI は存在しないため、ユーザーは気付かない)。それは、現実世界のストレス・テストの役割を担い、また、対象となる機能が公開される前に、ボトルネックなどの問題点を明らかにしていく。Dark Launche には通常、公開前の 2週間が費やされる。

Profiling of the live system

Facebook carefully monitors its systems (something we here at Pingdom of course approve of), and interestingly enough it also monitors the performance of every single PHP function in the live production environment. This profiling of the live PHP environment is done using an open source tool called XHProf.

Facebook はシステム(ここで Pingdom が取り上げている)を慎重にモニターする。 そして、きわめて興味深いことに、実運用環境における全ての PHP 機能にいたるまで、そのパフォーマンスルをモニターする。PHP 運用環境のためのプロファイリングは、XHProf と呼ばれるオープンソース・ツールを用いて実施される。

Gradual feature disabling for added performance

If Facebook runs into performance issues, there are a large number of levers that let them gradually disable less important features to boost performance of Facebook’s core features.

Facebook はパフォーマンスの問題に遭遇すると、そのコア機能の性能を引き上げるために、それほど重要ではない機能を段階的に停止する、たくさんのレバーを持っている。

The things we didn’t mention

We didn’t go much into the hardware side in this article, but of course that is also an important aspect when it comes to scalability. For example, like many other big sites, Facebook uses a CDN to help serve static content. And then of course there is the huge data center Facebook is building in Oregon to help it scale out with even more servers.

この記事では、あまりハードウェアについて取り上げていない。 しかし、もちろん、スケーラビリティの話になると、それも重要な局面となる。 たとえば、他の大規模サイトのように、スタティック・コンテントのサービスを促進するために、Facebook も CDN を活用している。 それに加えて、Facebook は Oregon に巨大データセンターを構築しており、さらに多くのサーバーを用いたスケールアウトを促進していく。

And aside from what we have already mentioned, there is of course a ton of other software involved. However, we hope we were able to highlight some of the more interesting choices Facebook has made.

また、ここで取り上げてきた内容とは別に、もちろん Facebook は膨大なソフトウェアを活用している。 とは言え、Facebook の興味深い選択に、スポットライトを当てることができたと信じている。

Facebook’s love affair with open source

We can’t complete this article without mentioning how much Facebook likes open source. Or perhaps we should say, “loves”.

この記事では、どれほど Facebook がオープンソースを好むのかという点を、充分に説明することができなかった。 それについては、『 Love 』と言うべきかもしれない。

Not only is Facebook using (and contributing to) open source software such as Linux, Memcached, MySQL, Hadoop, and many others, it has also made much of its internally developed software available as open source.

Facebook は、Linux や、Memcached、MySQL、Hadoop などを単に利用するだけではなく、オープンソースとして利用できるソフトウェアを、その内部で開発している。

Examples of open source projects that originated from inside Facebook include HipHop, Cassandra, Thrift and Scribe. Facebook has also open-sourced Tornado, a high-performance web server framework developed by the team behind FriendFeed (which Facebook bought in August 2009).

Facebook がオリジナルを開発したオープンソース・プロジェクトには、たとえば HipHop、Cassandra、Thrift などが含まれる。 さらに Facebook は、オープンソース化された Tornado を有している。 それは、FriendFeed(Facebook が2009年8月に買収)のチームにより開発された、ハイ・パフォーマンス Web サーバーのフレームワークである。

(A list of open source software that Facebook is involved with can be found on Facebook’s Open Source page.)

(Facebook が関連するオープンソース・ソフトウェアのリストは、Facebook’s Open Source page で参照できる)

More scaling challenges to come

Facebook has been growing at an incredible pace. Its user base is increasing almost exponentially and is now close to half a billion active users, and who knows what it will be by the end of the year. The site seems to be growing with about 100 million users every six months or so.

Facebook は、信じ難いペースで成長している。 そのユーザー数は急激に増加していて、現時点では約 5億人のアクティブ・ユーザーがいることから、この年末の状況も予想できるだろう。 このサイトでは、6カ月ごとに、約 1億人のユーザーが増えているように思われる。

Facebook even has a dedicated “growth team” that constantly tries to figure out how to make people use and interact with the site even more.

さらに Facebook は、彼らのサイトの用法と運用について、継続的な理解を促進するための、Growth Team を盛り立てている。

This rapid growth means that Facebook will keep running into various performance bottlenecks as it’s challenged by more and more page views, searches, uploaded images, status messages, and all the other ways that Facebook users interact with the site and each other.

この素早い成長が意味するのは、さらなるページビューや、検索、アップロード・イメージ、ステータス・メッセージ、そしてFacebook とユーザーの相互作用がもたらす挑戦につれて、様々なパフォーマンス・ボトルネックに、Facebook が遭遇し続けるという状況である。

But this is just a fact of life for a service like Facebook. Facebook’s engineers will keep iterating and coming up with new ways to scale (it’s not just about adding more servers). For example, Facebook’s photo storage system has already been completely rewritten several times as the site has grown.

しかし、Facebook のようなサービスにとって、それこそが生き抜いていくための現実である。 Facebook のエンジニアたちは反復を実施して、スケールを維持するための新しい方法を考え続けるだろう(単にサーバーを追加するだけではない)。 たとえば、Facebook の写真ストレージ・システムは、その成長につれて、スクラッチから何度も書き直されている。

So, we’ll see what the engineers at Facebook come up with next. We bet it’s something interesting. After all, they are scaling a mountain that most of us can only dream of; a site with more users than most countries. When you do that, you better get creative.

したがって、Facebook のエンジニアたちが、次に生み出すものに注目することになるだろう。 そこには、面白いことがあると確言する。 結局のところ、Facebook がスケールする山のようなものは、人々が夢でしか見ることのできないものであり、また、大半の国々をつなぐというより、より多くの人々をつなぐというものである。 そして、それを望む人に、さらに創造的な方式を提供する。

Data sources: Various presentations by Facebook engineers, as well as the always informative Facebook engineering blog.

ーーーーー

<関連>
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _1
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _2
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _3

ーーーーー
わずか四半期の間に、サーバー数が倍増した Facebook の事情
Facebook の HDFS クラスターは 21 PB !!!
Facebook のスケール感覚に驚愕! _1
Facebook のスケール感覚に驚愕! _2

Facebook、Twitter、Digg などでの Cassandra の状況について

Posted in Facebook, NoSQL, Twitter by Agile Cat on July 9, 2010

Cassandra Status Inside Facebook, Twitter, Digg, and More
Posted on
July 7th, 201014:19 by Alex Popescu
http://nosql.mypopescu.com/post/781834027/cassandra-status-inside-facebook-twitter-digg-and

logo-mynosql

As everyone probably knows by now, Cassandra was originated at Facebook as a solution for inbox search and then open sourced under the ASF umbrella and an Apache license. Since then, Twitter, Digg, Reddit and quite a few others started using it, but not much have been heard from Facebook.

おそらく、すべての人々が認識しているように、Cassandra は Facebook において Inbox サーチのために作り出され、その後に ASF と Apache ライセンスのもとでオープンソース化されている。 そして、Twitter や、Digg、Reddit などの、いくつかの企業が利用を開始しているが、Facebook からの情報は聞こえてこない。

So, in case you are wondering ☞ what’s up with Cassandra here’s a very concise update:

何のことだろうと思うなら、この簡潔なアップデートを参照して欲しい: ☞ what’s up with Cassandra

  1. Twitter and Digg are not planning to fork the project. In fact there are clear plans to contribute back their work on Cassandra (see this for more details)

    Twitter と Digg は、このプロジェクトの枝分かれを望んでいるわけではない。 実際に、Cassandra における彼らの作業を、コントリビューションとして戻す計画が明らかにされている(参照 this for more details)。

  2. Facebook is still using Cassandra internally for the inbox search, but they are using their own version

    Facebook は依然として、Inbox サーチのために Cassandra を内部利用しているが、彼らの独自のバージョンを使用している。

  3. even if except the initial code share Facebook has stopped contributing to the Cassandra project, the community on ASF is doing well (read growing)

    Facebook が Cassandra ブロジェクトに対して、最初のコード・シェアを停止しているという状況を別にしても、ASF のコミュニティは、上手く成長していくだろう。

  4. Riptano, the company founded by Cassandra project lead Jonathan Ellis and Matt Pfeil, is offering technical support, professional services, and training for Cassandra

    Jonathan Ellis と Matt Pfeil が主導する Cassandra プロジェクトとして、資金調達した Riptano 社は、テクニカル・サポートおよび、プロフェッショナル・サービス、トレーニングを提供している。

Reading List:

ーーーーー

<関連>
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか
わずか四半期の間に、サーバー数が倍増した Facebook の事情
Facebook の HDFS クラスターは 21 PB !!!
Facebook のスケール感覚に驚愕!
ーーーーー
10億人のユーザーを目指す、Twitter の 6つの戦略とは?
Twitter が Cassandra を選んだ理由 — MyNoSQL
yoshiyuki kanno さんの Apache Cassandra 用語集(日本語版)
Digg が Cassandra を採用する理由 by John Quinn
ーーーーー
Cassandra をサポートする Riptano が始動

 

%d bloggers like this: