Facebookのサーバーもすごいことになっている件(直近10ヶ月で20,000台のサーバーを追加。ログは毎日25TB。)

Googleに比べるととっても地味なPRしかしていないが、実はFacebookのエンジニアリングも結構すごい。CTOのJeff RothschildがUCSDで講演したビデオが見れるので今日がある方は是非見た方が良いと思います。


ビデオを見たのが昨日なので、全部覚えていませんが、覚えていることだけでメモを書いておきます。全般的に、非常に素直な講演で、自分たちの良いところも悪いところも素直に言ってしまっているという印象です。(普通、この手の講演だと自分たちが優れていることだけを言うのですが、これまでどういうところで苦労してどうやって克服しようとしているか、みたいなことがとても良く分かります。)


ビデオを見て頂ければ分かりますが、Googleとはベクトルが違うものの、やはり相当技術的にもすごいです。単にPRしていない、あるいは下手なだけですね。
Yahoo!のコアなエンジニアたちが相当FBにいると聞きますので、是非興味がある方はビデオをご覧ください。

  • エンジニア一人が支えるユーザー数はGoogle等の列強と比べても何倍も多い。(この話はいつも採用イベントで出てくる。)
    • 最初の1億ユーザーになった時は、エンジニアが2人しかいなかった(うち一人はCEOw)。
  • 基本的にフロントエンドは今でも全部PHPで作っている。
    • PHPの最大の良さは、何と言っても簡単に作れること。
    • 他方、PHPにも悪いところがたくさんある。リクエストが増えると処理が遅くなるなど。その辺はFBでPHPに改良を入れて、OSSにフィードバックしたりしている。
  • 分散ファイルシステムも結局自作した。
    • 主に写真をどう配置して、どう配信するかというところ。
    • 最初は高いNASとか買っていたけれど、壊れるしスケールしないし、ということで自分たちで作るしかなかった。
    • でも最初にパッケージ製品を使っていたおかげで、どういう部分がボトルネックになるのかが良く分かった。そこを直すように作った。
  • memcachedはあらゆるところで使っている。
  • DBは基本的にmySQL
    • mySQLのエンジン自体に改造してDBへ変更するとmemcachedのキャッシュも変更されるようにした。
    • 最初は西海岸(確かサンフランシスコだと言っていた)にしかDCがなかったが、東海岸に新たに設置したDCとDCまたぎレプリケーションしてる、みたいなことを言っていた。
  • とにかくすごい勢いで成長している。
    • 18ヶ月前まで1万台だったサーバーが今は3万台。
    • 毎日のログは25TBでこれを解析するだけで大変。syslogを吐く部分もカスタマイズしなければならなかった。