分12ビジネス分野でのRubyの利用が徐々に増えてきている昨今ですが,大規模なシステムとなると,まだ多くの面で不安の声があがっているのも事実です。その中で楽天(⁠株⁠)では,2006年よりRubyに対する取り組みをスタートさせ,現在では1日に数百万アクセスという大規模システムでもRailsが採用されているそうです。今回は,同社執行役員であり楽天技術研究所の所長を務める森正弥氏に,Rubyの採用状況やその経緯,実際に行った検証内容などについてお話を伺いました。御社のシステム開発にRubyを導入することになった経緯を教えていただけますか。主なきっかけは2つあります。ひとつは,2006年下期あたりから楽天技術研究所(楽天技研)の活動を本格化させようという動きが社内でありまして,その中で,どういったことをやっていくか,まつもとさん(注1)とディスカッションを行ったんです。楽天側としては,これから国際展開を強めていくうえで,「⁠日本発の技術で世界へチャレンジする」というまつもとさんの姿勢に弊社の三木谷(注2)が強く共感するものを持っていたようです。一方でまつもとさんからしても,日本を元気にしようという弊社の姿勢に共感してくれたそうで,両者の志に共通するものがあったんですね。使いたいという声が多数挙がっていました。前述のまつもとさんとの関係もあり,それならRubyを使って実験的に何かサービスを作ってみようということになったんです。その話がまとまったのが2006年11月で,2007年3月に最初のサービスをリリースしました。その試験期間では,どういう点を重視してRubyの検証を行ったのでしょうか。ポイントは4つあります。弊社の場合はPHPかJavaでの開発がメインですので,その2つの言語については共通ライブラリなどがたくさん作られていました。いう過去の資産やノウハウを利用できるぶん,開発効率では有利なんです。Rubyでも同じようにできるかというのが1点。2つめはセキュリティです。開発した場合,本当にテスト段階でセキュリティホールやバグを発見できるのか,と。3つめはパフォーマンス。どの程度の規模のシステムまで耐えられるのか未知数だったので,やはりこの点は懸念がありました。4つめは運用管理面の問題です。社内で使っているさまざまな運用監視ツールが,Railsで作ったサービスに対応できるかどうか。対応できない場合,専用のツールを作らなければならないので,運用面で不便が生じてしまいます。検証の結果,4つのポイントは無事通過できましたか。生産性については,一応の目安として工数とソースコード量の比較を挙げています。これは,およそ1.3倍効率が上がったと当時は言われていました。セキュリティについては外部の監査を無事通過しています。いう理由でのマイナスな要素は特に見つかっていません。パフォーマンスについては,トランザクションしだいなので一概に評価するのは難しいですね。最初に実験的に開発したサービスもそれなりにトランザクションは多かったんですけど,特に問題にはなりませんでした。今では日に200万とか,多いものだと600万くらいのトランザクションが発生するシステムで使っていますが,すべて問題なく稼動しています。運用管理については,当時の段階ではまだ機が熟してくるのを待つ段階だという判断でした。一応社内のツールでも対応できないことはなかったんですが,まだ不十分だということで。全体としてはRubyでいけるという手応えを得たので,社内向けの共通ツールを開発するチームを設けるなど,本格利用に向けた取り組みをスタートさせました。現在,御社のサービスの中では何%くらいがRubyで作られているんでしょうか。Javaが40%,PHPが40%で,ほかにもいろいろな言語を使っているので,それが残りの15%くらいといった感じです。御社で開発に使用する言語として満たすべき要件みたいなものは決まっているのでしょうか。これという明確なものはないです。弊社の場合,基本的には技術をセレクトする主導権がエンジニアにあるんですよ。開発者が使いたいと思っていることが大前提ですね。いうのも,インターネットサービスというのは一度作ってそれで終わりというわけではないじゃないですか。リリースしたあとにも,サービスの成長やユーザのニーズなどに合わせて保守していかなきゃならない。弊社の考え方は「サービスを作る」ではなく「サービスを育てる」ですので,ちゃんと保守ができるかどうかという点が非常に重要です。エンジニアが保守したいと思う言語が一番適切なんです。その中で,規模が大きいものや社内での利用が増えたものなどについては,共通ライブラリなどを作って生産性を上げるようにしています。結局,どんな技術が適しているかというのはエンジニアが一番よく知っているんですよ。プログラミング言語にしても,言語ごとの特性をよくわかってますから。実際にRubyを導入してみての社内での反応はいかがでしたか。Ruby使いたいという要望が多かったので,仕事で使えてうれしいという声はよく聞きますね。それから,2007年というのは楽天の創業10周年にあたるんですね。それで開発の現場でも,10年の節目に何か新しいことをやりたいという機運が高まっていました。新しい言語を取り入れてチャレンジしよう,と。結果として,自分たちで始めたプロジェクトがうまくいったので,大きな自信につながったと思います。注1)Rubyの作者であるまつもとゆきひろ氏。2007年5月に楽天技術研究所のフェローに就任している。(⁠株⁠)執行役員であり,楽天技術研究所の所長を務める森正弥氏。「Rubyのアドバンテージとは何か,Rubyでなければできないことは何か。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。