『Googleを支える技術』はその名の通りGoogleの各種サービスの根幹となる優れた技術群を解説している書籍です。Googleの中の人が内部情報を元に書いたとか、Googleに詳細な取材を行って書いた、というわけではなく、Googleが公開している論文などの情報を元に書いてあるようです。こうしたまとまった形で紹介する資料はこれまでありませんでしたし、特に日本語で読めるものは少なかったので、たいへんありがたい本です。とても興味深く読めました。
Googleの生み出した技術といえばページランクが最も有名で、Googleの技術の柱のようにも言われています。本書でももちろんページランクについて言及していますが、意外なことにその解説はありません。なぜなら、Googleの技術の優れたところは、検索のアルゴリズムよりもむしろ人知を超えた爆発的な規模の拡大を克服することにあるからです。
従来のファイルサーバやデータベースにはとても収まりきらない膨大な量の全世界中のWebページの内容を、収集し、蓄積し、解析し、検索可能にすることは想像以上にたいへんなことです。Googleでは分散ファイルシステムや構造化ストレージシステム、分散ロックサービス、分散データ処理アーキテクチャ、分散処理記述言語といった技術を開発し、組み合わせることで実現しています。
これらの技術が優れていると思わせるのは、検索エンジンに特化した専用システムではなく、汎用的に大規模処理に適用できる技術として構築されている点です。もちろん検索に適したつくりにはなっているのですが、検索以外の多くのサービスに応用できる仕組みでもあるのです。
そして何より優れているのは、こうした技術を組織として継続的に生み出し改良し続けていける体制作りです。一人の天才が技術を作り出すだけならこれまでにも多くの事例があります。しかしここまでの規模のサービス群を、全体として統制の取れたかたちで、汎用的に作られることで互いに利用しあい、互いに連携しながらサービスを組み立てているのは Google が初めてではないでしょうか。
たとえば大規模分散ファイルシステムといえば、古くはCMUのAndrewなど研究レベルで優れたものがありました。しかしGoogleの技術は実際に大規模なサービスで全世界の人向けに実用的に運用されているという点ではるかに洗練されたものになっています。
Googleは多くの大学の研究室が束になってもなかなか実現できないようなシステム群を次々に生み出しているのです。
そして、Googleはそれを可能にする組織や環境を構築・維持することに相当な労力をかけていると思われます。本書ではそういった面にも光を当てています。
本書の特徴的なところは、規模を克服するための技術として、ソフトウェア面ばかりでなく、物理的なインフラについても独自の考察を加えながら解説しているところです。ハードウェア費用や電力、それを格納するデータセンターについての記述は、他ではなかなか読めないものです。
Google App Engineを使うと、本書で解説されているような環境の上で大規模な処理を走らせることができるんでしょうか。やってみたくてうずうずしてきます。
こんにちわ
私もこの映画みて、
かなり突っ込みどころが満載というか
手放しに面白いといえないような感想を抱きました。
確かに、娘を誰も目撃してないってありえないですよね。
えみさん、こんにちは。
やっぱりそう感じますよね。
シチュエーションの奇抜さを構成するために、かなり無理やりな筋立てになったんでしょう。