[Analysis]
見えるグーグル、見えないグーグル
2008/06/02
大ざっぱに言って、グーグルには2つの側面がある。見えるグーグルと、見えないグーグルだ。「見えない」は言い過ぎでも、グーグルの中には、普通に外から眺めているだけでは見えてこない、エッジな分散コンピューティングの世界が広がっている。
検索やメール、カレンダーなどは外から見えている分かりやすいグーグルだ。逆にこうしたサービスを支えるインフラ技術は、かなり一生懸命見る気にならないと、見えてこない。
ある技術系イベントの席で、たまたま隣になったグーグルの技術者が、私にこう言った。「アプリはあんまりやらないんですよ。画面とか、面倒くさいでしょ。グーグルドキュメントとか別に消えていいって感じ。インフラに興味があるんです。OS? OSなんて、どうでもいいし」。
変わった人だなという印象を受けた。今の時代はインフラよりもサービスに華がある。フロンティアが広がっているのもサービスの分野だ。そう思っていた。しかし、それは記者の勝手な思い込みに過ぎなかった。
最近、『Googleを支える技術――巨大システムの内側の世界』(西田圭介、技術評論社)を読んで、この考えは180度変わった。彼が言っていたアプリケーション(サービス)よりインフラがおもしろいという発言に共感を覚えるようになったのだ。グーグルでのインフラ開発は、極めてエキサイティングなものに違いない。
グーグルのインフラ技術は、本当のところ、内部の人間にしか分からないことだが、パブリックになっている論文や統計データ、グーグルの関係者の発言からでも、かなりのことが分かる。そのことは記者も分かっていたし、実際にMapReduceやGFSに関する論文はプリントアウトして持ち歩いていたこともある。しかし、公開されている論文数は多く、テーマも専門的で多岐にわたるため、とても記者ごときに読み通せるものではなかった。
そうした論文を読み込み、公になっている情報をつぶさに拾い上げてグーグルのインフラ技術の全体像を再構成して平易に解説した『Googleを支える技術』には大きな価値がある。この本のもう1つの価値は、そうしたインフラ技術の一部が今なお開発を継続中であり、どういう課題に取り組んでいるかを明らかにしていることだ。インフラよりもアプリケーションがフロンティアであると感じていたのは、グーグルのインフラがいかいすごかろうと、それはもうほとんど完成してしまったものだろうと思いこんでいたからだ。
グーグルがしてきたことは、単に何万台かのコンピュータを使って計算処理を分散しました、というような話ではない。コモディティ化された大量の安価なCPUやハードディスクをいかに自律的、効率的に運用してグローバルな巨大ファイルシステムやデータベースを作るかというのがテーマだ。言葉にするとそれだけのことだが、相手にしているデータやハードウェアの量が桁違いに多いことと、PC間の接続距離を何階層かに分けて考える必要があることなど条件が複雑なことから、多くのチャレンジングな課題が出てくる。
Rubyの生みの親である、まつもとゆきひろ氏は前書きに寄せて「Googleのしてきたことは、コンピューティングの未来の先取りです」と書いている。グーグルのインフラ構築というのは従来の常識やモデルが通用しない世界だから、グーグルはストレージシステムやコンピューティングのあり方を再定義しつつあるのだと言えるのだろう。また著者の西田圭介氏は、グーグルの巨大システムのしくみを1つ1つ見ていったとき、「はじめてOSやデータベースについて学んだときのようなわくわくする気持ちを覚えました」と書いている。確かに、グーグルの内部では、従来の意味でのコンピュータの教科書に載っていないような独特の仕組みがいくつも実現しているのだ。
例えば、GFSやBigtableほど知られていない「Chubby」と呼ばれる分散ロックシステムがある。ChubbyはGFSに対する外部ロックシステムとしても機能するが、GFSで扱うのに適していない小さなデータを扱うファイルシステムとしても利用されるという。さらに、イベント通知機能を備えており、その特性からグーグル内部ではDNSサーバ代わりに名前解決に使われているという。Chubbyは5台で1つのセルを構成し、1つのマスタと4つのレプリカからなる。そのマスタはマシン間の投票で選ばれるという。また、Chubbyセルにはデータセンター内で閉じたものと、グローバルにアクセス可能なものがある――。
グーグルの分散システムを支える多くの技術に似たアイデアは、アカデミックな世界では広く知られているものも多いという。ただ、著者の西田氏が指摘する通り、それを着々と10年かけて実装してきたこと、実験してきたこと、最適化してきたことこそが、「見えないグーグル」の強みだろう。それは必ずしもコンピュータサイエンス的なデジタルだけで完結するインフラばかりではなく、PCの消費電力(電源ユニットの改造)やハードウェアの故障との戦いという面でも膨大なノウハウを蓄積している。
『Googleを支える技術』を読んでいて記者は思わず笑ってしまったのだが、著者の西田氏は随所にグーグルのインフラを利用する上での注意を書いている。例えば、過去のトラブルを引き合いに出しつつ「Chubbyを利用するときにはデータが大きくなりすぎないか、注意して使わないといけません」などと、まるでグーグルの新人研修用テキストに書くような文章を書いている。普通に考えれば誰の役にも立たない助言だが、その一方で、いずれ遠くない将来、こうした分散システム上でプログラミングをするのは、何もグーグル社員に限らなくなるのではないだろうか、という予感を感じさせるものでもある。
情報をお寄せください:
最新記事
- - PR -
お勧め求人情報
**先週の人気講座ランキング**
〜ITIL編〜
◆ | New! ■ 高パフォーマンス 『 UltraSPARC 』 仮想化も併用し、サーバ統合効果を検証! |
◆ | New! 「1秒、切れてました」は、通用しない! 堅牢性・信頼性に優れた“国産”通信機器 |
◆ | 市場の変化と淘汰されるERPエンジニアとは 〜エンジニア・キャリア進化論(第7回)〜 |
◆ | こんな便利な開発ツールがあるならもっと 早く教えてくれよ!おれの青春を返せ〜! |
◆ | 『もう1つの外資系』を選ぶワケ…… 読んでわかる、驚きの採用状況と人材育成法 |
◆ | 『家族持ち』ITエンジニアの方、必見! 経験者が語る、U/Iターン転職の実状と魅力 |
◆ | 業務アプリの開発効率向上と顧客満足の 向上を両立するアウトプットの“疎連携” |
◆ | 自分のスキル、限界を感じていませんか? 『IT専門教育』で独学の限界を超えろ! |
◆ | 【第2回】プログラマあかねが行く! 安価・軽量・高速――最適な製品とは!? |
◆ | トレンドは常に動き続ける!時代の変化に 対応する――ベンダーからのメッセージ! |
◆ | 【実践!SOA】手作業をシステム化で改善 作業ミスが従来の60%から1%にまで激減! |
◆ | BI導入が失敗する『3つの理由』と データ・情報活用を成功させる解決ツール |