FarmVilleが7500万ユーザ環境をどの様に対応しているのか
FarmVilleのCEOであるLuke Rajlich氏とのインタビューを通して、FarmVille社が如何に急激なユーザ成長に対応していったかを説明している。
FarmVilleは、サービスを開始して4日目で100万人、60日目には1000万人のユーザ規模に急成長している。 発足当時、世間で一番ユーザ数の多いゲームは高々50万人程度。 現在、発足9ヶ月目にして、同ゲームは同時利用者の平均が2800万人、合計7500万人のユーザに達している。 事実上、世界最大のゲーム、世界最大のウェブプラットホームになる。
そのような状況の中、同社はLamp Stackを利用して開発されたコアをオープンソースを中心としている。
FarmVilleは、そのプログラムの性格上、次のような特徴を持っている。
1) 他のFacebook、Googleアプリケーションと比較して、Readに対するWriteの比率が著しく高い(Read:Write=3:1)
2) 新しい機能を追加すると、利用者の急増が大きく、場合によっては50%跳ね上がる事があり、この対応が非常に重要になってい来る。
3) Facebookプラットホームの上で稼動するため、性能上の課題が大きい。 この問題を解消するために、Facebookのデータを大量にキャッシュする方式を採用している。 FarmVilleとFacebook間で行われるデータ通信はピーク時には3Gb/秒+キャッシュ間通信で1.5Gb/秒が加わる。
4) オープンソースを積極的に採用:
a) 警報: nagios
b) 監視: munin
c) 構成管理: puppet
d) システム状況: Facebook DB、Memcache
5) ゲームを構成するすべてのコンポーネントに障害が発生しうる事を認識し、その障害がシステム全体に影響を与えないようにするために、各コンポーネントを独立化する。
ゲームという固有の世界ではあるが、クラウドアプリケーションの中でも特にLatency(遅延)や障害に敏感な正確を持つこの業界でのソリューションはかなり真剣に取り組んでいる状況が分かる内容で在る。