サイトの大小によらず、過去に集めたユーザーによるトラフィックがリニューアル後も継続して発生する前提において、Webシステムの基本的なアーキテクチャを変更してリニューアルする場合に、必ずやらなければならないたった一つのことそれは、性能試験である。負荷試験とも言う。こわいこわいだけ言ってないでこういう教訓をいかさないとなぁ
簡単なことだ。たとえばapache benchみたいな簡易ツールでも、トップページに集中アクセス浴びせたら平均何秒で帰ってくるか?なんてのは1分でできる。いろんなページに同時アクセスしたときにサーバのロードアベレージがどうなるか?なんてのも、たとえばそのへんのパソコン10台にapache入れてab.exeをいっせーのせで叩くといった原始的手法でもいい。少なくとも今回みたいな状況になることを事前に再現できただろう。そうすれば、リニューアルオープンを遅らせて既存システムを延命するなりしつつ落ち着いて対処できたはずだ。
もちろんECサイトは注文だとかなんだとかデータベース上でのトランザクション処理がからむ複雑な仕組みなのでApachebenchでの試験はあくまで簡易的なものにしかならない。変わりにapache jmeterなどを使うべきだろう。使い方はググればいくらでも出てくる。あるいは、性能試験専門の外注に依頼するべきだった。 もちろん性能試験用の環境も別に準備しておく必要がある。 (via. ヨドバシドットコムのリニューアル失敗から学ぶべきたったひとつのこと)
2008年10月アーカイブ
site (トヨタ自動車 | iQ PAINT CONTEST)
キャンペーンサイトなのにペイントツールの完成度が凄く高い。
Progressionフレームワーク使ってるっぽくてフルフラッシュサイトなのにアクセシビリティがあんまり損なわれてなくてフルフラッシュの良い部分が全面に出てる。
もう業界標準だな。このフレームワーク。すげーわ。
シェルはUNIXを使う上で、必ず使用される非常に身近なツールです。
毎日使用しているツールにも関わらず、具体的にどのような動作をしているのか知らない方も多いのではないのでしょうか。
シェルの使い方に関する情報はたくさんありますが、シェルの実装についての情報はほとんどないなと思ってシェルを題材に取り上げました。(via. ウノウラボ Unoh Labs: シェルの仕組み(前編))
HTTPアクセスをHTTPSに強制リダイレクト
RewriteEngine On
RewriteLog "logs/rewrite_log"
RewriteLogLevel 0
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/hogehoge/(.*)?$ https://%{HTTP_HOST}/hogehoge/$1 [L,R]
RewriteRule ^/~oyaji/himitsu/himitsu.cgi(.*)?$ https://%{HTTP_HOST}/~oyaji/himitsu/himitsu.cgi [L,R]
* RewriteEngine On
rewriteを有効にする。
* RewriteLog "logs/rewrite_log"
rewrite動作のログファイル指定。Windowsなら"logs/rewrite.log"の方が扱いやすい。
* RewriteLogLevel 0
rewriteのログレベル指定。「1」にするだけで膨大なログが出るので、デバッグが終わったら「0」にしないと大変なことになる。
* RewriteCond %{SERVER_PORT} !^443$
サーバ(apache)へのアクセスポートが443番では無かったら(即ち、httpsでのアクセスではなかったら)、以下のルールを適用するという意味。
* RewriteRule
必要な分を1行づつ記述していくが、基本は正規表現でマッチングをとり、一致したらHTTPSにrewriteさせる。
[1行目の例]
http://www.aconus.com/hogehoge/ というように、/hogehogeというディレクトリ配下にアクセスがあった場合は、そのままhttpsにredirectする例。
[2行目の例]
http://www.aconus.com/~oyaji/himitsu/himitsu.cgiというように、おやじのhimitsuディレクトリ内のhimitsu.cgiにアクセスしたときだけhttpsにredirectする例。himitsuディレクトリ内のほかのものは公開でhttpでアクセスさせるが、himitsu.cgiだけはパスワードアクセスにしてあるので、暗号化したい場合などに使用。
(via. HTTPでアクセスした時、自動的にHTTPSにrewriteする)
site (MUJI Global | Message)
無印良品らしく、凄くシンプル。読ませようという心意気。
Aerialは、通信にFlashを使い、JavaScriptとサーバープログラムとの間で双方向のRPC呼び出しを行う技術です。つまり、サーバー側からJavaScriptのメソッドを呼び出したり、逆にJavaScriptからサーバー側のプログラムを呼び出したりします。(via. Aerial(エアリアル) - Ajax/Cometの次を行く リアルタイム双方向RPC - 古橋貞之の日記)これすごいわーCometの実装もしてみたいけどこれ使ってみたいなー




