楽天テクノロジーカンファレンス2008会場
楽天テクノロジーカンファレンス2008会場
[画像のクリックで拡大表示]

 「楽天は営業の会社だと思われているが,中では技術者が懸命に頑張っている」(代表取締役会長兼社長 三木谷浩史氏)---楽天は2008年11月29日,同社の技術を紹介する「楽天テクノロジーカンファレンス2008」を開催した。同社が開発している大規模分散処理Rubyプラットフォーム「fairy」および「Roma」を2009年にオープンソース化することを表明,また「Rails勉強会」,「PHP勉強会」,「Linuxディストリビューション大集合」といったコミュニティのイベントを同時開催するなど,社内の技術をオープン化しコミュニティを支援していく方針を打ち出した。

 カンファレンスではインターネットの発展に寄与した個人などを表彰する「楽天テクノロジーアワード」受賞者の発表も行った(関連記事)。金賞にオープンソース・ソフトウエアの勉強会である「カーネル読書会」を主催する吉岡弘隆氏を選出するなど,ここでもコミュニティを重視する姿勢を鮮明にした。

 最初に登壇した楽天 取締役常務執行役員開発部長杉原章郎は「創業から10年間,楽天はシステムについてあまり公開してこなかった。しかしオープンであることから新しいものが生まれる時代になった。これからは情報をオープンにするとともにコミュニティの後押しをしていきたい」と語った。昨年の同カンファレンスは撮影,録画,録音を禁止していたが今年はそれらをすべて許可しセッションによってはインターネット中継も実施,情報をオープンにする方向に転換した。

「情報の隠蔽は無意味に」まつもと氏

基調講演に登壇したまつもとゆきひろ氏
基調講演に登壇したまつもとゆきひろ氏
[画像のクリックで拡大表示]
Rubyビジネス・コモンズ会長 最首英裕氏
Rubyビジネス・コモンズ会長 最首英裕氏
[画像のクリックで拡大表示]

 楽天はRubyの開発者であるまつもとゆきひろ氏を,同社の研究部門である楽天技術研究所フェローとして招いている。基調講演に登場したまつもと氏は「インターネットの発展により,情報を隠蔽して稼ぐという戦略は無意味になった。“箱庭”はなくなった。かつてはソースコードを抱え込んでいれば,それをCD-ROMに焼いてお金が稼げたが,今はそれができるのはMicrosoftくらいではないか」と指摘。このような状況で技術者として幸せに生きるには「リスクを取ること。言い方を変えるとチャレンジして価値を創造すること」が必要だと述べた。「オープンソースもそのための方法の一つ」(まつもと氏)だという。

 続いてRubyビジネス・コモンズ会長の最首英裕氏が招待講演として登壇した。Rubyビジネス・コモンズは福岡を拠点とするコミュニティ。最首氏はインテグレータのイーシー・ワン 代表取締役社長でもある。最首氏は「10年前,目黒川ぞいにあった会社に時々呼ばれていた。中の人はふらふらになりながら,誰が最初に倒れるんだろうというくらい必死で開発していた」と楽天の創業間もない頃のことを振り返り,「楽天が成功した理由のひとつは“普通の人のため”のサービスを開発したことにあると考えている」と語った。Rubyビジネス・コモンズは技術者だけでなくデザイナなども含めた「普通の人のためのコミュニティ」(最首氏)だという。「Rubyビジネス・コモンズの勉強会に街の電器屋のおじさんが来たことがあった。年配の方だったがインターネット放送局を1日で作ることができた」(最首氏)。Rubyのわかりやすさに負うところが大きい,と最首氏は言う。そして「生産性が向上して時間が余ったら,技術者自身がビジネスのことを,サービスのことを考えよう」と呼びかけた。

Rubyで大規模分散処理を行う「fairy」と「ROMA」をOSS化

 楽天の研究部門である楽天技術研究所は,まつもとゆきひろ氏をフェローに迎えてRubyによる2つの大規模分散処理プラットフォームを開発している。「fairy」と「ROMA」である。

 fairyは大量のデータに対しネットワーク上に分散したマシンで処理を行うためのフレームワーク。クライアントがマスターに対して送ったリクエストを多数のマシンで分散処理し,結果を集約しクライアントに返す。それぞれの処理はフィルタ処理としてRubyで記述する。

Rubyによる分散処理フレームワークfairyのアーキテクチャ
Rubyによる分散処理フレームワークfairyのアーキテクチャ
[画像のクリックで拡大表示]
Rubyによる分散処理フレームワークfairyのサンプルコード
Rubyによる分散処理フレームワークfairyのサンプルコード
[画像のクリックで拡大表示]

 ROMAは大規模分散メモリー・ストレージである。memcachedやAmazonのDynamoの長所を取り入れた楽天版と言える。データをメモリー上にキャッシュしデータベースやディスクへのアクセスを削減することで処理を高速化する。ROMAが稼働するサーバー同士はP2Pで自律的に連携。障害が発生したマシンは自動的に切り離され,稼働中にマシンを追加することもできる。ひとつのデータを複数のマシンに複製して持つことで障害時にデータが失われることを防ぐとともに,ディスクにセーブすることも可能にする。

Rubyによる分散メモリー・ストレージROMAの概要
Rubyによる分散メモリー・ストレージROMAの概要
[画像のクリックで拡大表示]
Rubyによる分散メモリー・ストレージROMAのサンプル・コード
Rubyによる分散メモリー・ストレージROMAのサンプル・コード
[画像のクリックで拡大表示]

 fairyとROMAはともに2009年にオープンソース・ソフトウエアとして公開する予定だ。また,2009年に楽天の実サービスへの適用も計画している。「fairyは楽天のレコメンドサービスと画像処理,ROMAは楽天のサービスでセッション情報のキャッシュに利用することを目指している」(楽天技術研究所 所長 森正弥氏)。