Browse Day: June 26, 2009

Velocity 2009 Day 2

Surviving the 2008 Elections
オープニングのあとの最初の講演。2008 年を通じて生き残った技術を紹介。資料は、こちら

  • MySQL 3.23 系を使っているところが多い、停止してまで移行できるよい理由がない
  • Proxy サーバとして、Apache 1.3 が使われはじめた
  • Memcached は 2006 年から使われて Facebook をはじめ 2008 年でさらに使われるようになった
  • Porxy サーバとしての Lighttpd、mod_magnet というリクエストをハンドリングモジュールにより使われるようになった(mod_magnet にMemcached のサポートが追加された)
  • ハードウェアの進化、10 dual Xeon から 6 quad Xeons まで進化した(6コア使ってみたい…)
  • NFS root がけっこう使われるとのこと
  • 少ないコストで、パフォーマンスをよくしている
  • 広告と地図の表示は遅いとのこと

Keynote – After Click

Facebook の   Jonathan 氏によるかなり貴重なプレゼン。資料は公開されていないが、動画が公開されている。ものすごい数字に鳥肌がたった。

  • 2004 年から 2008 年までの Facebook のおもな機能(NewsFeed など)を紹介
  • Facebook には、現在 2 億人のユーザがいる
  • オバマ大統領の演説時の CNN と共同で行った LiveFeed を紹介(オバマ大統領も Facebook に登録している)
  • Facebook の開発チームについて紹介、Facebook では開発、QA、テスト、というチームにわかれていなくてエンジニアが全部を担当している(Google と似ていると思った)、ただし機能ごと(アプリチームなど)がいるため、ときにはまとまって作業しているとのこと
  • Like というシンプルな機能を紹介、Like はユーザの News Feed に気にいったということを示すという単純なもの、この機能は初日に 4.1 百万、最初の週で 16.3 百万 、最初の月で39.6 百万、のユーザに使用されたとのこと、バックエンドは Memcached になっている
  • 先日リリースされた Username allocation (ユーザごとに独自の URL を設定できる機能)について紹介。この機能は 3 分で 20 万人、15 分で 50 万人、1時間で 1 百万のユーザが使った。この機能は、ものすごくロードテストされていて RRDtools で負荷状態などが数多く紹介されていた。
  • The only place success comes before work is the dictionary. で締めくくった

動画が公開されているので、もう一度チェックしてみようと思います。

The User and Business Impact of Server Delays, Additional Bytes, and HTTP Chunking in Web Search

Google によるサーバの遅延によりユーザとビジネスがうける影響について紹介。資料は、こちら。Google の Brutlag 氏は、Microsoft にいた経歴をもっている。

  • 実際にあったサーバの遅延による影響を紹介した、例えば 500ms 遅延が発生すると 1 ユーザあたり 1.2% の収入、1.0 のクリックが減ってしまうとのこと
  • ユーザがページを表示するまでのロード時間の中で、header タグの前後、広告を表示した後、のそれぞれのタイミングでわざと遅延を発生させて、任意のユーザで実験してみたところ、一番影響があったので header タグを表示した後のときのとこと
  • プログレッシブレンダリング(HTTP 1.1 のチャンク・エンコードを使って送信する)で実験してみたところ 4-18% 高速になってクリック率が 0.7% 上がった

これほど大きな影響があることは、本当に驚きました。

‘Next Web’ Challenges: It’s Still All About The End User Experience
keynote の新製品についての紹介。

Fixing Twitter: Improving the Performance and Scalability of the World’s Most Popular Micro-blogging Site
もっとも楽しみだった Twitter の Adams 氏の講演。Twitter について。成長スピードがすごいすぎて鳥肌がたってしまった。資料は、こちら

  • 2008 年は、752% 成長した、2009 年も成長中で 2008 年のグラフが分からなくなっている
  • モニタリングは、Flickr と同じで ganglia で多少カスタムしている(スライドに twitter の ganglia スクリーンショットが掲載されているが普通)
  • 死活監視は、質問ででたが Nagios でやっている
  • ひとことのプライマリキーが unsigned int(32bit) を超えた
  • Puppet や Chef などは、使ってから一ヶ月くらいたったばかり
  • Reviewboard として SVN pre-commit フックでコミットログに “reviewed” が含まれていないとき通知している
  • コミット内容は、メールで通知
  • Campfire を使っている
  • Apache と Mongrel の間に Varish を挟んでいる
  • Mongrel と MySQL の間に Memcached を挟んでいる
  • CPU を AMD から Xeon に変更したころで 30% 削減できた
  • Rails から Memcached を使っているが、そのライブラリを Native C gem + libmemcached に切替えたころで 50% ロードアベレージが減った
  • メッセージキューには、RabbitMQ を使っていたが重かったので、Scala で書かれた Kestrel を使っている
  • MySQL まわりでは、時間のかかっているクエリーを kill している(!)
  • status.twitter.com は、Tumblr でホスティングされている(へぇー)

2 Years Later, Loving and Hating the Cloud

Picnik.com の Huff 氏による Picnik.com は AWS を2年間使ってきた経験でよかったこと悪かったことを紹介。資料は、こちら

  • 柔軟性であることは、よかったことの一つ
  • Picnik.com は、写真編集サイトなのでデータそのもの寿命が短いのでストレージが落ちても無視している

Page Speed

PageSpeed の紹介。動画のみ公開されている。PageSpeed の紹介とデモ。

10+ Deploys Per Day: Dev and Ops Cooperation at Flickr

Flickr の Allspaw 氏と Hammond 氏の二人による Flickr での開発チームとオペレーションチームとの連携についての話。資料は、こちら

  • PuppetSystem Imager などによるインフラの自動化を行っている
  • バージョン管理システムを使っていて、どちらのチームの人もすべて中身をみることができる
  • ブラウザ上で一発でビルドできるようになっている
  • さらにそのままデプロイができるようになっている
  • デプロイしたあとは、IRC に、誰が?いつ?何を?デプロイしたのか通知される
  • Hudson を使っているっぽい
  • 小さく何度もデプロイする
  • 機能ごとに機能フラグをつけている
  • ブランチなどは切っていない、トランクのみで開発している
  • モニタリングには ganglia を使っていて、ページの上部にデプロイ日時を表示している
  • IRC には、ビルドログ、デプロイログ、アラート、を通知していて、さらに検索可能なようにしている(これは既知の話)
  • 文化として、お互いに尊敬しあうこと、No だけとは言わない、ものごとを隠さない、信頼する、失敗に対する健全な性格をもつ、避難を避ける、これは簡単なことでない

Scaling for the Expected and Unexpected
dealnews.com の Moon 氏による、サイトのキャパシティプランニングについての話。

  • dealnews.com で、8月にいっきに PV が上がった事例を紹介
  • キャッシュの基本について紹介(ページそのものだったり、クエリー結果だったり)
  • Varnish や Squid によるプロキシサーバを導入する
  • 読み込みに対しては、データをコピーする
  • 書き込みに対しては、データストレージを分離させる
  • どのくらいサイトの規模が大きくなるか、見積って決めること(実際とは違うことが多いが)
  • KeynoteGomez といったサービスを使う
  • サードパーティ製のコンテンツには、IFrame を使う

このセッションは、特段新しい情報を得ることができませんでした。

A Preview of MySpace’s Open-sourced Performance Tracker

MySpace.com のオープンソースのパフォーマンストラッカーの msfast というツールの紹介。

msfast は、IE 6 – 8 のプラグインで、おもに次の機能があるという紹介とそのデモを行った。ソーソコードは、Google Code で公開されています。

  • ページを表示したときのブラウザがページを描画するために CPU と メモリの使用量を表示
  • ページの表示のされかたをビジュアルに表示
  • 接続スピードが異なった場合のページの表示のされかたを見れる

Getting to Second Base With Your CDN

第二の CDN を導入するときの話。CDN を導入するときには、イメージや CSS などのスタティックコンテンツなものとドメインをわける方法、ページの一部を CDN に持たせる方法を紹介していた。

Migrating www.aol.com from a Proprietary Web Platform to Open Source

aol.com が行った旧システムからオープンソースを使ったシステムへ移行したときの事例を紹介。資料は、こちら

  • 新システムでは、Java、MySQL、talend、Apache、Tomcat、を採用した(アーキテクチャーは、下の図、資料から転載)
  • NetScaler というのは、このスイッチらしい
  • Front は Apache、Backend は Tomcat という普通な構成

Building OpenDNS Stats

OpenDNS の負荷対策などについて紹介。

  • OpenDNS は、1日 14 億回の DNS クエリーをさばいている
  • DB は、auto_increment はテーブルロックがかかるので、domain を SHA1 した値をプライマリキーとしている
  • 28GB の Memcached があるが、32 ビットと 64 ビットの両方が存在している
  • mysqld_safe に ulimit -n 600000 を設定している
  • MyISAM を使っている
  • MySQL 5.0.77-Percona を使っている(使っているところを始めて知った!) 12 台のハードディスクで、16GB メモリ table_cache=300000 を指定している(たぶん、1 DNS ごとに 1 テーブルだからだと思う)
  • OpenDNS は、Palo Alto にある

Percona MySQL を使っている事例が聞けてよかったです。

Machines or MegaWatts

Yahoo.com による貴重な Yahoo! のデータセンターというかトラックを紹介していた。資料が公開されていないので、公開が楽しみ。

Best I/O is No I/O

NetEdge の Mashraqi 氏によるもっともよい I/O について。この講演がもっとも英語が聞き取れなかった。かなりつらかった。

Load Balancing Roundup

Six Apart の Kasindorf 氏によるロードバランサーについて。おもに Perlbal の紹介だった。

夜の BOF に参加したがったが、言語の壁を勝手に感じて断念してしまった。

二日目以降は、iPhone で撮影する余裕がなかった。