2007-09-01 大規模サービスの開発・運用 GREE編 - PHPカンファレンス2007 グリー株式会社 藤本真樹さん GREEの昔 PV 50万 ユーザー数 10〜20万 サーバー 8台 ソースコード 400files 開発チーム 1.5人 マンションの一室 GREEの現在 PV 6000万〜1億 ユーザー数 200万 サーバー台数 600-1000 ソースコード 5,300 files / 500,000 lines サービス 10ぐらい 開発チーム 20人くらい ソースコードアーキテクチャ frontend service src ディレクトリ構成とか 利ファクタリングは避けられないよ 時世的に他言語ブリッジも考えておいたほうがいいかも データ データは増える 増える速度も増える DB分割 インデックス張る slow-logをみてEXPLAINしてみたり キャッシュ データキャッシュ キャッシュストレージはMemcache, Mysql ウノウでMemcacheで最近苦労している。Memcacheサーバーの足し引きめんどい スマートキャッシュ(書きながら命名) 更新時にデータを更新 イベントハンドらみたいな感じで TEXTフィールドを別DBに分割(効く) テーブル分離 (JOINしない) サーバ構築/運用 500台になるとさすがに厳しい Debian GNU?Linux完全依存 全部aptパッケージ管理 つまり サーバー増えてくると管理ツールっぽいものが必須になってくる でもツールは意外に無い 多少の犠牲を払ってでもサーバOSとかは一律でそろえたほうが楽 開発/リリース環境 開発環境 10人 svn upしたら 10分まちとか 根幹システム/ライブラリ RDBMS MySQL Clusterとかちょっとまだきつい PEARのHTTP_Requestはバグバグで独自HTTPローダ ← 確かにバグバグ ApacheモジュールでQRコード生成 Smarty遅い 全文検索 Senna (Sennaちょっとどうよ?そんなにデー多数多くなければいいかも) 質問タイム deployどうしてるのか rsync svn up 悩み中