西田 圭介 / 『Googleを支える技術 -巨大システムの内側の世界』 / 2008-03-28 / 技術評論社 / A
ビジネスモデルとか、GmailやGoogle Docsなど、表に見えるところばかりが注目されるGoogle。 それを支えているのはどんな技術なんだろうか。 バラバラに発表されている要素技術の論文や発表を丹念に追いかけて、想像し再構成し解説した本。
取り上げられている内容も素晴らしいし、翻訳と解説(こなれ具合)も素晴らしいし、紹介の仕方/順番も素晴らしい。
データセンター、電力、といったファシリティに触れるといった着目点も素晴らしい。
惜しいと思ったのは、Googleを支える技術をあまりにも分かりやすく説明してしまっているために、それがどれほどすごいことなのかを感じられないところ。
数万から数十万ユーザが同時に利用するクリティカルなシステムを設計/構築したことがないエンジニアにも、そのすごさを分からせるような"おせっかいさ"があってもいいのではないかと思った。
量はあるポイントから質を変えてしまう。
『三日でわかるLinux』とかいったCD-ROM/DVD付きの本を買ってきて古くなったパソコンにLinuxをインストールしてみて、「わーい、Apacheのサンプルページが見えた」というレベルはもちろん、クラスタ化されたAP/DBサーバ+ロードバランサでWebサーバを数台並列稼働させるようなシステムを作っているのでは、とうてい分からない世界がある。
個人的な感触でいうと、サーバの合計台数が10台を超えると一つ山がくる。
周辺のネットワーク関連機器なども合わせて40-50台を超えるともう一つ山がくる。
台数が増えると、システムの複雑さは二次曲線的に高まる。
サーバの台数が2倍(4x2=8)に増えると、複雑さは2乗(4^2=16)になるイメージ、といったらわかるだろうか。
作るのも大変だけど、運用するのはもっと大変だ。
(もうひとつ残念だったのは、この「運用」について触れられていない点。元となる論文が公開されない以上、無い物ねだりではあるのだけれど)
例えば、さらっと「監視していて障害が発生したら」と書いてあるけど、数千というオーダーではなくて数万、数十万というオーダーなのだ。
繰り返すが、量はあるポイントから質を変えてしまう。
ms(ミリ秒)単位の遅延があっというまに秒単位の遅延になってしまう。
「ここは例外」があっというまにゴルディオスの結び目になってしまう。
本書から伺えるGoogleはとてもシンプルで分かりやすい。
どこまでが本当のGoogleの姿で、どこまでが論文にするため抽象化/簡略化された姿で、どこからが著者の力量なのか、それは本書からは分からない。
名人の技はものすごく簡単そうに見える。
Apple社の製品がシンプルで使いやすいのは、シンプルにするためにものすごいエネルギーを注いでいるから。
『アジャイルプラクティス』(p.114)で紹介されているパスカルの言葉:「長いお手紙をお許しください、短くする時間をとれなかったのです」。
いや、ホントにスゴい本だった。
続編が読みたい! 本書で取り上げられなかった運用と「いかにシンプルに保つのか」の工夫を知りたい!
Amazon.co.jp: 『Googleを支える技術 -巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)』
