「並列化/分散化」などの実際のスケーラブルな技術については、さまざまな企業が取組んでいます。「Hadoop」はYahoo!やAmazonが利用する大規模データの並列処理技術で、「ROMA」は楽天が開発した分散化技術であることを、ここで初めて知りました。
ただ、お話を聞くうちに「そもそも、なぜこのような分散化/並列化の技術が必要になってきたのだろうか?」という疑問がわいてきました。つい最近まで、そのような話題は全然聞かなかったからです。
勉強会の様子 |
その疑問に対する答えも、きちんとお話ししていただけました。「世の中は、いままさに『情報爆発』が起きようとしています」と高見さんはおっしゃいました。「情報爆発」とは、インターネット上にある情報量が爆発的に増える現象のこと。実際、楽天の会員数は現在5000万人を上回っています。楽天以外でも1000万人超の会員を持つメガサービスがどんどん登場してきています。
さらにユーザー1人ひとりが発する情報量も一気に増えています。ブログやTwitterなどの個人による情報発信、オンラインでの買い物履歴、掲示板への書き込みなど、ここ数年の間にインターネット上に存在する情報量は一気に増えました。今後もその勢いはますます強くなるでしょう。なるほど、クラウドの技術開発が盛り上がるのも納得です。
後半は、楽天のクラウドに対する取り組みについてお話ししていただきました。面白いと思ったのは「楽天ジャングル」という制度です。楽天ジャングルでは、業務の10%を自分の興味のある研究に充てられるそうです。楽天ジャングルから生まれてきた技術・アイデアについては、楽天テクノロジーカンファレンス2009で技術者の皆さんが発表していました。 面白いアイデアや技術がたくさんあります。今後は、iPhoneアプリを数多くリリースしていくようです。
最後に、楽天が開発したデータベース分散化技術「ROMA」について学んだことを書きます。
エンジニアライフ コラムニスト募集中! |
あなたも@ITでコラムを書いてみないか 自分のスキル・キャリアの棚卸し、勉強会のレポート、 プロとしてのアドバイス……書くことは無限にある! コードもコラムも書けるエンジニアになりたい挑戦者からの応募、絶賛受付中 |
「ROMA」は「キーバリューストア(KVS)」と呼ばれる方式を採用しています。MySQLのようなリレーショナルデータベース(RDB)とは異なる方式で、簡単にいうと「キー」と「バリュー」のカラムだけを持った2列の長いテーブルのことを指します。この「キー」と「バリュー」の組を複数のデータベースに分散配置することで、アクセスを高速化させることが可能になるのだそうです。
「ROMA」はRubyで書かれていて、memcachedと互換プロトコルを持ちます。高速化以外のメリットは2つあります。まず、サーバを増やすことで容易にスケールアウトでき、複数のサーバで同じデータを持っておくことによって障害耐性にも優れていること。そして、独自コマンドやストレージ実装をRubyで追加、差し替えるといった柔軟性を持っていることです。ただし、デメリットもあります。基本的にデータは取り出すだけのもので、複雑な計算などをデータベース上で行うことは苦手なのです。次世代を担う僕たちは、RDBとKVSのどちらの知識も必要で、状況によって適切に使い分けるスキルが必要になってくるのですね。いまからもう少し勉強しておいた方がよさそうです。
最後の10分は質問の時間に充てられました。さすが情報学部の学生、質問のレベルが高かったです。ここでは、僕のした質問を紹介します。
――「『情報爆発』がますます進んだ場合、データが蓄積される異常な速度に解析処理(データマイニング)が追いつかないのではないか? そうなると、解析時にアクセス数や訪問者数などといった、単純な指標しか扱えなくなってしまうのでは?」
僕が気になっていたのは「データをいかに扱うか」の重要性が増しているのにもかかわらず、それができない状況にどんどん陥っていくのではないか? ということでした。もしそうならば、高度なデータマイニング技術なんて必要なくなってしまうのではないでしょうか。この質問に対する答えは、以下のようなものでした。
高見さん:「これから重要になってくるデータマイニング技術は、単純なロジックながら非常に効果的な結果をもたらす技術、もしくは少ない時間で処理するためにうまく『データを間引く』技術などです。また、今後は蓄積されたデータを解析するというよりは、リアルタイムで入ってきたデータを解析して結果を反映していくようなストリームマイニングの技術が主流になってくるでしょう」
なるほど! やはり、今後はデータマイニングの技術向上が必要不可欠のようです。
勉強会の後は、楽天13Fにあるカフェでの楽天の若手社員さんたちを交えた座談会がありました(楽天のカフェでは、朝と昼はなんと無料のバイキングが出されるとのこと。すばらしいです)。座談会には、「楽天技術研究所」「国際サービス開発」「楽天市場サービス開発」「サービスインフラ部門」「開発人材グループ」から社員さんがいらしてくれて、就職に関する悩みから技術の話までざっくばらんにお話することができました。
懇談会の様子 |
――「エンジニアの配属部署として、楽天市場以外のサービスでどのようなものがありますか?」
A:「楽天は楽天市場以外にも多数のサービスを展開しています。楽天が目指すサービスは楽天経済圏――つまり楽天のページを開けばそこに全部あり、ユーザーが自由に何度でも横断できる世界です。そのために楽天市場のほかにInfoseekやデリバリー、パッケージメディア、競馬、みん就、銀行、証券のサービスを展開しています。エンジニアは、これらのさまざまな部署から楽天のサービスをより豊かにしていくことができます」
――「部署間を行き来することは可能なのでしょうか?」
A:「もちろん可能です。むしろわたしたちは、1つのところにおとなしくとどまっていることを良しと考えていません。優秀な人材はさまざまな部署を渡り歩いて、たくさんの経験をしてほしいと考えています。そのために、自ら転属をオファーできる制度が備わっています」
――「楽天の研修制度とはどのようなものですか?」
A:「楽天の研修制度では、エンジニアでも営業の経験をしてもらうなど、さまざまな部署をローテーションしていただきます。その中で個人の適性に合った部署を見つけてもらいます。もちろんエンジニアとしての研修もしっかりと行います。適宜テストを行い、おのおののスキルに見合った演習を行っていただきます。このような研修ですので、楽天の入社時点で、高いプログラミングスキルを持っている必要はありません。いままでプログラミングをやってこなかった人でも、楽天に対する熱い思いがあれば、大いに活躍していけます」
特に学生の方々は、楽天技術研究所で働く方のお話に興味津々のようでした。最後に、座談会で感じたことを述べさせていただきます。
まず、全体を通して感じたのは、いままでプログラミングを学んでこなかった学生の不安です。最近は「高度なテクノロジーを持つ楽天」というイメージが強くなっていて、ITスキルに自信がない学生は尻込みしてしまっているのかも……と思いました。楽天は「楽天市場」というサービスを売りにする会社です。だから、スキルはなくても楽天市場が好きな人、楽天市場を通じて人々の暮らしを豊かにしたいと思っている人はとても楽しく働けるでしょう。逆に、スキルはあっても楽天市場というサービスにあまり興味がない人には大変ではないのでしょうか。
また、楽天の風土で良いなと感じたのは、「同じところにとどまることを良しとしない」風土です。ITエンジニアには、楽天市場のさまざまな部署を経験して、幅広い知識を身に付けてもらいたいとのこと。実力のある社員ほど、同じところにとどまらず、いろいろな部署がその社員を引き抜いていってびしばしと鍛えていくそうです。
1時間があっという間に過ぎ、アンケートを書いて解散となりました。非常に実りのあるイベントでした。おそらく参加した学生は皆同じ気持ちでしょう。今後も学生向けのイベントも積極的に行っていってほしい、と切に思います。
非常に濃いイベントでした。参加された意識の高い学生の皆さまには大変刺激を受けました。志を同じくする同士に出会えるのも、このようなイベントのいいところですね。今後ともこのようなイベントがあれば積極的に参加し、仲間に出会い、企業を深く知り、ITテクノロジーについて学んでいきたいと強く感じた1日でした。
記者プロフィール | ||
|
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。