ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

PHPカンファレンス2008当日メモ

運営の皆様お疲れ様でした。
Hackathon、今後も前日に行うべきだと思います。
椅子並べの人手が自動で揃い、なんというか椅子が揃っていく様子がWikiっぽかったです。(特に完成図があったわけじゃなくて、適当に並べた初期配置からどんどん構成が変わっていって、最終的に意外とちゃんと整ってしまうあたり)

あとLTに入りきれなかった人のサポートとしてのRT(Rejected Talk)、ありがとうございました。懇親会のメロン、美味しかったです。ヽ(´ー`)ノ

ぐるなびの話

  • 加盟店→加盟・情報掲載(有料)(ぐるなび) → 情報提供・予約サービス → ネットユーザ →来客へ!
  • 総計祭店舗数:約50万店
  • 詳細情報掲載店舗数 : 62,000 店以上
  • (以上、2008/03 末現在)

あんまり特別なPHPテクニックは使っていない。標準的なPEARとかSmartyとか。

  • PHPにおいて特別な仕組みはないけど・・・年始・年末の高負荷に備えて、Webサーバーをスケールアップしやすい構成にしておく。
  • DBの検索能とか信頼性に結構苦労している。
  • サーバー:数百台・・・!!
  • PHP5.x : およそ1割
  • PHP4.x : その他
  • 各サービスが縦割りで構築されているため、同一機能も別々に実装されがち
  • 基本クラスの充実を目指してる
  • DBアクセスやロギングなど・・・。
  • Zend FrameworkPECLをラップして暮らすモジュールを構築
  • ビジネスロジックの共通化
  • ユーザー認証など。UI部とpurgeして、フロントの開発をより軽量にする。
  • ZendFramework 使いやすい。
  • SimpleXMLが良い。
  • ぐるなび→上海にも進出。
  • 現地ではJavaで開発・・・してた。
  • 中国では(当時は)PHP技術者が少ない。
  • 日本語版(現地在住日本人向け)の開発からPHPを採用。
  • →現在は実装の標準化をPHPで行うことで徐々にPHPへシフト中・・・。

楽天でのPHPの歴史と未来

  • データセンター構築レベルから自社対応。
  • 去年の秋口の段階で6,000台のサーバ群
  • 5年間でトラフィックは50倍に増加(HTTPだけではなく全体のトラフィック)
  • OracleのGrid, Sunのサーバも大量に使っている。
  • いろいろとハイブリッド。オープンソース、商用サーバー/プロダクトなど。
  • PHP/Tomcat/Ruby (商用のAppServerも使用している。他、GlassFishも)
  • MySQL/Senna
  • Apache/Linux
  • 十分な検証の上で導入する。
  • 特にセキュリティ面は継続監視
  • 必要な場合はpatchも作成
  • 外部からの技術協力も → OSSのリスクを注意した上で、大規模に活用。
  • PHP関係:
    • アプリケーションの数:150本以上(PHP only), 900万行前後
    • サーバの台数:800台(PHPが稼働しているサーバ)
    • PV:約5,000万PV/day
  • PHPの歴史→戦いの歴史?
    • サービス展開のスピード
    • 開発コスト
    • 増大する負荷
  • 2000年頃:
    • PHP3, 手軽に利用できる言語。Webに向いた機能が多い。きっかけは当時のエンジニア
    • 早くも戦いが・・・
    • PHP3 -> PHP4
    • とにかく作る。PVの増加とともに負荷増大。 → 試行錯誤
    • 対応策 : safe_mode, Smarty, PEAR, I/O処理の見直し、スレーブDBの利用
    • NASに依存するのも問題。NASの負荷増大。
    • スクリプトファイルや一部のローカルにおけるファイルをrsyncでlocalに落としてた。
    • 独自フレームワーク期(オレオレフレームワーク
  • 2005年
    • Mojavi導入
    • コードジェネレータの開発
    • APC導入
    • →PHP4でのスタイルの確立
    • →新卒エンジニアなども開発
    • →DB周りやロジックは未整備
  • 2006年頃
    • →PHP5の検証に着手
    • symfony : 現在の社内標準
    • →→Mojaviに構造が近い点がgood.
    • →→スケルトン生成があるのもGood.
    • →他にもEthnaMapleも検討していた。
  • →infoseekのメール:symfony + AjaxUI
  • ただし・・・
    • →高機能だけど勉強が大変。(学習コスト有り)
    • →→CUIになれてない人とか、YAMLに慣れていなかったりとか。
    • →Propelについても様子見
    • プラグインなどは各所で対応。
    • →小さいサービスには大げさすぎる。
  • symfonyの使い勝手や社内でのノウハウの蓄積・共有がこれからの課題。
  • CakePHPは・・・?
    • いくつかのサービスで試験的に利用。
    • 学習コストが少ない・・・らしい。
    • 幸いなことに支援者有り。→yandoさん自身のこと。
    • 比較的軽量であることが利点。
    • 一般での盛り上がり、一部社内技術者からの要望・提案を受けて。
    • 楽天市場の「お気に入りブックマーク」の携帯版がCakePHP
    • →→PC版もCakePHPでリニューアル予定だよ!
  • CakePHPの課題。
    • →大規模な開発へ適用できるか?
    • →ライブラリの整備
    • →既存資産とのかねあい
    • Railsとのかねあい。
  • まとめ
    • スピードとコストを両立した開発を実現
    • 共通ライブラリの整備の課題
    • オープンソース活用の風土を広められた

他、気になったキーワード