Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)

Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)

Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)

読み終えた。
Googleの使っている各種技術を外の人が公開されている資料から分析した結果を解説している。
作者の人は技術的バックグラウンドがしっかりした人だけど、内容はかなり平易な表現で書かれているので文系の人でも十分理解できると思う。コード類はサンプル関連の一部で取り上げられるぐらいで、どれも補助的なもの。
コンピュータサイエンスを専門としない理系の学部生向けの講義に丁度よいぐらいの内容だと思った。分散コンピューティングの学術的視点からすると最先端というわけではないけど、いまどきの学生にとっても大変身近なGoogleの仕組みについての内容だし、分散コンピューティングってこうなっているのかという雰囲気は掴めるのではないかと思う。
コンピュータサイエンスを専攻している学部生ぐらいだったら、挙げられている要素技術を実装してみましょうという感じになるのかな。
個人的にも非常にそそられる内容だったので、手元のLinux boxにHadoopを入れて色々といじってみているところ。
要素技術を見ていて思うのは、Googleというのは決して魔法を使っているわけでも無くてそこに有る技術を適切に組み合わせて出来ているのだという事。GFSにしても一般的な分散ファイルシステムと比べるとかなり制限の強いもののようだし、生で使うには不便だろう。そこで、その上で動くデータベースであるBigTableがあったり、ロックや小さいファイルを扱うChubbyがあったり。それらを組み合わせることで、全体として使い易いシステムにしている。
Googleの技術をもってしても多目的分散ファイルシステムを作るというのは現実的なアプローチじゃないと判断したんだね、と妙に納得してしまった。徹底したtoolkitアプローチだ、unix的とも言える。
MicrosoftとかだとWinFSみたいに巨大なプロダクトを全力で作っていくようなアプローチが多いように思うが、やはりこの違いは製品を外販していく会社とそうでない会社の違いなのかな。Googleの要素技術はどれも単体で売るには中途半端だし、全てまとめると独特すぎる世界なのでニッチになってしまいそう。
これだけの要素技術をブレずに淡々と作っていく姿勢も凄いが、こんな独特な物を社内の標準環境として使っていける従業員を揃えられるのは流石。日本のエンジニアの人でGoogleに行った人はほとんどがblogの更新頻度が落ちるのだけど、社内がすげー楽しいんだろうな、やはり。
世界にはGoogle以外にあと4つのコンピュータクラウドが出来るという比喩があるが、二番手以降がこの規模について行けるのだろうか。データセンターの展開の話などを読んでいると、不安にすらなってきた。