RailsDevCon 2010 で話してきた

こんにちは! onk です。

一昨日の 11/20 に RailsDevCon2010 にスピーカーとして参加してきました。場所はオラクル青山センターさん。

聞いていただいた皆さま,ありがとうございました。 いやー,30 分も話すの初めてだったので緊張したw 実行委員の皆さまもお疲れさまでした!

プレゼン資料はこちら⇒とあるアプリの開発運用(トラブルシュート)

とあるアプリの開発運用(トラブルシュート) from Takafumi ONAKA

内容ですが,

ソーシャルならではの負荷分散、インフラ、ログ解析とかが聞けると夢が広がっていいかも。他セッションと絶対かぶらないし。大規模サービス作ろうとしている人にはありがたいと思います。

@2celeb さんからリクエストがあったので,『聞くだけで運用した気になるソーシャルアプリ』を主題にしました。駆け足でしたが,伝えたいことは盛り込めたかなぁと思います。少しでも参考になれば幸いです。

関連記事

以下,twitter での反応と補足

Page 1-6

page 1-6

話し始める前にソーシャルゲームを開発したことがある人に挙手してもらったんですがほとんど居ませんでした。遊んでる人で半分ぐらいだったかな。

ロゴはおなじみ http://to-a.ru/ ですね。名付け親は @youthk

page7-12

page 7-12

あ,p11 も p12 もアクティブユーザ数じゃなくて会員数です。念のため。適当にプレスリリースから拾ってきたので半年分ぐらい誤差があると思う。

page 13-18

page 13-18

「2ヶ月でリリースがデフォ」はさすがに言い過ぎっす……。

ミドルウェアは大体最新に合わせるようにしてますねー。「RailsConf 2010 に合わせてリリースされるだろう」と Rails3 beta で開発した挙句 rc4 の状態で本番投入したりとか,Passenger3 で地雷踏んだりとかしています(

page 19-24

page 19-24

はい,HTTP でしたごめんなさい!

アプリの中から見ているだけだと oauth や jpmobile の挙動によく泣かされたので,API とやり取りするときは必ず WAF が処理する前の request を眺めるようにしています。

サーバ構成はあくまで基本構成で,本番は web がズラーっと横に並んだり cache や db の slave が並んだりします。

page 25-30

page 25-30

martinbtt's net-http-spy at master - GitHub ですね。外にアクセスしてるのが一目瞭然で便利なので,僕は .irbrc に

require "net-http-spy"

を書いています。

tcpflow は yum や apt で入れてください。ファイルに落としたいときってそんなに無いので flow で十分なんですよねー。

page 31-36

page 31-36

CPU 使用率はアプリによって違うだろうから,分かりやすくメモリ使用量で表現しています。150MB 超えることもあるので念のため 200 弱と言っておきました!

page 37-42

page 37-42

DB 切り替えてる部分はどれも 100 行無いぐらいなので読んでみるといいです。使い方じゃなくて中身に言及している記事が増えると世界が面白くなる。

page 43-48

page 43-48

すみません見栄張りました。分割はカテゴリごとなので,そのカテゴリ内では JOIN 可能です。なので自分でクエリ投げ直す処理はそんなに発生しないですね。

page 49-54

page 49-54

スケールアップで対応できちゃったので,octopus まだ使ってません。でも今使うならコレかなぁと考えています。

MongoDB は試してみたいんですが,Mongo 脳になって綺麗な設計が出来るようになるまでにまた 3 アプリぐらいかかるんだろうな。

負荷テストと監視については YAPC::Asia 2010 での myfinder さんの発表が良かったです。myfinder's blog: YAPC::Asia 2010 でソーシャルアプリのシステム監視運用について Talk してきました

page 55-60

page 55-60

page 61-66

page 61-66

そういえば Rails3 から route が Rack に載ったので,sinatra アプリである Resque の管理画面も一緒に動かせるようになりましたね。

page 67-72

page 67-72

負荷対策をすればするほど GAE に近づいていっている気がしたので,なるほどあの制限は正しいなと思えるようになりました。 一度しっかり RDBMS で戦うと NoSQL や GAE を使うための意識改革が出来るんじゃないかと思います。

URL 設計書は確かに rake routes と中身は同じなんですが,チーム全員で URL を考えるときに 200 行を超える routes.rb だけだと見通しが悪いので,はじめは Excel でやっています。 設計が終わって一通り generate し終えたら routes.rb だけ管理で十分ですねー。

page 73-78

page 73-78

ちなみに,天井からぶら下がってるこのモニタのシステムは『グリゴリ』と言います。 旧約聖書偽典『エノク書』 (みんな大好きイーノックさん) に出る堕天使の一団。「見張る者」という意味です。

「ユーザーの動きに応じて、PDCAサイクルを異様なほどの超高速で回すのが、ソーシャルゲームの運営だ」 といった話も紹介しようと思ったんですが残り時間が少なかったのでカット。

page 79-83

page 79-83

いじょー

長々と失礼しました。また来年も発表できるよう頑張ります!!