« 2009年05月 | メイン | 2009年10月 »

2009年07月 アーカイブ

2009年07月03日

Velocity 2009

BBC Radio Asian network内ので配信されているBhangra番組のクオリティの高さにびっくりしたりしていましたが、ぼちぼちVelocity2009の資料が公開されてきているので、上から順番に眺めてみた感想をつらつら書いていこうと思います。

10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
The Art of Capacity PlanningでおなじみFlickrのマネージャJohn Allspawさんらによる、運用チームと開発チームの関係を如何に円滑にマネージして行くかという話です。兎角運用は「オレのサーバは悪くない!おまえのヘボコードのせいだ!」となり一方開発は「オレのコードは悪くない!おまえのヘボサーバのせいだ!」となりがちですが、そこらへんの責任の投げ合いをどうやって回避していくかというような大変心に響く内容でした。開発の方も運用の方も一読をお勧めいたします。

2 Years Later, Loving and Hating the Cloud
一年半くらいオンラインレタッチつき写真カタログサービスをAmazonのCloud関係で運用してるPicnikの方のAmazonCloud感想です。正直あんまり印象が残らず…。「 S3に要らんデータを残しとくと無駄にお金がかかるけど、あんまりうまい削除の方法が思いつかんので放置中」という話くらいでしょうか。後はサーバリソースの使用状況に大きいスパイクがあるような運用ケースでは結構使い出があるというグラフなど。

Ajax Performance
JavaScript: The Good Partsという著書(この本は知らなかったので後で調べます。。)のあるDouglas CrockfordさんのAjaxでどうやって性能を出していくかという話です。ブラウザのヘッポコ加減やDOM操作の遅さに嫌気がさしている方は結構いらっしゃるかと思いますが、DOMにノードを追加する前にプロパティの設定は終わらせておくなど、「あるある」ネタが割と書いてあって良かったと思います。

Beyond Gzipping
HTTPストリームをGzipというかdeflate対応にしておくと転送量が減るのはすでにおなじみですが、なんかgzipで転送されないユーザーエージェントが結構あるなー(15%くらい)と思ったら、パーソナルファイアウォールとかのプロクシ機能を持つセキュリティソフトが、HTTP通信の内容をgzipされると中身を読めないので勝手にHTTPヘッダの「Accept-Encoding:gzip, deflate」を削除しくさってた、というかなり「まじでー」という話でした。

続きは後日!

2009年07月15日

Velocity 2009(2)

だいぶ間が空きましたがVelocity 2009の続きです。

Building OpenDNS Stats
OpenDNSというDNSを外部提供してる会社の人のログ捌きの話です。ログが一日140億件くらいあるそうです…。生ログは阿呆ということでとりあえずグラフ、というのと、ログを一個のテーブルに入れるのは問題外なのでネットワーク毎に別テーブルにしてる、オートインクリメントはロックがかかるのでタコだからSHA1でPKを作ってる、iowaitの80%はファイルのopen/closeなんでmysqld_safe に ulimit -n 600000をセットしとく、ログ集計処理は専用のサーバを3台用意してバッチ処理してる、集計クエリはLIMITつけないで発行してmemcachedに丸ごと入れておき、ページングは手元でやるなどなど。

Death of a Web Server: Crisis in Caching
あんまり中身がなかったので省略。珍しくWindows ServerベースのWebサーバの話だったのでなんか特有のスケーリングてくにっくとかあるのかと思ったらそういう話も特になく…。

Fixing Twitter: Improving the Performance and Scalability of the World's Most Popular Micro-blogging Site
えーまず2008年に752%(げえ)ユニークビジターが増えたという話から始まります。ていうかグラフの角度が怖いです。このくらいになるとちゃんと計算機科学を使わんと無理、とか消火活動するより予測を行って事前にCapacity Planningしておきましょう、とか。Webサーバのログを拾って503エラーとか500エラーの件数はグラフ作ってるそうです。これはいいですねー。サーバの設定変更はレビューを必須にしてて、履歴をレビューツールに記録してて、Subversionはchangelogに"reviewed"っていうのが入ってないとはじくようにしてる、等々。
プログラム側の方の話ではなんでも計測できるようにしておこう、とかメトリクスは推測じゃなくて決断のために使いましょう、あとキュー使おうなど。色々書いてあって忘れてきました。ActiveRecordのキャッシュライブラリCache Moneyというのが割と気になりました。
キャッシュの話。全体設定の変更とかでキャッシュが一気に整合性壊れるのとかどうすんべ、memecachedもたまにSEGVるなど。

2009年07月31日

インターンシップ受け入れ

7/2に手稲高校の2年生4人のインターンシップを受け入れました。

当日はProcessingで四角を塗りつぶすところから始めて、
プリミティブなゴルフゲーの弾を出すだけのようなプログラムを作ってもらいました。

何故ゴルフゲーかというと、簡単な物理の数値シミュレーションを体感してもらいたかったためです。
重力加速度と空気抵抗のパラメータを変えると反重力になるとか、すごい勢いで物が落ちていくとかを
色々試してもらいました。


ball.png
http://www.openprocessing.org/visuals/?visualID=3128

時間が足りなかったため、
↑の打ち出し機は実際には固定になってしまいました。

来年があったらハードウェアにしますかねー。
AVRとか。
(こっそり最近ICE買ったので。。)