Web開発者のための大規模サービス技術入門

例によって本を読んだので感想を書く。 頭が悪すぎて読書してもだいたい忘れるため、その揮発性に対する細やかな抵抗を意図している。

なんで読んだのか

同僚氏とラーメン凪 豚王で煮干しラーメンを食いながらインターンと大規模サービスの話をしていたところ、本書の存在を教えてもらった。社の本棚に置いてあったので、日曜日にスタバにこもって読んでみた。

ちなみに最近のスタバではRediscover Your Latteというキャンペーン中であり、2杯目のラテを200円(税別)で購入できる。当初は7/13までの期間限定だったらしいが、好評のため8/31まで延長されている。すごい。

感想

参考書、インターン、大規模サービス技術の3つの観点で感想などを書く。

参考書的な感想

株式会社はてなが開催する学生向けインターンシップにおける技術講義をベースとした解説本。内容は、OSの動作原理とか検索エンジンの仕組みとかインフラ〜ミドルウェアよりの技術を中心に、大規模サービスにおける勘所みたいなのも含む。インターン生向けなだけあって平易な言葉で解説されており、ぼくのようなポンコツにも読めるレベルにわかりやすかった(※3時間くらいで読めた)(※理解したとは言っていない)。

2010年初版発行、2009年インターンの内容なだけあり、紹介されている既存サービスやハードウェア・ネットワークの動向に関する解説は一部微妙に古い。とはいえ、OSやデータ構造、アルゴリズムなど、普遍性の高い内容が中心で、いまでも全然成立している。「サーバ監視ツールは内製している」といった記述があり、Mackerelの息吹を感じる。

インターン的な感想

実際のインターンにどれほど沿っているかは不明だが、思った以上に講義部分が手厚そうだった。「これやりたいから設計・実装よろ☆」ってかんじなのかと思っていた。インターンのプログラム的にはこの講義のあとに実際のサービス開発に入っていくみたいだが、例えば「どれくらいのスループットならOKか」とかって、日常的に開発している人や経験豊富な人からすれば感覚的に当たり前かもしれんけど、そうでない人にとってはなんのこっちゃわからんので、事前にその感覚的な部分をインプットしておくのはとてもよい、というか短期間でそれなりの成果を出すためには絶対必要っぽい。

公開されている教科書を見てみたら、大規模サービス開発以外にもいろいろあるらしく、内容は年々アップデートされており、いい。中の人による外部発表資料をみると、3月から準備をはじめて、エンジニアが10%の工数を使っているらしく、やはり相応のコストをかけている。すごい。

大規模サービス技術的な感想

お恥ずかしい話、全然わかってなかった内容も多々あり、普通に勉強になった。OSの挙動(キャッシュや仮想メモリ機構)、検索エンジンの内部構造とか。幼稚園からやりなおしたい。より実践よりな内容は別書サーバ/インフラを支える技術で補完されるっぽい。こっちも社の本棚にあった気がするのでそのうち読む。

具体的な数値とそれがサービスにとってどういう値なのかが実サービスに基づいて書かれており、イメージしやすかった。sarコマンド結果のキャプチャとかが載ってる。また、理論と実践のバランスについても失敗談を明かしつつ書かれている。

一方で、その具体性とのトレードオフだが、Perl/MySQLを前提とした解説が多く、自分の普段の環境と直接マッピングできない箇所もあり、そこはうまいこと読み替える必要があった。さらっとマルチマスタとか書いてて象さん派のぼくはグヌヌってなるなどした。

お知らせ

気になった方は本書を読むか、あるいははてなサマーインターン2017に応募しましょう。

developer.hatenastaff.com

よくみたら締め切りすぎていました。京都で過ごす夏はほんとうに最高だけど、殺人的に暑いので気をつけてください。