スケーラブルWebサイト

このエントリーをはてなブックマークに追加
LINEで送る
[`evernote` not found]
Pocket

スケーラブルWebサイト スケーラブルWebサイト
Cal Henderson 武舎 広幸 福地 太郎

オライリー・ジャパン 2006-12-26
売り上げランキング : 19746
おすすめ平均

Amazonで詳しく見る by G-Tools

今や人気ウェブサイトは一日に何百万ページビューのトラフィックををさばいているところはざらにあります。

しかし、これらのサイトも最初は小さい規模でやっていたはずです。

その小さい規模から大きくしていくというのはとても大変な仕事です。

この本はそんなどこのサイトでも苦労していることについてのノウハウを惜しげもなく解説しています。

作者はFlickrという人気のある写真投稿サイトを運営しているエンジニアです。

日々巨大なトラフィックが来るサイトを運営しているだけにこの本にはすばらしい洞察がいっぱいつまっています。

この本で印象に残ったポイントはこんな感じです。

1 ウェブサイトは階層構造で構築するべし

 ウェブアプリケーションは様々な部分から構成されます。

大きく分けるとHTMLを表示するインターフェースの部分、データ処理を行うロジック部分、DBとやりとりするストレージ部分があります。また、それぞれの中身も色んなモジュールで構成されています。

そしてそれらを階層化してお互いやりとりするインターフェースを決めておくと変化に強い柔軟性のあるシステムが実現できます。

最近では色んなフレームワークが出てきてこの辺のあたりをやってくれますが、作るものによっては自分でアーキテクチャーを考えて設計していかないといけないでしょう。

またハードウェアの構成でも同じでウェブサーバー、キャッシュサーバー、DBサーバーなどを階層的に構築して行く必要があります。

2 入力は寛容に出力は厳密に

 インターネットには様々なデータが流れています。

RFCでフォーマットが決まっていてもとんでもない形式でデータを送ってくるところがあります。

携帯電話会社からのものが多いようですが、Flickrのアプリのソースのコメントには携帯会社に対する罵詈雑言が書かれているようです。(笑)

しかし、そのようなデータもちゃんと処理するようにプログラムを書くべきだと作者は言います。

できるだけ入力データは寛容に受け付けて多くのユーザーが使えるようにするべきなんでしょうね。

また自分が出力するデータはちゃんと規格に則った形にすべきです。

やはりプログラマーはちゃんとRFCなどの規約書を読んでコーディングしないとだめですね。

3 トレードオフを考えて最適化もほどほどに

 エンジニアは技術的な興味からなんでも最適化しようとしますが、その価値があるか考えてから行うべきでしょう。

例えばDBアクセスを速くするのに2ヶ月エンジニアを拘束するのならハードウェアのリプレースでもっと安くできないかと考えたほうがいいということですね。

4 ユーザーは英語圏の人だけではない

 まるまる一章をUnicodeの説明に当てている点がとても好感が持てました。

どの言語を使ってもちゃんと表示されるサイトにするためには色々考えるべきことがあります。

例えば文字コードの問題です。

UTF-8を使えばほぼあらゆる言語を扱うことができますが、日本語だとShift-JISのようなローカルなコードに対しても考慮する必要があります。

FlickrではそれらのコードをUTF-8に変換して処理しているようです。

ウェブページ自体がUTF-8なのでウェブ経由では問題ないようですが、メールやWeb API経由ではどのようなコードで送られてくるかわかりません。

なのでローカライゼーションが重要になります。

Flickrのように最初から世界をターゲットにサイトを運営するというポリシーは見習うべきものがありますね。

 この本ではPHPやApache,MySQLなどのオープンソースソフトウェアを中心に解説しています。

通常大きなウェブサイトだとBIG IP,Oracle,WebLogic Javaといった組み合わせが多いでしょう。

しかし、オープンソースでも十分大きなサイトを運営できることをこの本は証明しています。

ほとんどの日本のSIerはそういったプロダクトを機械的に組み合わせる提案しかしませんからね。

これからはSIerでもこのレベルのスキルが必要になってくるかもしれません。

 この本で紹介されたハイパフォーマンスMySQLとApacheセキュリティというのもウェブサイト構築には役に立ちそうです。

しかし、オライリーの本てレベルが高いですね。

実践ハイパフォーマンスMySQL 実践ハイパフォーマンスMySQL
ジェレミ・D. ザウドニ デレク・J. ベリング Jeremy D. Zawodny

オライリージャパン 2004-10
売り上げランキング : 119941
おすすめ平均

Amazonで詳しく見る by G-Tools

Apacheセキュリティ Apacheセキュリティ
アイヴァン リスティク Ivan Ristic クイープ

オライリージャパン 2005-10
売り上げランキング : 92121
おすすめ平均

Amazonで詳しく見る by G-Tools

このエントリーをはてなブックマークに追加
LINEで送る
[`evernote` not found]
Pocket

コメントを残す