大規模サイトの開発・運用ノウハウ GREE編
2008 年 6 月 19 日http://labs.uechoco.com/blog/2007/09/gree.html
1. GREEの今と昔
* (オフレコ情報につき割愛)
2. ソースコードアーキテクチャ
* フレームワークに移行
* 激しくリファクタリング
* 複数サービスの連携
1. サービスがつくりたくなる
2. IDの共通化
3. 共通処理をたくさん作って楽する
* 定数をまとめたBootstrapを作る
* まとめ
1. require_onceのコストは考慮にいれるべき
2. 多言語へのブリッジもあってもいい
3. リファクタリングは避けられない
4. サービス連携を考慮して
3. データ
* データの扱い
o パフォーマンスやスケーラビリティを考える
o DB分割、インデックス、キャッシュ
* DB分割
o TEXTフィールド分割
* テーブル分割
o 別サーバーへ
o 1つのテーブルを複数のテーブルに分割し、パーティションIDでアクセス(mixiでもやってる)
* インデックス張る
o MySQLのインデックスはどうも・・・
* キャッシュ
o memcache
o MySQL
* RDBMS
o JOINしない
o 正規化しすぎない
4. サーバー構築・運用
* 数百台規模になると、サーバー管理システムが欲しくなる
* サーバーのアップデートをパッケージ化
5. リリース
1. 初期
* CVS
* リリーススクリプト
* staging環境を構築
2. 中期
* /home/devNで開発者ごとに環境
* trunkに一本化
3. 偏在
* cvs2svnでSVN化
* 開発環境のパッケージ化
* rsync
6. 基幹システム
* LVS
* mod_proxy_balanser
* RDBMS:master_master
* Smarty遅い