Muranaga's Golf

46歳でゴルフを始めて10数年。シニアゴルファーが上達をめざして苦労する日々をつづります

Building Scalable Web Sites

"Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications"というタイトルが目を引き、さらには "Building, Scaling, and Optimizing the Next Generation of Web Applications --- The Flickr Way" という副題に惹かれて購入。著者は写真共有サイト Flickr の技術者である。

Poorman's アプローチということで、PHP + MySQL を用いて、どのようにスケーラブルなアーキテクチャの Web アプリケーションを設計するのか、サイトへのアクセスや処理するデータセットが大きくなるにつれ、いかにシステム構成を拡張していくかといった手法が書かれている。セキュアなアプリケーションの開発、文字コードの扱いに始まり、分散しているサーバ間での通信のやりとり、性能ボトルネックの見つけ方、負荷分散も含めたスケーラブルなソフトウェア・アーキテクチャ、ログ・統計情報の取り方・監視方法、Web サービス API など、広範な項目を包括的にまとめている。

実用的な Web アプリケーションを構築する技術者にとって、押さえておくべき基本的な知識を確認するのによい本である。まずは浅く広く、知っておくべき技術項目を押さえておき、個々のノウハウ・技法については、さらに深く突っ込んでいく必要がある。

個人的には MySQL で複製を作り(read/write のマスターDB と、read 専用のスレーブDB)、扱うデータのボリュームが増えても拡張できるようにする方法に興味を持った。高価な商用データベースに頼らずとも、MySQLFlickr のような高アクセス・大規模のデータ処理を行う Web サイトを構築することができる。インターネット・サービスは小さく始めて、運営しながら徐々に大きくしていくもの。この本にあるように低コストでスケーラブルなアーキテクチャでシステムを設計開発する能力を持つことは、競争力を維持するためにも重要である。

複数の手法に通じていること、そして高信頼のミッション・クリティカルな処理が必要になる場合やそうでない場合など、サービスの用途や要求される性能に応じて、アプローチや手法を使い分けられることが大切である。

Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications

Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications