復興ログ

未来の被災地にいるアナタと数十年後のキミたちへ。すべての記録を残します。

オーマ×クックパッド合同勉強会に行ってきました

オーマ×クックパッド合同勉強会〜ここだけの話しちゃいます〜に行ってきました。
サブタイトルが「ここだけの話しちゃいます」だけにどこまで書いていいものか ><

これ公開しちゃだめだよって、ことがあったらFacebookか@
hebita164@gmail.com
までご連絡ください!
(確認してから公開しろよって話ですが・・・)

勉強会概要

クックパッドとあの人検索SPYSEEのオーマが合同で勉強会を開催します。
両社のものづくりについて、サービスを開発・提供していく上で工夫している
事例をご紹介します。

About SPYSEE

研究者同士が仲良くなる。

ビジョンとは
人が人を好きになる それを 最先端の技術で支えていきたい

3つの方向性
  1. 人がもっと人を知れる - SPYSEE
  2. 好きな人を応援する
  3. 運命の出会いの確率を上げる

それぞれをサービスにする↑

好きな人を応援する
クラウドファンディング
ビジネス的なアイディアを持っている人を応援
readyfor.jpをやる
たけしとひとしで利用。認めた人にお金を与える番組?

パラグアイの巨大蜘蛛の巣採集プロジェクト

運命の出会いの確率を上げる
まだ、企画段階。。。

クックパッドとインフラとバレンタインと

クックパッドの概要とバレンタイン
クックパッド、もばれぴ、iPhoneアプリ

トラフィック

月に10億PV 日本で65位 世界のRoRで9位

お昼がちょっと盛り上がって、夕食時にぐーーんと跳ね上がる。
ピーク1,500[req/s]

年間トラフィック
夏にトラフィックが伸びる→そろそろ料理をしだすか的な?

2月が最大のトラフィック
バレンタインデーが最も伸びる
次の年には1.5倍で増える

次のバレンタインは5,000[req/s]でやってくる

ユーザー視点からのご意見ボックス
ユーザーからインフラエンジニアにご意見がある。

インフラチームが目指す平均レスポンスタイム200[msec]

  • Caching
  • KVS
  • rendering cache
  • Outsourcing
  • Watching
  • Capacity

監視は、ターミナルでみるのがメインのよう

プロダクションの全種のサーバを計測
200[msec]レスポンスを出せるのかどうか

3倍ルール
突発的なリクエストより3倍に耐えられるようにつくる

データセンター
200台
実サーバー、仮想サーバーが同居している
仮想サーバーはスペックを要求しない、プロダクションに影響しない場合に使用

インフラチーム
5人
監視、運用メイン2人
新技術検証メイン3人

監視ツールはrubyawkシェルスクリプトで自作

グループウェア
内製グループウェアを使用

redmineを使っている
Gitもつかっている
サーバの設定ファイル周りもバージョン管理

Skype
サービス管理robotが発言
IRCは使っていない

サーバ管理ツール
Railsで自作
サーバ、エンクロージャ、ラックの情報
監視状態
APIデプロイ、ログイン

SPYSEEの【つながり】マイニング手法

研究者間の人間関係をウェブから抽出
画像、プロフィール、つながり

全て自動で作られている

ノード数85万

つながりのマイニング方法について
ベースとなった考え方
たくさんのウェブページで名前が一緒に出てくる人はつながりがあるはずだ

ヒット件数のクローリング
80万人全員のヒット件数をクローリングすると・・・
3200億回クロールする必要がある。。絶望的。

抽出方法
1.ウェブページを数ページ取得
2.ページ内から名前表現を抽出
3.これらを候補にしてヒット件数取得

更に精度をあげるために
ページ内を詳しく見ると、氏名が共起している

ページを読んで、つながりの強弱を数値化する指標を開発している。

スパイシーの要素技術

  1. 基本モジュール
  2. 検索エンジン対応
  3. 関係抽出の発展
  4. エンティティ抽出の発展
  5. Blog
  6. ソーシャルサービスマイニング
  7. wikipediaマイニング
  8. ネットワークへの統合・学習
  9. 革新的な機械学習技法

まとめ
たくさんのウェブページで名前が一緒に出てくる人はつながりがあるはずだ
一人当たり500ページぐらいあれば、グラフが作れる

高速Webサイト入門

パフォーマンスの責任者
レシピが出終わるまでの長さのこと
ユーザがレシピを見るのに何秒かかったか。

クックパッド的には
料理を楽しくするためにはページ表示速度が重要だから

レシピを次々みる速さが早ければ、料理が楽しくなる

ブラウザのレンダリングに時間がかかる
200msecを守る

平均的には200msec以下でクライアントまで届ける

クリックしてからページのレンダリングが終わるまでに1.5秒にしたい。
まだまだ2.1sec
1.5secぐらいがユーザが早いと感じる時間

推測するな計測せよ
ボトルネックを見つける
より良い改善にはより良い計測が必要

New Relicというツール
ASPのサービス
サーバ側で仕込んで時間を測れる

Railsアプリのより詳細なプロファイリング

YSlow

  1. リクエスト数を減らす
  2. 転送量を減らす
  3. DOMを最適化する

AKAMAIを使っている
Contents Delivery Network

AKAMAIすごい
SLA 100%
全世界の人口の80%は1hopでエッジサーバにアクセス出来るらしい

まとめ

  1. 指標を持つこと 200msec
  2. 推測するな計測せよ
  3. 状況の変化に対応する

SPYSEEの新検索機能の裏側

検索のタイプ

一般的な検索
文章

エンティティ検索
人物
モノ

仕組み
一般的な検索エンジンとほぼ同じ

何を計算しているか
クエリー q
期待する結果e

p(e|q)

で表せる。

人物eがどれくらい「有名」か
基本はページランクの計算

難しかったです.....

まとめ

f:id:hebita164:20101217024745j:image:w150:right
クックパッドさんでの勉強会は2回目の参加でした!今回も、美味しい料理を食べることができました!お腹いっぱいになりましたー!ありがとうございます!料理の名前を覚えていないよ〜。。次回は勉強会の参加受付のページに料理の名前も書いていただけると嬉しいかもしれません!

id:amachang2日ぶりにお会い出来ました!なんという、追っかけ・・・。いや、偶然です!あまちゃんからは「(発表)どうでした?」と気にかけてくれて、ドキドキして発表をされていたようです。





おもしろいお話をしていただきありがとうございました!
クラウドファンディングという言葉は初めて知ったので勉強になったし、人が人を好きになる それを 最先端の技術で支えていきたいというSPYSEEのビジョンもとても魅力的なものでした。
SPYSEEの検索では、まだ僕の名前では出てきません。。500ページくらいウェブ上にあれば、関係性の抽出が出来るらしいので、頑張ります><

クックパッドさんは、かなり具体的な数値をアレコレ教えてくれたのですが。一番おもしろかったのは。
トラフィックがバレンタインデーに向けて上昇していくという点でした。そのペースで1.5倍でトラフィックが増えていくということは、クックパッドの存在をバレンタインデーで知って、更に使い続けるのでしょうねー。夕方にかけて、トラフィックが上昇していくのもとても興味深かったです。
ぜひ、5,000[req/sec]を1.5[sec]以下のレスポンスで返してください!!!
料理を楽しくするためにはページ表示速度が重要としたサービス作りには本当に頭が下がります。モノづくりに対する意識の違いを勉強できました。クックパッドさんにアクセスしてみてください。たしかにレンダリングが早いですよね!これなら「さ〜料理をしよう」と思ったユーザーは快適にサービスを使いながらレシピ検索ができますね。

クックパッド的にはチームの人数は2〜3人がベストらしいです。意見を出し合うにはちょうどいい人数なのだそうです。一点集中したモノづくりは見習う必要があると感じました。「ユーザー、ユーザー、ユーザー」

また、勉強会があったら参加したいです。美味しいお料理をありがとうございました!