はてな広報ブログ

株式会社はてなの広報ブログです。ウェブサイト「はてな」の話題やイベント情報、サービス開発の裏話など多彩な情報をお伝えします。

『Web開発者のための大規模サービス技術入門』が刊行されました

[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)
株式会社はてなの技術開発部門を支える二人の執行役員、CTOの伊藤直也(id:naoya)と田中慎司(id:stanaka)による著書『[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)』が本日刊行されました。
月間1500万人超のサイト訪問者と数十億アクセスを抱える大規模ウェブサイト「はてな」。2001年の創業時にたった1台のサーバーから始まり、2004年の東京移転時で50台、そして現在は600台強(ホスト数にして1000以上)という規模にまで拡大しています。増え続けるトラフィックに対していかに処理するか、はてなのエンジニアは日々試行錯誤を重ね技術研鑽を続けてきました。
その技術とノウハウを一冊の本にまとめたのが本書です。

本書は、大規模サービスを開発・運用する技術者のための入門書です。成長し続けるWebサービスが、簡単には処理できない規模のデータを抱え込んでしまったとき、それをどう料理するのが正しいのか。自分の書いたコードが、システムをダウンさせないためには何に気をつけたら良いのか。スケーラビリティを考慮してシステムを設計するには、どんなことを押さえておくべきか。それらを解説しています。
はてなでは、毎年夏に学生向けの就業体験を目的としたインターンシップを開催しています。このインターンシップでは学生に、はてなの実システムの開発に参加してもらっています(略)。
インターンシップ企画を通じて、はてなでは大規模サービス技術の教育方法が体系化されてきました。本書では、このインターンシップでの講義をベースにして、大規模サービス技術を解説することを試みています。
id:naoyaによる前書きより)

上記にもあるように、本書ははてなインターンシップの講義内容をもとに、より深く網羅的に大規模Webサービス開発と運用のノウハウを紹介しています。
以下、具体的な本書の構成です。より詳しくは技術評論社の書籍紹介ページをご覧ください。

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

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

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