DeNAさんの「Mobageを支える技術」を献本頂きました。nekokakさんありがとうございます。
今日発売です
この本は4部構成になっています
- Part 1 ソーシャルゲーム開発技術
- Part 2 ソーシャルゲーム運用技術
- Part 3 ソーシャルゲーム効率化技術
- Part 4 ソーシャルゲーム分析技術
最初はガラケーやスマホなどのどちらかというと、フロントよりの話があり、Part2と3で、インフラ・データベース・アプリケーションのチューニングなどの話題が出て、Part4ではデータマイニングが紹介されます。目次をみるだけでもDeNAを支える技術をできるだけ多く盛り込んだ本だということがわかります。その分、若干書評が書きにくく、万人にお勧めするのが難しい本だなと思いました。
DeNAがさばいている35億PV/dayというリクエスト数と同等レベルのアクセスを相手にしければならないエンジニアというは世の中にそれほぞ多くないはずです。今の私の仕事ではこの1/10にもなりません。DeNAが相手にしなければならない規模を想像するのはなかなか容易ではありません。35億PV/dayの世界について何かしら物語の導入として解説があってもよかったのではないでしょうか。
そこで次のような算数をしてみました。
35億PV/day というのは秒間にすると、4万PV/sec、ピークタイムは平均の倍として8万PV/secになる
アプリケーションサーバ1台あたり最大200req/sec処理できるとして、400台のサーバが必要
35億PV/day の世界では1万回に1回しか起きない事が1秒に8回起きる。100万回に1しか起きないことが1日に3500回起きる
数字が小さくなった分、イメージしやすくなったんじゃないでしょうか。こう改めて考えるとMobageを支えるエンジニアの方々のすごさがわかります。
この本の構成として、こういった前提がなく構成やTIPの話が始まってしまうのが全体的な詰め込んだ感に繋がってしまってるんじゃないかなぁと思いました。
各Part/章では、Part2の松信さんのMySQLの運用、Part3のxaicronの書いたアプリケーションのチューニングの章が興味深く読ませて頂きました。松信さんの6章、7章に関しては「Webエンジニアのための データベース技術[実践]入門 (Software Design plus) 」では若干物足りなかった実際のサービスでの事例があり、いつもながら参考になりました。また、xaicronの11章ではmemcachedの使い方などどこかで真似したいと思わせる内容で楽しめました。コラムの「アプリケーションorミドルウェアどちらで対応すべき?」は必読ですね。
大規模Webサービスに関わっているいる人、関わりたい人にはお勧めの本です。大量のトラフィックを捌く現場を想像しながら、なぜこのようなインフラやアプリケーションの構成になったのか、ツールができたのかを考えながら読むのがいいと思います。規模や環境に応じて開発や運用の方法は TMTOWTDI なのでこの本を消化しつつ日々のエンジニアリングに使えるところは使うのがいいんじゃないでしょうか。