はてな広報ブログ

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

『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シリーズ)

はてなフォトライフに友達をフォローできる「お気に入り機能」搭載!もっとつながるウェブアルバムへ


今週、はてなのウェブアルバム「はてなフォトライフ」に、自分以外のユーザーをフォローできる「お気に入り機能」が搭載されました。
お気に入りユーザーの新着写真をまとめてチェックできる「お気に入り」機能を追加しました - はてなフォトライフ日記 - 機能変更、お知らせなど
これまで個々のアルバムとしての機能が中心だったフォトライフですが、「お気に入り機能」によって、「人とつながる」ソーシャルな面が打ち出され、新たな楽しみ方が体験できそうです。新機能の特徴やサービスの今後について、はてなCTO兼サービスディレクターのid:naoyaに話を聞きました。

人の存在が感じられるフォトライフへ


友達や家族など、親しい相手のフォトライフページにアクセスすると、ユーザーアイコンが表示されたコーナーが右上に新設されています。ここにできた「お気に入りに追加」ボタンをクリックすると、自分のお気に入りページにその人の写真が加わって、いつでもアクセスすれば好きな人たちの新着写真をチェックすることができます。
今回のお気に入り機能の追加について、現在、はてなフォトライフやはてなダイアリーなどの開発を統括するid:naoyaは、
「実は、個人的にもかなり以前からフォトライフにこの機能が欲しいと思っていました。はてなブックマークやTwitter、ハイクなどのミニブログでは自分の気に入った人を登録してその投稿をチェックするのは、ソーシャルアプリの利用スタイルとして当然あるべき機能。ですので、フォトライフに友達や気に入ったユーザーの写真をチェックできる機能がないことに違和感を感じていたくらいです。今回、やっと実装することができ、作り手としても嬉しく思っています」
と、機能の実現について語っています。
使い方としては、前述のように自分以外のユーザーのフォトライフページの右上にできたプロフィール欄の追加ボタンを押す、あるいは個別の写真ページ左下にできた追加リンクを押すことで簡単にお気に入りに登録することができます。後は、自分のお気に入りページにアクセスするだけで、フォローしている人の新着写真を常にチェックできます。

例:”naoyaのお気に入り”
「プロフィール欄ができたことで、そっけなかった写真ページに人の存在が感じられるようになりました。また、その人がどんな人をお気に入りに入れているのか、並んでいるアイコンから趣味や交流関係を垣間みることもできますし、使っているカメラなどのアクティビティ(活動)情報も知ることができます」
少し気になったのが、「一度に多く写真をアップしたらお気に入りに入れてくれた人に迷惑がかからないかな?」ということ。
「写真好きの人は同時に何十枚もアップすることもありますよね。そういうケースがあることは、あらかじめテスト段階で把握していて、一度にアップされた写真の中から最新の5枚だけを表示する仕様になっています」
なるほど、その人の写真をもっと見たい場合は、個別ページへアクセスすれば良いわけですね。実際、お気に入り機能ができてからは、お気に入りページを起点とした個別ページへのアクセス数が増えたらしく、新たな利用スタイルが広がりそうです。
「これまでは、ブログに写真掲載するためのツール的な役割、あるいは自分のためのアルバム的機能が中心だったフォトライフですが、今回のお気に入り機能のリリースによって、今後、色んな人とつながる楽しみを体験していただくきっかけになれば。自分自身、過去にスターを付けた写真や人気写真一覧で気に入った写真のユーザーをお気に入りに入れ直して、閲覧を楽しむようになりました。ぜひ使ってみてください」
なお、iPhoneからも閲覧は可能ですが、今後、最適化を図っていくとのこと。また、携帯版は未対応ですが、できるだけ早く対応したいということです。

ダイアリー、フォトライフ、人力検索などのサービスをもっと使いやすく


2005年2月にはてなブックマークが公開されてからは、CTO兼はてなブックマークディレクターとして活動してきたid:naoyaですが、昨年秋からはid:secondlifeにディレクター業を引き継ぎ、現在はダイアリー、フォトライフ、人力検索、アンテナなど、2004年以前からあるサービスのディレクターを兼任しています。
「数多くの新サービスを世に送り出してきたはてなですが、ここ1、2年の大きな流れとして、新サービス開発にチャレンジしながらも、今ある主要なサービスにしっかりと注力し、使ってくださっている方に満足していただきながらサービスを拡大していこうという方針になり、僕がダイアリーやフォトライフ、人力検索、アンテナなどのサービスを統括することになりました。
おかげさまで社内には若手エンジニアが育ってきており、はてなブックマークのディレクターも、成長株のid:secondlifeに任せることができましたので、あらためてダイアリーやフォトライフといった古くからあるサービスのコンセプトを再定義して、長く使ってくださっている方にもより使いやすく、初めて使う人にも受け入れてもらえるような高い品質のサービスに改善していく取り組みを進めているところです」(id:naoya
今回のはてなフォトライフのお気に入り機能も、そんな取り組みの一環としてのリリースということになりますが、今後の大きな予定としては、
「サービスの裏側で不具合修正をしたりアプリケーションの速度を向上させたりといった、表に告知はしていない地道な改善は継続的におこなっています。今回に引き続いて、皆さんに楽しさを感じていただけるような機能を今後も出していければ、と思います。

また、先日リリースした『はてなフォトライフ for Andoroid」のような全く新しい機能についても、開発していきたいと思っています」
古くからあるはてなのサービスも、どんどん進化していきます。どうぞご期待ください!

はてなエンジニア3名が監訳した『実践ハイパフォーマンスMySQL第2版』が出版されました

実践ハイパフォーマンスMySQL 第2版
12月10日、はてなのエンジニア3名(id:naoya,id:stanaka,id:hideoki)が監訳を担当した「実践ハイパフォーマンスMySQL 第2版」が出版されました。
MySQLをアプリケーション開発に使うエンジニアが必要とする知識や技術手法を網羅し、様々な実践的な内容を盛り込んだ本書。2004年の初版から約5年の間のMySQLをめぐる変化をくまなく追って大幅な改訂を加えたものです。
本書の魅力について、監訳者を代表してid:naoyaに話を聞きました。

はてなのエンジニア3名が監訳を担当した経緯は?

「もともと『続・初めてのPerl 改訂版』や『詳解 MySQL』の監訳を同じメンバーで務めていたこともあり、今回も縁があって担当させていただきました。はてなは MySQL のヘビーユースな企業でもあり、その運用やノウハウに精通したエンジニアを抱えている、というのがもちろん大前提としてあります」

入門書にとどまらないMySQLの実践書ということで、その名の通り具体的な実践例やアドバイスが満載であるようですが、どんな人に読んでもらいたいですか?

「MySQLを実際に運用しはじめると、その中で様々な不安を抱くことになると思います。自分の設計で本当に十分なパフォーマンスが出るのか、仮にサーバーが壊れてしまった場合でも大丈夫なのか。負荷分散はどうしたらいいのか。そんな運用上の悩みに対する指針を体系的に指南する書籍です。MySQLへの理解を深め、自信をもってデータベースを運用していきたい、と思う方々におすすめです。
また、初版から大幅な改訂が行われています。特にInnoDBを前提とした記述は、初版にはなかった大きなアップデートです。初版をひととおり読んだ方も、ここ数年のMySQLの更新をキャッチアップするためにも是非ご一読ください」

本書を手にした人は、どういう風に活用すれば良いですか?

「基本的には各章が独立した内容になっていますので、知識に不安があるパートを拾い読みしていくと良いでしょう。まとまった時間が取れるなら、最初から通読してみてもいいかもしれません。
こういうときはこうしろ、というHow To本ではなく、体系的に知識を整理してくれる本なので、その視点でMySQLスキルの構造化を図るつもりで読んでいくと良いでしょう」

id:naoyaのブログでは、より技術的な視点から紹介されていますので、ご覧ください。

実践ハイパフォーマンスMySQL 第2版

実践ハイパフォーマンスMySQL 第2版

  • 作者: Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz,Derek J. Balling,伊藤直也(監訳),田中慎司(監訳),吉川英興(監訳),株式会社クイープ
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/12/14
  • メディア: 大型本
  • 購入: 17人 クリック: 373回
  • この商品を含むブログ (45件) を見る


(近藤令子 id:reikon / 取材のお申し込みは hatenapr@hatena.ne.jp まで)