明後日(7/7)「Web開発者のための大規模サービス技術入門」が発売されます

「Web開発者のための大規模サービス技術入門」をid:naoyaと共著で書きました。執筆の経緯については既に書かれていますので、そちらも参照してみてください。

「Web開発者のための大規模サービス技術入門」という本を書きました - naoyaのはてなダイアリー

この本は、はてなのインターンの講義内容を一冊にまとめたものです。はてなのインターンは、前半ではてなのエンジニア陣による講義でWeb技術全体を俯瞰し、後半で実際にコードを書きながらサービス開発に携わる、という構成になっています。本書は、その前半の講義を、さらに濃く凝縮した内容となっています。

インターンでの講義内容は、Perlの基本、シンプルなウェブサービスを作成するところから、はてな規模のサービスの構築・実装方法までを網羅しています。これらの技術は、アプリケーションエンジニアからインフラエンジニアまでWebサービスに関わる全てのエンジニアが知っておくべき技術だと考えており、本書を読むことで、はてな程度の規模のサービスを作るための基礎を一通り学ぶことができます。例え、自分が担当している領域がその中のほんの一部だとしても、自分の書いたコードがどのようなシステムの上で動いているか、自分が組んだシステム上でどのようなコードが動いているか、それらの基礎となる技術を理解しておくことは、サービス全体を質を向上させる上でとても大事なことです。

もちろん、はてなのインターンは現在進行形で進化しており、本書の内容のみに留まるわけではなく、Web技術の進化やサービスの成長にあわせて、新しい技術・ノウハウを取り込んでいます。今年のインターンもカリキュラムをさらに進化させて、HTML5など本書で扱っていない技術にも挑戦していただく予定です。今年も来月からインターンを開催する予定で、現在絶賛募集中(はてなサマーインターン2010 7/12(月) 正午12:00応募〆切)ですので、インターンに参加できそうな方は是非ご応募を、参加が難しそうな方は本書を手に取ってみてください。

最後に本書の目次を以下に抜粋しておきます。

第1回 大規模Webサービスの開発オリエンテーション―全体像を把握する
第2回 大規模データ処理入門 ―メモリとディスク,Webアプリケーションと負荷
第3回 OSのキャッシュと分散 ―大きなデータを効率良く扱うしくみ
第4回 DBのスケールアウト戦略 ―分散を考慮したMySQLの運用
第5回 大規模データ処理[実践]入門 ―アプリケーション開発の勘所
第6回 [課題]圧縮プログラミング ―データサイズ,I/O高速化との関係を意識する
第7回 アルゴリズムの実用化 ―身近な例で見る理論・研究の実践投入
第8回 [課題]はてなキーワードリンクの実装 ―応用への道筋を知る
第9回 全文検索技術に挑戦 ―大規模データ処理のノウハウ満載
第10回 [課題]全文検索エンジンの作成 ―基本部分,作り込み,速度と精度の追求
第11回 大規模データ処理を支えるサーバ/インフラ入門 ―Webサービスのバックエンド
第12回 スケーラビリティの確保に必要な考え方 ―規模の増大とシステムの拡張
第13回 冗長性の確保,システムの安定化 ―ほぼ100%の稼動率を実現するしくみ
第14回 効率向上作戦 ―ハードウェアのリソースの使用率を上げる
第15回 Webサービスとネットワーク ―ネットワークで見えてくるサービスの成長
特別編 いまどきのWebサービス構築に求められる実践技術 ―大規模サービスに対応するために

[Web開発者のための]大規模サービス技術入門 ―データ構造,メモリ,OS,DB,サーバ/インフラ:書籍案内|技術評論社