「IBM Japan Geeks」(以下、Geeks)は、2007年に社内で開催された「ITLMC RoR(Ruby on Rails)勉強会」に集まった“とがった”人たちによって発足したもの。「主にプログラミング言語を中心とした最新技術動向の情報交換を行うための社内コミュニティ」として、定期的に勉強会を開催しています。
今回は前回に続き、これまでに開催されたGeeks定例会から反響の多かったものを再現していただいた「Scala:宮本氏」「Android:小山氏」「Google基盤について:根本氏」「オブジェクト指向とカリー化:津田氏」の後半の2編をお送りします。
インフラ面から見たGoogle基盤
3番目のGeekとして登場した根本和郎氏は、「The Strength of Google from infrastructure view」(インフラから見たGoogleの強さ)と題した発表を行った。これは社内カンファレンスの10倍の倍率を通過した発表であり、米国でも同内容の発表を行っているという。なお、発表内容はすべて公的な情報を元にまとめられている。今回は発表時間が押していることから、要点のみに絞っての発表となった。
Googleと言えばクラウドで有名だが、IBMが言うところのクラウドとは異なるものとなっている。その違いをプログラミングの側面から見てみようという内容だ。Googleのテクノロジーを理解するのに必要な最低限の要素技術は「GFS(Google File System)」「Map Reduce(アルゴリズム)」「BigTable(データベース)」の3つであり、この技術を複合させてシステム設計を考えることで、違う世界が見えてくる。
Googleとsaleforce.comとの比較
根本氏は今回、この3つのテクノロジから「Map Reduce」および「BigTable」を取り上げた。まずは基礎知識である。Googleはしばしば、クラウドという視点においてsalesforce.comと比較されるが、そのシステムのイメージはまったく逆になっている。salesforce.comはSunのサーバやOracleのデータベースによって構成されており、さながら一般的な会社のデータセンターのようである。
一方Googleは、顧客企業ごとにクラスターで性質が違うシステム構成になっているという方式ではない。Webユーザーという単一の種類のユーザーを支える、巨大なサーバー群と考えられる。この比較は「分散とパラレル」に置き換えることもできる。パラレルが1台のPCに複数個のCPUを搭載するセルコンピューティングのようなものであるのに対し、Googleに当てはめられる分散は、安くて性能もそれなりのPCをたくさん並べるスタイルであると言える。