Webtech Walker

第一回 ライブドア テクニカルセミナーにいってきました

先週の金曜に開催されたライブドアテクニカルセミナーにいってきたので簡単に内容まとめました。

プラクティカル Cicindela

Cicindelaとは

  • ライブドアが開発したオープンソースのレコメンデーションエンジン
  • 複数の自由に組み合わせることで高いカスタマイズ性を実現
  • レコメンデーションエンジンで重要なことは
    • レスポンス
    • データの即時性

Cicindelaの高速化のしくみ

  • 入力データを一時テーブルに保存
  • バッチで中間集計テーブルへ
  • 一定のタイミングで実際使用するテーブルと中間集計テーブルを入れ替える
  • バッチでやれることはバッチで、というのが高速化の秘訣

実際の利用例

  • ライブドアクリップ

    • それぞれ異なるフィルタを用いて複数のレコメンドデータをつくる
    • それを後でマージするという手法を用いている
    • 最新一時間のデータ、通常のレコメンド、タグidを仮想ユーザーidに読み替えるデータなど
    • 一般的でないアイテムにおすすめが偏るように重みづけとかしてる
  • DLsite.com

    • 同人ダウンロード販売サイト
    • 男性向け商品を女性ユーザーにださないとか、一般ユーザーに成人向けをだせないなどの制約がある
    • レイティングがある
    • レコメンドデータ作成後に女性向けや成人むけなどの条件をフィルタリングしている
  • youbride

    • 結婚情報サービス
    • アクションがないユーザーを結びつけるという、ちょっと変わったレコメンデーションをしている
    • 同じ属性の同性が選んでいる異性と同じ属性の異性をおすすめするという手法

感想

  • かなり柔軟に色々なことができそうだという印象
  • 一回実際に使ってみよう
  • ソースも読もう
  • 集合値プログラミングも勉強しよう

インサイド livedoor Blog

2chまとめブログ無差別DOS攻撃のはなし

  • 2chまとめブログに反対する2ちゃんねらから一斉アクセスされたことがあった
  • 一斉に同じアクセスがあるとエラーを返すような防御壁はってたので助かった

mod_ldblog_mapper2

  • url to userpath変換モジュール
  • memcached/mainDBを参照した結果を環境変数にセットしてmod_rewrite等で処理する

静的ファイルキャッシュ

  • 新着記事、新着コメントプラグインなどのプラグインをいちいちキャッシュすると、なにか更新するたびに再構築するひつようがあるので分離
  • それらをmod_includeでSSIを使って読み込むことで再構築するデータを大幅削減
  • 再構築はじつはキャッシュファイルを削除してるだけ

新ブログ管理画面について

  • UIの文字コードをEUC-jpからUTF8にかえた
  • ブログ保存データも新規ユーザーからUTF8
  • URL変更した
  • マルチブログ対応
  • フロント側
    • jQuery+jQueryUI
    • swfupload

文字コードについて

  • 旧ブログはまだEUC、新規はUTF8なので大変
  • blog単位でcharsetを切り替える
  • 手動でやるのは大変
  • ORマッパとフレームワークの間に文字コード変換モジュールをかませて既存のコードをできるだけ変更しなくていいように

感想

  • ある程度どんな攻撃されるか予測して対策してるのはさすが
  • 意外とSSIとか使ってるんだな
  • 文字コード途中で変更とかホント思い切ったことするなー
  • キャッシュの話は参考になった

ライブドアのネットワークとトラフィックパターン

平日のトラフィックの特徴

  • 仕事かえりの20〜24時がピーク
  • 仕事前の朝にちょっとピークが(出社前にメールチェックするから)
  • 昼休みにちょっと増える(ご飯食べながらネットしてる)
  • 夜ご飯時はちょっと減る(夜ご飯のときはネットしない)

休日のトラフィックの特徴

  • 昼の12時くらいから増え始めて、そかから横ばい
  • 24~25時がピークでそこから徐々に減る

その他

  • P2Pのトラフィックががまじると上り/下りがほぼ同じになる
  • 帯域制限は「基本的に」かけてない

コンテンツダウンドーロ販売系のトラフィック

  • 平日はこれといってピークがない
  • 休日は午前中からトラフィックが増え始める
  • 朝からダウンロードしてるユーザーが多い?

livedoor blogのトラフィック

  • お昼にピーク
  • 12時過ぎてからの減少率が少ない(夜更かしする若者が多い?)

livedoor ねとらじ

  • お昼のピークがない(逆にさがってる)
  • 就業時間後もさがってる
  • ラジオつけぱなっしにしてるユーザーが多い?

googleの障害時(全サイトフィッシングサイトになったやつ)

  • サイトによってはPVさがったらしい
  • ライブドアはさがってない。RSSとかで読む人がが多いから?

年越し

  • 12/31日〜1/1日にかけての夜中のピークがない
  • 年明けのトラフィックがちょっと増えてた
  • 年越しは外にでかけて、あけおめエントリーを書くユーザーがいたから?

IPV6について

  • 実験的に運用中
  • IPV6対応サービス

    • 2ch IPv6板
    • fixdap
  • IPV6のトラフィック少なすぎ><みんな使って!

  • IPV6絶対くるよ!

感想

  • トラフィックからユーザーの動向を見るとおもろいー
  • あまり見る機会のないグラフやデータだったから見てるだけで面白かった
  • ユーザーの動向つかんで、どうサービスに生かすかというところの話も聞きたかった

配信の技術と法的問題

winny作成者の金子 勇氏による話

skeedcastとは

  • winny1とwinny2があって、

    • ファイル共有ソフトがwinny1
    • 情報共有ソフトがwinny2
  • winny2はもっと広い意味での情報共有。2chみたいな掲示板をP2Pで実現する

  • winny1にwinny2の要素をくわえたものがskeedcast

  • 管理可能性を重視した商用向けP2P

  • 分散サーバ型とP2P型のハイブリッド

skeedcastの特徴

  • winnnyは

    • pureP2P
    • 回線速度による緩やかな上下関係
  • skeedcastは

    • 固定ノードで通常配信
    • ユーザーノードを用いた再配信も可能
  • ユーザーのノードを中継することが可能

  • 最初はサーバー側のみで配信、トラフィックが増えてくると、ユーザーノード配信で負荷分散できる

  • セキュリティにはデジタル署名を使って対応

  • ホワイトリストフィルタリング

  • キャッシュのライフタイム管理

感想

  • 内部の仕組みなどは話が難しくてついていけないところも
  • ユーザーノードを使って負荷分散するというは、実現できたらホントすごい
  • とりあえずこの人が逮捕されたのはおかしい><

全体の感想

  • 知らないこと多くて色々勉強になった
  • もっとプログラムの話があるかと思ったけど、実際プログラムのコードは一行もでてこなかった
  • 懇親会で話した感じだと、サーバーエンジニアからRubyプログラマ、マーケティングの人とかもきてて、すごい幅広い客層だった
  • カヤックでもこういうセミナーやれたらいいなー
このエントリーをはてなブックマークに追加