DeNAさん著の「Mobageを支える技術」を読んだ

Mobageを支える技術


もはや説明する必要もないソーシャルゲーム・プラットフォームサービスとなったMobage。そんなサービスを支えるDeNA社のエンジニア陣が執筆した書籍が明日発売とのこと。

この本は発売前から気になっていたのですが、大変ありがたいことにDeNAの方々からご献本いただきました。この場を借りて御礼申し上げます。


Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)


さて、すっかり大規模Webサービスとなったモバゲーですが、本書によると2012年3月末時点で、ユーザ数は約4000万人に到達し、35億PV/dayを捌くインフラアーキテクチャは意外にもWeb/APサーバ+DBサーバの基本2層構成にCacheやQueueを挟んだものとなっていて、意外とシンプルな作りになっている模様です。

ただ、その舞台裏は、本書を通じて各所の様々な工夫を垣間見ることができ、そのようなMobageの中で生まれた英知の結集を全体的に俯瞰して少し把握することができる、まさに本書はそんな書籍です。

Part1 ソーシャルゲーム開発技術
Part2 ソーシャルゲーム運用技術
Part3 ソーシャルゲーム効率化技術
Part4 ソーシャルゲーム分析技術


目次は、後ろで転載させていただきますが、本書は大きく分けて、こういった4部/13章の構成となっています。執筆陣は、それぞれの方が各1〜2章分を担当されており、各分野のエキスパートが文字通り、Mobageの開発/運用の中で培われてきたTIPSを書き下ろしていて、Webサービスを運用されている方であれば、参考になる部分が多くあることでしょう。


個人的に、私の最近の取り組みともかぶる第8章の「数千台のサーバを運用する技術」は特に興味深く読ませてもらいました。
まずサーバ情報の管理。100台、いや20台以上のサーバを運用されている方であれば、必ずといっていいほど一度はサーバ自体の管理について考えたことがあるのではないでしょうか。

本書を読む限り、モバゲーさんではAdmintoolと呼ばれる自作されている管理システムがあり、サーバの納品のタイミングから、各タイミングでデータが(出来る限り自動化された形で)システムへ投入されていて、このあたりの話は、本にある程度詳細に書かれてはいますが、もっと詳細に(特に自動化の部分について)突っ込んだ話を聞いてみたいなぁ(チラチラッ

あと、当然のようにサーバ管理システムにもAPIが用意されていて、各ツールと連携して必要に応じてサーバ情報を取得してオペレーションできるようになっているのは、改めて基本がしっかり出来ているという意味で凄いと思った。

サーバのセットアップ時の自動化の流れ(pxe + kickstart)も色々と参考になると思います。読んでいて、こう自動化すると確かにここハマっちゃうよねーって部分がきっちり網羅して回避策が書かれてあったり。

あとDisklessなLinuxサーバの話も載っていたりして、個人的にしばらく使っていなかったりする*1ので、また改めて使いどころを考えてみたいと思いました。こういうきっかけをもらう事も刺激になるので、他所の事例を眺めるのは、本当に良い勉強になります。


だんだんと自分の話になってきたような気がするので、そろそろ切り上げたいと思いますが、こんな感じで各章ともガッツリ深く書かれているというわけではなく思いのほか読みやすい感じでありながら、本当に多くのTIPSが多岐の分野に渡り散りばめられている書籍だと思いますので、重ねてとなりますがWebサービスの開発/運用に携わられている方に是非オススメしたい書籍であると言えます。

最後に、6〜7章の松信先生のパートを読んで、改めて「Webエンジニアのためのデータベース技術[実践]入門」を買ってしまったことも付け加えておきます・・・。

それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

  • 作者: 松信嘉範
  • 出版社/メーカー: 技術評論社
  • 発売日: 2012/03/09
  • メディア: 単行本(ソフトカバー)
  • 購入: 20人 クリック: 486回
  • この商品を含むブログを見る

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

  • 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己
  • 出版社/メーカー: 技術評論社
  • 発売日: 2008/08/07
  • メディア: 単行本(ソフトカバー)
  • 購入: 133人 クリック: 2,270回
  • この商品を含むブログ (288件) を見る

目次

--- Part1 ソーシャルゲーム開発技術

1章 ソーシャルゲーム概論
    1-1 ソーシャルゲームとは
    1-2 ソーシャルゲーム運用

2章 ブラウザベースのソーシャルゲーム(フィーチャーフォン)
    2-1 フィーチャーフォンとは
    2-2 フィーチャーフォン向けWebアプリケーション開発
    2-3 フィーチャーフォン向けのHTML
    2-4 Flash Lite
    2-5 ソーシャルゲームのUI設計
    2-6 セキュリティ対策

3章 ブラウザベースのソーシャルゲーム(スマートフォン)
    3-1 スマートフォンの利点
    3-2 UIとUXにおける工夫
    3-3 ハイパフォーマンス・ソーシャルゲーム
    3-4 アニメーションテクニック

4章 アプリケーション版のソーシャルゲーム開発
    4-1 アプリケーション方式の構成
    4-2 アプリケーション形式のメリットとデメリット
    4-3 ゲームエンジンを使う

--- Part2 ソーシャルゲーム運用技術

5章 35億PV/dayをさばくインフラ構成
    5-1 ソーシャルゲームインフラの構成
    5-2 Webアプリケーション層における工夫

6章 データベースのレプリケーション
    6-1 DB層で重要視される指標
    6-2 レプリケーションの活用
    6-3 レプリケーション遅延への対策
    6-4 レプリケーション遅延を防ぐベストプラクティス

7章 データベースの高性能化/高可用性化
    7-1 性能管理と台数削減
    7-2 マスター分割(Sharding)の戦略
    7-3 サービスの拡大/集約と無停止メンテナンス
    7-4 マスターの自動フェイルオーバ

8章 数千台のサーバを運用する技術
    8-1 サーバ情報の管理
    8-2 サーバセットアップ
    8-3 監視

--- Part3 ソーシャルゲーム効率化技術

9章 MySQLとの付き合い方
    9-1 大規模環境におけるデータベースプログラミング
    9-2 データベースプログラミングにおけるテスト手法
    9-3 MySQLのストアドプロシージャ/トリガ/イベントスケジューラ
    9-4 RESTful APIの考え方と実際

10章 Job QueueとMessage Queue
    10-1 Job Queue/Message Queueの概要
    10-2 Q4Mを利用したworkerの実装

11章 アプリケーションチューニング
    11-1 キャッシュを利用する
    11-2 さまざまなDNSのキャッシュ
    11-3 アプリケーションのチューニング

12章 DevOps
    12-1 ログ監視
    12-2 運用

--- Part4 ソーシャルゲーム分析技術

13章 大規模データマイニング
    13-1 ユーザの楽しさの法則とサービス洗練
    13-2 Clustering
    13-3 Frequent Pattern Mining
    13-4 Classification
    13-5 Recommendation

*1:http://d.hatena.ne.jp/rx7/20080131/p1 , http://d.hatena.ne.jp/rx7/20080316/p1 ・・・その2で終わってる。。。その4くらいまで書いたつもりだった。