グーグル技術講演会

先週末、渋谷のセルリアンタワーでグーグルオープンハウス(技術講演会)に行ってきた。会場の受付では、氏名と会社名が書かれたネームプレートをもらった。今日は公演後に懇親会的なものがあるので、そこでのネタづくりに、ってことなんだろう。到着と同時にオープンハウスがスタート。

グーグルの開発環境のお話

ひとつめのセッションは今年?グーグル入社したばかりの方の、グーグルの開発環境の話。グーグルでは「百聞は一見にしかず」ならぬ「デモは一見にしかず」という考え方が重要らしくとにかくデモを作って見せろ、と言う感じらしい。あと、意外に感じたのがDesign Docとよばれるドキュメントの作成にかなり重点をおいていること。なにか新しいアプリケーションを作るときは、これはこういう背景があって、こういう問題があって、そこでこのアプリケーションではこの問題をどういう風に解決して、、内部ではどういう処理をして、どういう風に実装して、さらに、どういうふうにテストして品質を確保するか、というところまでかなり詳しく書いたドキュメントのようだ。さらにこのドキュメントは社員であればいつでも誰でも見ることができるらしい(このドキュメントを管理するシステムがあるらしい)。当然、ソースコードも全ての社員がリポジトリにアクセスして見ることができる(サマーインターンシップの学生でも見れるらしい!)。ということで、なにか自分の仕事で躓いたら、別部署のプロジェクトのデザインドキュメントやソースを見てヒントを得ることができる。

Gmail開発者のお話

次はGmailの開発に初期から関わっているという方のセッション。英語圏の方らしく、最初はたどたどしい日本語で喋っていたが「私の話す日本語より、皆さんの英語聞き取り力のほうが優秀でしょ」ということで、いきなり英語に切り替わる(^^;)。聞き取りに集中しすぎて内容をメモるのをわすれた・・。GMailのインフラはRAID+一般的なテープによるバックアップ、そしてGFSと言う感じらしい。GMailの特徴(スレッド形式、IMとの統合など)について触れたあと、スパムフィルタリングの話。フィルタリングにはいろんな処理が行われており、送信元の解析、メールの構造解析、ネットワークの分析、などがなされており、しかもそれらは機械学習によって精度が増していくとのこと。つぎにUIの話。この辺はとくに目新しいことは無かったかな。

グーグルのインフラ・ミドルウェアのお話

最後にグーグルジャパンでミドル周りを担当している方のセッション。グーグルでは有名なGFS,MapReduceに加えて、BigTableというミドルウェアが使われている。BigTableとは簡単に言えば行と列で構成されたデータベース。例えば、"cnn.com"列の、"コンテンツ"行には、cnn.comのhtmlドキュメントが格納されている、と言う感じ。さらに行、列に加えて時間、という3次元構造を持っている。さっきの"cnn.com","コンテンツ",に加えて"2006/02/05"というタイムスタンプを指定してやれば、2/5時点のhtmlドキュメントにアクセスできる、という具合。ちなみに各列はURLのアルファベット順に並んでいる。で、このテーブルは異なるサーバー上に分散して配置することができる。グーグルではこれを"tablet"という単位で分けて、各サーバー上に配置している。tabletに分けることで、例えば"cnn.com"のデータがほしいときは、"c"から始まるデータを格納しているtabletが配置されているサーバーにだけアクセスすれば、そのほかのサーバーにはアクセスしないで済む、というメリットがある。なおBigTableのデータを追加する場合は、まずコミットログに書き出されて、コミットログが一杯になると適宜「SSTable」と呼ばれるB-Treeのデータとして格納され、その後バッチでbigtableに書き出されるという感じ(あやふやです)。あとは、キャッシュとロックをとるための「Chuddy」というシステムの紹介があった。こんな感じで、bigtableだけじゃなくて、コミットログや、SSTable、Chuddyなんかが間にたくさん噛むことで、データの種類に応じてアクセス先を柔軟に切り替えられるっていうのがうれしいらしい。

懇親会

本編が終わると、会場の後方にドリンクと軽食が出され懇親会となった。俺は酒は一切飲めないのでウーロン茶とオレンジジュースをちびちびなめながら会場をうろつく。あ、はてなのひげポンがいる!とか思ってたら、以前筑波大学Google Maps APIのお話をしていたクリスさんを発見。ちょっと話しかけてみると、お〜筑波の会場の真ん中あたりに座っていた方ですね〜、ということで覚えてくれていました(質問してたからな)。クリスさんはマウンテンビューと東京を行ったりきたりしているらしい。とにかくめっちゃ背がでかくてクビが疲れた・・。なんかしょうもない話ばかりしていたが、とりあえずグーグルでは今、C++か、Javaか、Pythonのどれかしか使われていないらしい。Hackshellなんかで書かれても誰もメンテできないからね〜とのこと。JavaってGMailくらいにしか使われてないのかな、ともっていたがぜんぜんそうでもないらしい。C++は検索のコアな部分とか、上述のBigTableの実装なんかに使われているとのこと。グーグルはもうすぐ従業員が1万人を超えるくらいの大企業になっており、クリスさんもグーグル取締役のエリック・シュミットとは一度しか喋ったことがなく、かなりの雲の上的存在らしい。どんなこと喋ったの?と聞いてみると、「嫁がいる人ははやく家に帰ったほうがいいよ〜」みたいなことを言われたとか(^^)
その後は、別のグーグル社員のひととイロイロお話ができて面白かった。とりあえずグーグルの採用面接は5〜10回は行われるらしいっす。へ〜。
で、帰り際にまたグーグルTシャツをゲットしてしまった!今回は黒のGoogle earth Tシャツ+グーグルメモ帳、そしてグーグルボールペン!なんか技術公演を聴きに行っているというよりも、グーグルノベルティーを貰いに行ってる、見たいな感じになっちゃってるな。

というわけで、やっぱり社外の技術系イベントに参加するってのは楽しいな。東京っていいわ。