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 は、写真編集サイトなのでデータそのもの寿命が短いのでストレージが落ちても無視している
PageSpeed の紹介。動画のみ公開されている。PageSpeed の紹介とデモ。
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
Flickr の Allspaw 氏と Hammond 氏の二人による Flickr での開発チームとオペレーションチームとの連携についての話。資料は、こちら。
- Puppet や System Imager などによるインフラの自動化を行っている
- バージョン管理システムを使っていて、どちらのチームの人もすべて中身をみることができる
- ブラウザ上で一発でビルドできるようになっている
- さらにそのままデプロイができるようになっている
- デプロイしたあとは、IRC に、誰が?いつ?何を?デプロイしたのか通知される
- Hudson を使っているっぽい
- 小さく何度もデプロイする
- 機能ごとに機能フラグをつけている
- ブランチなどは切っていない、トランクのみで開発している
- モニタリングには ganglia を使っていて、ページの上部にデプロイ日時を表示している
- IRC には、ビルドログ、デプロイログ、アラート、を通知していて、さらに検索可能なようにしている(これは既知の話)
- 文化として、お互いに尊敬しあうこと、No だけとは言わない、ものごとを隠さない、信頼する、失敗に対する健全な性格をもつ、避難を避ける、これは簡単なことでない
Scaling for the Expected and Unexpected
dealnews.com の Moon 氏による、サイトのキャパシティプランニングについての話。
- dealnews.com で、8月にいっきに PV が上がった事例を紹介
- キャッシュの基本について紹介(ページそのものだったり、クエリー結果だったり)
- Varnish や Squid によるプロキシサーバを導入する
- 読み込みに対しては、データをコピーする
- 書き込みに対しては、データストレージを分離させる
- どのくらいサイトの規模が大きくなるか、見積って決めること(実際とは違うことが多いが)
- Keynote や Gomez といったサービスを使う
- サードパーティ製のコンテンツには、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 という普通な構成
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 を使っている事例が聞けてよかったです。
Yahoo.com による貴重な Yahoo! のデータセンターというかトラックを紹介していた。資料が公開されていないので、公開が楽しみ。
NetEdge の Mashraqi 氏によるもっともよい I/O について。この講演がもっとも英語が聞き取れなかった。かなりつらかった。
Six Apart の Kasindorf 氏によるロードバランサーについて。おもに Perlbal の紹介だった。
夜の BOF に参加したがったが、言語の壁を勝手に感じて断念してしまった。
二日目以降は、iPhone で撮影する余裕がなかった。
Tags: velocityconf






