幹部ディボナ氏が語る

グーグル社内のオープンソース活用術

2007/05/21

 Google New Yorkの講演会シリーズに、同社でオープンソースプログラムマネジャーを務めるクリス・ディボナ氏が登場し、「グーグルにおけるオープンソース時代」と題する発表を行った。講演会にメディアは参加できなかったものの、eWEEKのシニアエディターであるダリル・K・タフト氏が5月16日に同氏にインタビューし、特許をめぐるマイクロソフトの最近の強硬姿勢やグーグルのオープンソース開発に対する貢献、グーグルにとってのGPLv3の意義など、一連のトピックについて質問した。

――講演会ではどのような話題を取り上げるのですか。

ディボナ氏 普段から話していることに、少し手を加えるつもりです。具体的には、グーグルがオープンソースをどのように活用していくのか、社内でいかにオープンソースを助長していくのか、「Summer of Code」の実施やコードのリリースといった対外的なオープンソースとの関わりをどうするのかなどの事柄ですね。グーグルは、オープンソースコミュニティに大量のコードを提供している企業です。今回の講演は、そうした取り組みをテーマにしようと考えています。

――グーグルがソフトウェア開発で使用しているオープンソースコンポーネントについても話すのですか。

ディボナ氏 社内で組み合わせながら使っているさまざまなオープンソースプロジェクトを紹介する予定です。 グーグルは、例えばLinuxカーネルやGNUコンパイラ群、Python、Wine、Derby、Aspell、DSpace、Autoconf、MySQLといった優れたプロジェクトを使用しています。

――グーグル社内における実装や開発に用いられているオープンソースソフトウェアに関してはどうですか。

ディボナ氏 われわれはLinuxカーネルを使用しています。つまり、グーグルのサービスを利用するたび、ユーザーもLinuxマシンを使っていることになるのですね。これらの上で極めて一般的なオープンソースツールを使用し、さらにその上でグーグル検索エンジンや「Gmail」といった種々のサービスを機能させるプリプライエタリソフトウェアが動いています。

――一般的なツールとはどのようなものですか。

ディボナ氏 (GNU)binutilなどやOpenSSLおよびOpenSSHなど、さらに一部のネットワーク監視ツールなどです。およそ考えられうるほとんどのオペレーティングシステムレベルのツールを利用しています。

――ディボナ氏は「Google Code」プロジェクト(プロジェクトホスティングサイト)にも関わっているのですか。

ディボナ氏 はい、そうです。私のグループが統括しているWebサイトの1つです。

――同プロジェクトの現状はいかがですか。進捗の度合いはどのような基準で測るのですか。

ディボナ氏 Google Codeはいくつかの点で、われわれにとって非常に重要な存在です。第一に、Google Codeはグーグルに関係のないオープンソースプロジェクトも多数扱っています。その結果、われわれのWebホスティングに対する取り組みは、SourceForgeに次ぐ世界第2位の規模にまで成長しました。こうした成果に大きな誇りを持っています。

 さらに同プロジェクトでは、ソフトウェアやグーグルのAPIに関する多数のドキュメントを参照することができます。社外のコード製作者や開発者が、グーグルの技術をより詳しく学んだり、自作プログラムとグーグルの技術的な互換性を確認したりする場として機能するでしょう。実際にそうした面での成功例も見られており、Google Codeの現状には非常に満足しています。

Summer of Codeで2000人の開発者を投入

――Summer of Codeプロジェクトが持つ影響力を個人的にはどう見ていますか。

ディボナ氏 Summer of Codeからは、極めて意義のある成果がすでに生まれています。まず、今日までに2000人近くの開発者をプロジェクトに投入してきた点が評価されてしかるべきでしょう。今年は1000人、昨年は600人、一昨年は400人がSummer of Codeに参加しました。すなわち、グーグルは合わせて2000人の開発者をオープンソースソフトウェア開発コミュニティに組み入れたのです。

 また、オープンソースプロジェクトを対象とし、そうした開発に関わるチャンスを学生に与えることで、Summer of Codeは新たな開発者の育成にも力を発揮しています。3年前と比べると、現在のプロジェクトの大半は、まだまだ未熟な開発者の卵たちを受け入れられるプロセスや作業内容、概念や手法を採用するようになりました。オープンソースソフトウェアにとって、実に前向きで好ましい傾向です。こうした事実から、 Summer of Codeプロジェクトは極めて効果的なものだと考えています。

――まさにその部分を尋ねようと思っていました。コンピュータサイエンスに興味のある若者を、オープンソースソフトウェアの世界へ導くということですね。

ディボナ氏 ええ、その通りです。すぐれたソフトウェアを作れる人は大勢いますが、これまでオープンソースを使ってきた若者が開発者へと転身するのは容易ではありません。自分のコードが突然他者から見られるようになり、はるかにキャリアが長いベテランの開発者や、尊敬や畏怖の念を抱いていた先輩諸氏とコミュニケーションを図っていくのはかなり難しいでしょう。Summer of Codeは、そうした環境を築く効果的な取り組みと言えます。

100万行以上のコードをオープンソース化

――グーグルが開発コミュニティに還元しているオープンソースソフトウェアの数はどれくらいなのでしょうか。

ディボナ氏 われわれがオープンソース化したコードは、100万行以上に上っています。とりあえずこの数字から規模の大きさが分かりますね。100万行とは、また驚くべき量だと思いませんか。もっとも私は、あらゆるメジャーなオープンソースソフトウェアプロジェクトと、そのほかの多くのプロジェクトにおいて、グーグル社員がパッチを当てたり、新機能を開発したり、コードを公開もしくは提供したりしている事実の方が、より重要だと考えています。

 例えば最近では、MySQLを効率的に使用し、レプリケーションなどにも役立つツールをたくさんオープンソース化しました。なかなか楽しい作業でしたよ。ごくマイナーなアップデートから、「Google Web Toolkit」などの大物まで、実にさまざまなものを公開したのです。グーグルが成し遂げてきた技術革新を世界中の人々を共有するのに、オープンソース化は最適な手段ですね。

――現時点でオープンソース化を検討してる技術はありますか。

ディボナ氏 ご承知の通り、まだリリースしていないものについてはお話しできません。何かをオープンソース化し、それを発表する場合は、すべての準備が整ってからにしたいのです。5月31日に開催する「Google Developer Day」で面白い発表ができるよう、力を尽くしているところです。

――グーグルにとって、GPLv3(第3版)はどのようなインパクトを持っていますか。

ディボナ氏 9カ月前に同じ質問をされていたら、第3版の最初のドラフトに含まれていたアプリケーションサービスプロバイダーのプロビジョンに関わる規定から、これに準拠したプログラムを利用することはできないと答えたでしょう。また、今も同じ気持ちでいますが、第3版を採用できないからといって、すべておしまいだというわけでもありませんでした。利用可能なあらゆるオープンソースソフトウェアを使う必要はないのです。

 しかし、GPLv3の最新ドラフトではプロビジョンに関する規定が廃止されたため、同版を適用したソフトウェアを社内の開発に用い、最終的に製品化する可能性は高まったといえます。ユーザーが(オープンソースソフトウェアに)そうした制限が設けられてもかまわないと考えたとしても、以前のままではGPLv3を製品に適用し、エンドユーザーへ提供することは不可能でした。

 グーグルは提供されたコードを管理することを得意としていますから、開発者がコードにどのような修正を加えていようと、われわれとしては一向にかまいませんでした。それが問題になる状況はいっさいなかったのです。(GPLの)最新版は、ほんとうに優れたライセンスに仕上がっていますね。

OSS特許侵害問題を「気にしている」

――このところマイクロソフトが、フリーウェアおよびオープンソースソフトウェアは同社の特許を多数侵害していると主張していますが、これに対して何か考えはありますか。

ディボナ氏 われわれも気にしている動きです。大多数の人々と同じく、マイクロソフトには(侵害されているという特許を)挙げてもらいたいと思っていますが、しばらくは様子を見守るしかないでしょう。特許の侵害を言い立てるのは簡単ですが、そうした発言には具体的な行動が伴っていなければなりません。

――ですが、彼らの主張に確かな裏付けがあった場合、グーグルのような立場の企業は窮地に陥るのではないですか。

ディボナ氏 どうでしょうね。やはり手に入れられる情報が少なすぎるので、いまはまだ判断できません。

――サン・マイクロシステムズによるJavaのオープンソース化によって、開発プラットフォームとしてのJavaに対するグーグルの意識は変わりましたか。

ディボナ氏 われわれのJavaに対する見方はこれまでと同じですが、Javaの利用性が増したことは確かです。グーグルでは、きわめて先進的なJava開発プロジェクトを多数進めていますが、SunがJavaをGPLの下でリリースする前は、パッチを提供するにもバグを修復するにも、ソースコードの利用に関する契約をいちいち同社と結んでいました。現在グーグルは、Java開発者として優れた能力を持ち、「Java Community Process」にも積極的に参加しているジョシュア・ブロックのような人材を抱えています。

 そうした背景のもと、われわれはパッチの提供や新機能の開発を常に続けてきました。ですから、Javaのオープンソース化は大歓迎なのです。オープンソース化を喜んでいる理由はほかにもあります。かつては不可能だった方法で特定のコードにアクセスできるようになったのも、形式張った手順を踏まずに問題点を修復したり、パッチを提供できるようになったのも、大きな進歩です。Javaがオープンソースプロジェクトになったのなら、あれもこれもリリースできるぞというケースが増えました。JavaがGPLに準拠したことにより、われわれは大いなる自由を享受できるようになりました。

――Black DuckやPalamidaなどのツールを利用してコードの評価を行ったことがありますか。あるいは、そうする気はありますか。

ディボナ氏 そうしたツールを使ったことはありません。提供を受けるコードについては極めて厳格な管理を徹底していますし、グーグルはエンジニアの教育にも絶対の自信を持っていますから。当社がコードベースを明確に管理している証拠に、私は社内プロジェクトのバイナリコードの最後を見れば、どのオープンソースソフトウェアのものか確実に判断できます。

 具体的な計画などを持ち出す意図はありませんが、例えば買収を考えるなら、彼らのツールは興味深い対象といえます。ですが、社内で使用する気にはなりません。そうしたツールの実用性が増すのはよいことですが、現在のグーグルには必要ないものです。もちろん、たいへん優れた質の高い製品だとは思っていますよ。

コードの社内持ち込みに厳しい規律

――先ほど、多数のオープンソースコンポーネントから構成されているスタックの上で、たくさんのプロプライエタリコードを動作させているとおっしゃいましたが、どういったものを意味していたのですか。

ディボナ氏 皆さんがLinux上でアプリケーションを動作させているのと、それほど変わらない環境です。WebサーバやWebアプリケーションと同じ方法で運用し、Linuxはカーネルおよびオペレーティングシステムとして、その下で動かしています。

 オープンソースライブラリを使用している場合、社内におけるコードの採用には細心の注意を払っています。グーグルはコードを社内に持ち込むに当たり、常に厳しい規律を適用してきたのです。

 社内でコードを開発し、対外的に提供する際は、同コードをレポジトリに入れる前に、当事者ではないグーグル社員がこれを念入りに調べることになっています。だれかが突如として2万5000行におよぶコードを提供しようとしても、すんなり認められる可能性はないでしょう。われわれには、そうしたコードがほんとうに有用であることを見極める術があります。そのコードをこのディレクトリに入れたいのなら、われわれが追跡できるよう限定的なタグを付けなさいといった感じで、アドバイスをします。提供されるコードの統制ならお手の物だと、胸を張っていえますね。

原文へのリンク

(eWEEK Darryl K. Taft)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)