2010年12月1日水曜日

大規模サービス技術入門


[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ

伊藤 直也、田中 慎司 著

技術評論社


はてなの伊藤さん(現在はグリーへ転職)と田中さんが書かれた大規模なWebシステムに関わる要素技術、システム構成、アプリケーションの作り方などを解説した本。

はてなで毎年夏に行われているインターンシップの講義を元にしたものということなので、順を追って非常に分かりやすい構成/内容になっている。まず、大規模とは何か、どのようなことが起こるのかから入り、OS/メモリ/ディスクなどインフラ話、続いてDBのスケールアウト、そしてアプリケーションを作る上での勘所と進んでいく。アプリケーションの部分では圧縮や全文検索エンジンを題材に課題もあって、なかなかおもしろい構成。全体的にはてなの実例を出していることも良い。

後ろ1/3程度は、サーバ/インフラの話がメインで、スケーラビリティ、冗長性、ハードの効率化、最近のシステムに必要な要素技術がまとめられている。

印象に残っているのが、アルゴリズムについての章で、理論と実践の両方が必要という部分だった。失礼ながら、はてなのような会社では実践第一主義みたいなところじゃないかと勝手に思っていたわけだが、本書にはアルゴリズム(古典的なものも含めて)を重要視している旨が書かれている。エンジニアとしての共通言語とまで言っている。もちろん、アルゴリズムを知っているからと言って、今かかえている問題に適用できるとは限らないし、適用できることを気が付かないかもしれない。しかし、知らなければ絶対に自分で考え出して作れる訳ではないので、やはりエンジニアの基本として知っていなければならないと思う。私の会社(部署)ではアルゴリズムについて軽視されているように思えるのがちょっと悲しい。

本書のような日本のトップのWebサービス企業のトップエンジニアが学生のために作成した講義を公開するのはなかなか良い試みだと思う。他の会社でも自社の強みを生かしてこのような本を出版することで、日本のITレベルの底上げができるのはと考える。

0 件のコメント: