インタビュー:[楽天]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でなければできないことは何か。それを意識し,実現していくことが大切です」

コメント

コメントの記入