gihyo.jp » DEVELOPER STAGE » 一般記事 » インタビュー:[楽天]Ruby活用事例とROMA,Fairy

インタビュー:[楽天]Ruby活用事例とROMA,Fairy

この記事を読むのに必要な時間:およそ 4 分

ビジネス分野でのRubyの利用が徐々に増えてきている昨今ですが,大規模なシステムとなると,まだ多くの面で不安の声があがっているのも事実です。その中で楽天(株)では,2006年よりRubyに対する取り組みをスタートさせ,現在では1日に数百万アクセスという大規模システムでもRailsが採用されているそうです。今回は,同社執行役員であり楽天技術研究所の所長を務める森正弥氏に,Rubyの採用状況やその経緯,実際に行った検証内容などについてお話を伺いました。

Ruby採用のきっかけは"志の一致"

Q: まず,御社のシステム開発にRubyを導入することになった経緯を教えていただけますか。

A: 主なきっかけは2つあります。ひとつは,2006年下期あたりから楽天技術研究所(楽天技研)の活動を本格化させようという動きが社内でありまして,その中で,どういったことをやっていくか,まつもとさん(注1)とディスカッションを行ったんです。

楽天側としては,これから国際展開を強めていくうえで,「日本発の技術で世界へチャレンジする」というまつもとさんの姿勢に弊社の三木谷(注2)が強く共感するものを持っていたようです。一方でまつもとさんからしても,日本を元気にしようという弊社の姿勢に共感してくれたそうで,両者の志に共通するものがあったんですね。

もうひとつのきっかけは,当時ちょうどRails の人気がではじめたころで,弊社のエンジニアからもRails を使いたいという声が多数挙がっていました。前述のまつもとさんとの関係もあり,それならRubyを使って実験的に何かサービスを作ってみようということになったんです。その話がまとまったのが2006年11月で,2007年3月に最初のサービスをリリースしました。

Q: その試験期間では,どういう点を重視してRubyの検証を行ったのでしょうか。

A: ポイントは4つあります。1つは生産性です。弊社の場合はPHPかJavaでの開発がメインですので,その2つの言語については共通ライブラリなどがたくさん作られていました。そういう過去の資産やノウハウを利用できるぶん,開発効率では有利なんです。ですので,Rubyでも同じようにできるかというのが1点。

2つめはセキュリティです。Rails で開発した場合,本当にテスト段階でセキュリティホールやバグを発見できるのか,と。

3つめはパフォーマンス。Rails がどの程度の規模のシステムまで耐えられるのか未知数だったので,やはりこの点は懸念がありました。

4つめは運用管理面の問題です。社内で使っているさまざまな運用監視ツールが,Railsで作ったサービスに対応できるかどうか。もし対応できない場合,専用のツールを作らなければならないので,運用面で不便が生じてしまいます。

Q: 検証の結果,4つのポイントは無事通過できましたか。

A: 生産性については,一応の目安として工数とソースコード量の比較を挙げています。これは,およそ1.3倍効率が上がったと当時は言われていました。

セキュリティについては外部の監査を無事通過しています。その際にも,Rails だからという理由でのマイナスな要素は特に見つかっていません。

パフォーマンスについては,トランザクションしだいなので一概に評価するのは難しいですね。ただ,最初に実験的に開発したサービスもそれなりにトランザクションは多かったんですけど,特に問題にはなりませんでした。今では日に200万とか,多いものだと600万くらいのトランザクションが発生するシステムで使っていますが,すべて問題なく稼動しています。

運用管理については,当時の段階ではまだ機が熟してくるのを待つ段階だという判断でした。一応社内のツールでも対応できないことはなかったんですが,まだ不十分だということで。

全体としてはRubyでいけるという手応えを得たので,社内向けの共通ツールを開発するチームを設けるなど,本格利用に向けた取り組みをスタートさせました。

Q: 現在,御社のサービスの中では何%くらいがRubyで作られているんでしょうか。

A: おおよそですが,5%くらいですかね。Javaが40%,PHPが40%で,ほかにもいろいろな言語を使っているので,それが残りの15%くらいといった感じです。

Q: 御社で開発に使用する言語として満たすべき要件みたいなものは決まっているのでしょうか。

A: 特にこれという明確なものはないです。弊社の場合,基本的には技術をセレクトする主導権がエンジニアにあるんですよ。ですので,まず開発者が使いたいと思っていることが大前提ですね。

というのも,インターネットサービスというのは一度作ってそれで終わりというわけではないじゃないですか。リリースしたあとにも,サービスの成長やユーザのニーズなどに合わせて保守していかなきゃならない。弊社の考え方は「サービスを作る」ではなく「サービスを育てる」ですので,ちゃんと保守ができるかどうかという点が非常に重要です。だから,エンジニアが保守したいと思う言語が一番適切なんです。

その中で,規模が大きいものや社内での利用が増えたものなどについては,共通ライブラリなどを作って生産性を上げるようにしています。結局,どんな技術が適しているかというのはエンジニアが一番よく知っているんですよ。プログラミング言語にしても,言語ごとの特性をよくわかってますから。

Q: 実際にRubyを導入してみての社内での反応はいかがでしたか。

A: もともとRuby使いたいという要望が多かったので,仕事で使えてうれしいという声はよく聞きますね。

それから,2007年というのは楽天の創業10周年にあたるんですね。それで開発の現場でも,10年の節目に何か新しいことをやりたいという機運が高まっていました。新しい言語を取り入れてチャレンジしよう,と。結果として,自分たちで始めたプロジェクトがうまくいったので,大きな自信につながったと思います。

注1)
Rubyの作者であるまつもとゆきひろ氏。2007年5月に楽天技術研究所のフェローに就任している。
注2)
楽天(株)の現代表取締役会長兼社長の三木谷浩史氏。

楽天(株)執行役員であり,楽天技術研究所の所長を務める森正弥氏。
「Rubyのアドバンテージとは何か,Rubyでなければできないことは何か。それを意識し,実現していくことが大切です」

楽天(株)執行役員であり,楽天技術研究所の所長を務める森正弥氏「Rubyのアドバンテージとは何か,Rubyでなければできないことは何か。それを意識し,実現していくことが大切です」

コメント

コメントの記入

G-CLOUD

ピックアップ

エンジニアパワーアップ講座 ~システム基盤を活用するための基礎知識~

イマドキのエンジニアに要求されるさまざまな知識や能力。これらを効率よくキャッチアップしていくヒントをいろいろな視点から取り上げます。

LinuxCon Japan/ Tokyo 2010の歩き方

9月開催「LinuxCon Japan/ Tokyo 2010」の見どころと楽しみ方を,メインスピーカーの皆さんに自ら紹介していただきましょう。

自分で考えた家が現実に!? ~「3DマイホームデザイナーLS3」で実現する,普請道楽のススメ

「3DマイホームデザイナーLS3」を使えば,パズル感覚の簡単操作で理想の住まいを立体的にシュミレートすることができます。

手軽に使える専用サーバ「さくらのマネージドサーバ」を徹底チェック

1台のサーバを占有して使うことができる「さくらのマネージドサーバ」に新たに加わった「Core 2 Duoプラン」の特徴と魅力をお伝えします。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた情報や魅力を多角的に紹介します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

ただのメモでは勿体ない!Evernoteに人生を記憶しよう

これからEvernoteをはじめたい,もっとEvernoteを使いこなしたいという方向けにEvernoteの基本的な使い方から応用技,情報整理術やライフログなどの具体的な運用方法まで解説していきます。

Windows Phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows Phoneアプリケーションの開発をしてみませんか?

機能と技術からわかる!システム基盤の実力

この連載では日立製作所のSOAプラットフォーム「Cosminexus(コズミネクサス)」のホワイトペーパーから,システム基盤を構成する技術とその考え方を紹介していきます。

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Google Chrome版Firebug:デベロッパーツール取扱説明書

WebKitのWebInspector(デベロッパーツール)は飛躍的な進化を遂げています。多機能化するデバッガーの使い方とノウハウを詳細に解説します。

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

memcachedの活用と運用 実践編

本特集では,memcachedを利用している方に向けて,実践的なテクニックを伝授します。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント