DUICUO

David Recordon 氏がソーシャル ネットワーキングにおける Facebook のオープン ソース化の歩みについて説明します。

5億人を超えるユーザーを抱えるFacebookは、世界最大のソーシャルネットワーキングサイトであり、オープンソースコミュニティに一貫して多大な貢献をしてきました。Facebookのオープンソース責任者であるDavid Recordon氏は、LXF (http://www.linuxformat.com/) とのインタビューで、自身とFacebookのオープンソースへの道のりについて語りました。

[[19699]]

LXF: オープンソースに関する経歴を教えてください。

David Recordon(以下、DR):オープンソースに携わるようになったのは10代の頃です。YaBB SE(PHPフォーラムソフトウェア)を使い、コミュニティの仲間たちを助け始めました。

当時、C++と少しPerlは知っていたものの、ウェブプログラミングを実際にやったことは一度もありませんでした。PHPは習得しやすく、保存をクリックしてブラウザを更新する感覚が好きでした。数年後、私はプロジェクトにもっと関わるようになり、Simple Machines Forumの書き換えに協力したり、友人とフォーラムホスティングビジネスを立ち上げたりしました。

オープンソース プロジェクトに関して、これほど深い経験をしたのは本当に初めてだと思います。

LXF: ウェブサイト事業は今後も継続されますか?

DR: 数年後、LiveJournalでのインターンシップ中にPerlを学び始めたのですが、Emacsに乗り換えた後はNanoを使ったことを認めないようにと言われました。LiveJournalでの仕事は、私にとってLinuxを日常的にデスクトップで使う初めての経験でもありました。

LXF: OpenIDの世界では非常によく知られていますが、このプロジェクトにはどのように関わるようになったのですか?

DR: 多くの人がLiveJournalのオープンソースコアを悪用し、クローンを作成しています。Wikipediaによると、30ものサイトがそれぞれ異なる時期にDeadJournalを使用していました。LiveJournal.comでは、ID共有の概念がないため、スパムが大きな問題になったことはありません。

OpenIDはもともと、複数のサイト間で分散的にコメントを投稿するという問題を解決するために、Six Apart社によって開発されました。その劇的な進化は、私がVerisignに在籍し、OpenID 2.0の開発に深く関わり始めた2005年に始まりました。

ほぼすべてのウェブ企業に採用されていますが、まだ道のりは長いです。OpenIDの次期バージョンはOAuth 2.0をベースに構築されると思われますが、これはブラウザ外のアプリケーションでOpenIDを動作させる技術のごく一部に過ぎません。

LXF:Facebookに入社したきっかけは何ですか? DR:2009年にFacebookに入社し、オープンソースと標準規格の策定に携わっていました。私のチームは、オープンソースプロジェクトを誰もが利用できるように、活用、貢献、そしてリリースするという素晴らしい仕事に尽力していました。

場合によっては、これは、2010 年にリリースした HiHop for PHP のように、他のエンジニアリング チームに統合されることを意味します。HipHop は Facebook 社内で検証されていますが、他の Web サイトのインフラストラクチャの有用な一部にするには、まだ多くの作業が必要です。

LXF: HiHop は具体的に何をするのですか?

DR:HipHopは、Facebookにおけるオープンソースの創造方法をまさに体現しています。当初はHaiping Zhaoがハッカソンプロジェクトとして開発し、後にIain ProctorとMinghui Yangが参加しました。HaipingはPHPの構文とC++の構文に多くの類似点があることに気づき、それを別のプログラミング言語で書き直せるかどうかを判断しました。

2年半の歳月と数人のエンジニアの参加を経て、HipHopは現在Facebookの製品の大部分に利用されています。HipHopにはPHPソースコードが必要で、これをC++に変換してスタンドアロンのバイナリファイルにコンパイルし、Webサーバーにデプロイしています。

これは Facebook がプロジェクトを開始する典型的なパターンです。1 人か 2 人が何かを試そうと決めるのですが、これを私たちは「ハッカー文化」と呼んでいます。

LXF: OpenID および OAuth 標準に関するあなたの取り組みは、Facebook で今も使われていますか?

DR: 当社のプラットフォームエンジニアリングチームは昨年、OAuth 2.0に注力しました。OAuthは、パスワードを入力せずにウェブサイトへのアクセスに同意できる標準化されたAPI設計パターンを構築します。過去2年間、ほぼすべての新規APIでOAuth 1.0が採用されてきましたが、多くの開発者にとって依然として複雑すぎる状況です。

OAuth 2.0は、APIリクエストがHMAC署名に対応する場合、アクセストークンを保護するためにSSLを使用します。これにより、APIを操作する開発者がHTTPリクエストのすべてのパラメータを正規化、並べ替え、署名する必要がなくなり、複雑さが大幅に軽減されます。

4月にIETFコミュニティと綿密な協力関係を築いた後、f8プラットフォームのグラフAPIの一部としてOAuth 2.0を初めて発表しました。また、f8では、RDFaフレームワークの非常にシンプルなサブセットを使用して、あらゆるWebページをコミュニティグラフの一部として表現するOpen Graph Protocol (OGP) (http://ogp.me)も導入しました。

LXF: Facebookはクローズドソースのサイトだと思われがちですが、オープンソースにどのように貢献していますか?

DR: Facebookのエンジニアは、Apache Hadoopエコシステムに加え、MySQL、PHP、その他のテクノロジーにも積極的に貢献しています。また、memcachedを最新のハードウェアに大規模にデプロイできるようにする数多くの機能も開発しています。

しかし、私たちは単に他のプロジェクトに貢献したり開発ツールをリリースしたりしただけではありません。Facebookで開発されたHipHop、FlashCache、Apache Hive、Cassandra、Thrift、Scribeなど、製品アーキテクチャの中核全体をオープンソース化しました。私たちと同じ規模のWeb企業で、これほどのことを成し遂げた企業は他にないと思います。

LXF: 一方で、企業内でオープンソースを開発する上での難しさは何でしょうか? DR: 企業にとって、「オープンソースは余分な時間や労力を必要としない」という誤解に陥りがちです。しかし、うまくやろうとすれば、確かに時間がかかります。重要なのは、オープンソースライセンスの下でソースコードを共有することと、プロジェクト自体のコントロールを完全に共有することの間の範囲について、合理的な期待を設定することです。

ここで下される決定は、他の企業に対する期待を設定することに比べれば、それほど重要ではないような気がします。

LXF: Facebook クローンの Diaspora についてどう思いますか?

DR:彼らには心からの敬意を抱いています。彼らは自分たちの仕事と、製品の開発方法に情熱を注いでいます。私たちは多くの課題に直面することになるでしょう。オープンソースのソーシャルネットワークは、単なるステータスの更新やサイト間のメッセージ交換にとどまりません。グローバル対応のIDを持ち、世界中のネットワーク上の友人やコンテンツと繋がりながら、誰と会うか、何を共有するかといったコントロールを維持できるのです。

LXF: Facebook は現在、オープン ネットワークを採用していると思いますか?

DR: はい、昨年は大きな進歩を遂げたと思います。OAuth 2.0、HTML5、Open Graph Protocolなど、既存の標準規格を活用しただけでなく、コミュニティと協力して、標準規格が存在しなかった分野でも標準規格の策定に取り組みました。

既存の技術を使っていないとよく批判されますが、最高の標準は努力によって生み出されるものであり、他の手段では決して生み出されません。今年の夏に新しい標準についてお話ししたように、「必要に応じて、それらをいじることを恐れないでください。そうすれば、より良い製品、より良い技術、そして最終的にはより良い標準が生まれるでしょう。」私たちはOAuth 2.0を実装しており、これによってインターネットはより良い場所になるでしょう。

[編集者のおすすめ]

  1. ストールマンの最新インタビュー:Debian、Mono、そしてスマートフォンの自由化
  2. あらゆる場所に対応する50種類のオープンソースストレージソフトウェア
  3. 推奨されるオープンソースBBSフォーラムソフトウェア7選
  4. 3月第1週のシステムアップグレードログ: GlassFishオープンソースアプリケーションサーバー