Googleを支える技術

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

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

いやー面白かった。PageRankがどうこうとかいうのは熟知したところでGoogleの気が変わったらSEO対策なんて全てパーだしそれならば最初から広告出した方が最終的な対費用効果が高いと考えてるので全く興味がない。けれどそれ以外の部分がどれも興味深かった。

検索という機能は使う側からすれば非常に当たり前のものなのであまり技術面で注目されない気がするけどやはり内部は努力の結晶なのだなあと。クラスタリングは実際に試したことはないけれど障害時にマスタサーバが勝手に故障したHDDを切り離して新しいHDDを組み込むってすごいよなあ。まあRAID5を組むだけでその程度の技術は付いてくるんだけどGoogleのような巨大な規模でそれを可能にするってやっぱりすごい。

仕事に全く関係がないわけではないのでBigtableは以前から気になっていたけれど列の数を自由に増減させられるテーブルというくだりがすごいと思った。管理コストは増えそうだが内部統制やら企業合併などでめまぐるしく変化する業務が相手なので多次元マップは魅力的だ。

本書の中で最も興味深かったのが運用コストについてだ。Googleが安価なサーバをたくさん並べる事で運用されていることは周知の事実だけれど規模が大きいと電力コストにもシビアにならざるを得ない。2005年に発表された論文によるとこのままでは近いうちにハードウェアより電気代の方が高くなるとか。PCの価格性能比は年々上がってるけど電力性能比は横ばいって全く知らなかった。マルチコア化はその流れだってのに勉強不足だわ。

電源ユニットの電力ロスも知らなかった。規格がそうなっているから、という理由だけで電力を無駄にロストしているそうで世界規模で電源ユニットを見直せば3年で50億ドルもの節約になるそうだ。2007年にDellIntelと団体を立ち上げたそうなので既に結果が出始めている頃なのかもしれない。

Googleが自前のデータセンターを持つ前の話だけれど借りていたデータセンターをいくつも倒産させたって話もすげえと思った。使用面積で課金されるタイプだったのでラックてんこもりにするGoogle利用分が想定外の電気代になったとか。そういやOSはLINUXだろうけどディストリビューションは何だろうと思ったらUbuntuを改良したGoobuntuだってよ。

開発体制の話も面白い。数千人規模にもかかわらずソースコード管理が一元化されてるて。CPUはデュアルコアOpteron×4でメモリが128GBだそうです。メモリがちょっとしたHDDですな。あとテストは可能な限り自動化するってのが大前提になっているようだ。まあここら辺は規模によるよなあ。自分もチェック項目はバッチ化してなるべく繰り返しの無駄を省くようにはしてるつもりですがあんまり徹底出来てないので頑張ろうと思った。こうやって頑張ろうって気にさせてくれる本は良いなー。