<< JDK1.4 の EOL | Home | Twitter4J 1.0.6 リリース >>

カカクコム&クックパッド共催・勉強会に行ってきました

クックパッド社で開催されたカカクコム&クックパッド共催・勉強会を開催しました。
といっても1週間前の話です。
クックパッドはご存じ世界最大規模のお料理レシピサイト。
カカクコムはやはり有名な価格比較サイト、価格.comを初めとする便利Webサービスを提供する会社です。

一見関係のなさそうな2社ですが、カカクコムはグルメ口コミサイトの食べログ.comを運営していたり、クックパッドも食べログも Ruby on Rails で構築されていたりと食べ物と技術面という2つの面から繋がりがあるそうです。

Ruby on Rails はおろか Ruby も全然知らないのですが、スケールさせるのに大変そうな RoR でどのように大規模サイトを運用しているのか興味がありお邪魔してみました。

・・・というのは表向きの理由で、素晴らしいキッチンを備えたクックパッドの社屋を覗いてみたかったのと、おいしい料理にありつけそう、という裏のモチベーションもありました。
クックパッド またまたお引越しブログ: 白金オフィスができるまで

クックパッドの白金オフィスは都営三田線、白金台駅のほど近くにあります。
恵比寿にあるレッドハットのオフィスからは歩いて15分くらいで行くことができました。

さて、肝心の内容ですが RoR 関連の前提知識は全然ないので技術的なレポートはあまりできません。
一般的な話になってしまいますがスケールさせるにはキャッシングとデータベースの冗長化が肝なんだなーというのがおおざっぱな感想。

キャッシュ可能にするためにメインの html は固定しておき、「〜さんようこそ」とか広告コンテントとか動的に変わる部分は AJAX で別途リクエストさせるというテクニックは広く応用が効きそうです。

キャッシュに使う memcached のプロセスサイズが増え続けるので監視しつつ定期的に再起動してあげるというあたりは対症療法的な対応ながらノウハウが詰まっている感がありました。

ちょっとビックリしたのは RoR はセッションの共有にデフォルトでデータベースを使うということ。ちょっと遅そう?
あと、RoR はバージョン2.2 でスレッドセーフになる!!!とかいう話題もあり、既に実績がありながらもまだまだ成長過程にあるフレームワークなんだなーと感じました。
クックパッドも食べログもほとんどのページはステートレスに見えるのでセッションは使っていないのかな?
Java の世界ではセッションのレプリケーションをデータベースで行うのはパフォーマンスに悪影響があるのでインメモリでネットワーク越しに行いますし、スレッドセーフは当たり前なのでちょっと不思議。

RoR を使う理由は生産性の高さ、リファクタリングのしやすさにあるそうです。
強い型づけが行われない言語でどうしてリファクタリングがしやすいのかはよく分かりませんでした。
開発は全員 Mac と emacs の組み合わせで行っているそうで、きっと良いリファクタリングツールがあるのでしょうね。

最近は JRuby で Ruby on Rails も動くそうなので、時間があればちょっと触って Seam とか Struts とかとパフォーマンス比較とかしてみたいなーと思いました。

タグ :



コメント追加 トラックバック送信