コラム

Ruby biz グランプリ2018 特別賞受賞記念 〜Supership CTO 山崎が「ScaleOut Ad Platform」誕生の裏側を語る〜

2018年12月、プログラム言語・Rubyの特徴を活かして開発されたサービスを表彰する「Ruby biz Grand prix 2018」(主催:Ruby biz グランプリ実行委員会)にて、Supershipの運営する各種アドプラットフォーム「ScaleOut」「Ad Generation」「AppAmore」の共通開発基盤として構築された「ScaleOut Ad Platform」が、過去最多のノミネート数の中「特別賞」を受賞いたしました。

参考:Supershipのアドプラットフォーム基盤「ScaleOut Ad Platform」が、 「Ruby biz Grand prix 2018」において「特別賞」を受賞
https://supership.jp/news/2018/12/14/3055/

▼表彰式の様子

受賞を記念し、今回は、「ScaleOut Ad Platform」の原型となるシステムを開発し表彰式で登壇したSupership 取締役CTO 山崎 大輔に、Rubyとの出会いや、サービス誕生時の裏側を語ってもらいました。

 


プログラム言語・Rubyとは?

「Ruby」は、まつもとゆきひろ氏(通称・Matz)により開発され、1995年に公開されたプログラム言語です。

参考:Ruby コミュニティのメンバー運営サイト
https://www.ruby-lang.org/ja/about/

「美しく芸術的な言語で、 なおかつ便利で実用的」としてファンの間で親しまれており、その使いやすさと、柔軟性の高さから国内外で人気を集めています。「Twitter」や「Airbnb」「GitHub」などグローバルの大手サービスにもRubyが活用されています。

2012年には、国産の言語で初めて国際規格(ISO/IEC 30170)として承認されるなど、まさに「日本が世界に誇るプログラミング言語」といえます。

Ruby biz Grand Prixについて

「Ruby biz Grand prix」は、「プログラミング言語 Ruby の特徴を活かして、新たなサービスを創出しビジネスを継続的に展開している事例」を表彰するもので、Rubyの画期的な活用法や、言語の普及啓発への貢献、さらに「事業の将来性」など、ビジネス面に関する項目も評価の対象となっています。

表彰式の様子

2015年から開催されており、4回目となる昨年は過去最多となる40事例がエントリー。
その中でSupershipの「ScaleOut Ad Platform」は、グランプリに次ぐ「特別賞」を受賞しました。

「ScaleOut Ad Platform」は、アドプラットフォーム「ScaleOut(スケールアウト)」、媒体社向けのアドプラットフォーム「Ad Generation(アドジェネレーション)」、アプリ専門のマーケティングアドプラットフォーム「AppAmore(アップアモーレ)」の各種広告配信システムを支える共通開発基盤として構築されたシステムです。

あわせて月間4,250億にものぼるリクエストを捌くなど、大規模なトラフィックにも耐えうる構成になっており、ダッシュボードや、配信設定を反映するスケジューラなどにRubyが用いられています。

Rubyだったからこそ、1人でも作りきれた

ScaleOut Ad Platformの開発を始めた2006年、山崎はそれまで勤めていた企業を退職。

国内市場に適したアドプラットフォームの提供に向け、まずは自分一人だけでシステムを開発する必要があった山崎にとって、Rubyを選んだ決め手は“使い勝手の良さ”でした。

Supership 取締役CTO 山崎 大輔

「配信システムの構築は元々得意だったのですが、管理画面を作るのはあまり得意ではなかったので、一人でも効率的に作れる良いフレームワークを探していました。作り始める前に、PerlやJavaやPHPなどいくつかの言語から選定する中で、一番簡単にインストールできてすぐに使えるようになったのが『Ruby on Rails』(RubyでWebアプリケーションなどを開発するためのフレームワーク)でした。

特に『Active Record』と言われる、データベースを取り扱うためのライブラリがとにかく使い勝手が良くて、プログラムを書くための労力が20分の1ほどになった印象があります。管理画面を作るのに3ヶ月、システム全体では半年ほどかかったのですが、Rubyでなかったら1年ほどかかっていたかもしれないですね」

「たった1人で開発をしていた時は…だいぶ孤独でしたね。もうあまりやりたくないなと…。今でも思い出すとちょっと嫌ですね(笑)」

そうした“孤独”の中で開発を続けることができた背景には、言語そのものの使いやすさ以外の、Rubyならではの利点がありました。

「当時は、東京のあちこちでRubyのコミュニティが勃興していた時期でした。TwitterやFacebookは日本ではほぼ普及していなかったのですが、『Rails Chat』というチャットがあり、そこで彼らとコミュニケーションを取っていました。そこから勉強会に発展するなどオフラインでの繋がりも持つことができたので、救われましたね。

また、のちのちスケールアウト社(当時)に加わってくれたエンジニアの多くも、当時のコミュニティで知り合ったRubyユーザーだったので、そういった意味でもコミュニティの存在は大きかったです」

「ScaleOut」という名前に込められた理念

ScaleOut Ad Platformは、広告配信システムそのものではなく、「コンテンツ配信のための土台となるシステムを構築し、その上に広告配信等の各種アプリケーションを載せる」という構造になっています。

この構造により、新たな広告の手法が登場しても柔軟な機能拡張に対応することができています。

「開発当初から、近い将来動画広告などの新しい手法が出てくることは予想していました。またデジタル広告を配信する媒体も、ゲームアプリやOOH(Out of home:交通広告や屋外広告など、家庭以外の場所で接触するメディアによる広告の総称)など多種多様になるだろうということも予想していました。

当初は、単純にバナー広告だけを配信するシステムとしてScaleOut Ad Platformを作るという選択もあったのですが、せっかく作るのであれば、汎用的な広告配信システムとして10年20年戦えるシステムを作ろう、ということで、未来にどんなタイプの広告配信が必要になっても対応できる構造で設計しました。Ruby言語の持つ柔軟性のおかげで、現在でも機能拡張や改善などタイトなスケジュールで対応しなければいけないケースでもフレキシブルに対応できています」

この「コンテンツ配信のための土台となるシステムを作る」考え方は、「ScaleOut」という社名(プロダクト名)にも現れていました。

「私の考え方として『小さく作り、少しずつ育てて大きくする』というものがあるのですが、それはこの『ScaleOut』という名前にも現れています。私が企業で広告配信を担当していたときは、国内で最大数のアクセスを捌いていたといっても過言ではないほどの量を扱っていたのですが、そういった大規模なシステムを作るための手法は2つあります。
まず1つは、高性能で巨大なコンピューターを用意して、その能力が足らなくなったらさらに高性能なコンピューターを導入するという、『スケールアップ』と呼ばれる手法。もう1つが、比較的安価なコンピューターを大量に並べて、それらに効率的に処理をさせるというもので、これを『スケールアウト』と呼びます。

100倍の処理能力がある高性能なコンピューターは、安価なものと比べて価格が100倍ではなく、1000倍ほどになります。その点を考えると、安価なコンピューターを100台並べて100倍にするほうが良いのですが、それを達成するためには、100台を管理するシステムと、それを分散させて処理をさせるシステムをコンピューターに導入する必要があります。

管理は小さく、処理は分散させる』ということなのですが、その思想は実にインターネット的ですよね。インターネットは、小さなネットワークが大量にあり、小さな管理手法だけが存在しますが、それでも巨大なシステムを構築することができています。これを踏まえると、スケールアウトという手法は、スケールアップよりも効率的にいいビジネスを生み出すことができる手法だろうと考え、ScaleOutという名前を社名とプロダクト名として採用しました」

私たちとRubyの“これまで”と“これから”

開発から12年間、その技術力を外部にアピールする機会がなかった「ScaleOut Ad Platform」ですが、この度満を持して「Ruby Biz グランプリ 2018」への応募を行い、特別賞を受賞しました。
今回の受賞について、山崎は「これまでの積み重ねが評価された」と喜びを表します。

「Ruby on Railsがリリースされてから14年ほど経つのですが、ScaleOutでは12年ほど前から使っており、かなり初期からのユーザーでした。初期のRubyやRailsのコミュニティがあって、その人たちを全員巻き込んでScaleOutを作ったという経緯があったので、そういったものの集大成としてRuby Biz グランプリで賞をいただいたという認識です。そういった意味で受賞は本当に嬉しかったですね」

「もう1つ嬉しかったのは、私の大学の先輩でもある、Rubyの生みの親のMatzさんにScaleOutを知っていただいたことでした。もともと存在はご存知だったそうですが、今回の受賞をきっかけに、改めてしっかりとどういったサービスかを知っていただくことができたのは嬉しかったですね」

表彰式で挨拶に立つ山崎

開発から12年、Rubyを活用した広告配信システムの基盤としてSupershipの事業を支えてきた「ScaleOut Ad Platform」。

今回の受賞を機に、Rubyやそのコミュニティへの貢献にもより力を入れていきたいと山崎は語ります。

「まず『ビジネス面で成功し続ける』ということ。ちゃんと使って、ビジネスユースでも十分成立する言語であるということをしっかりと示し続けることが大事だと思います。コミュニティへの直接的な貢献という点では、私たちはまだまだ取り組めていないので、例えば勉強会を開くとか、コミッターを雇い続けるとか、そういったことは積極的にしていきたいですね」

最後に、Rubyの習得を目指すエンジニアへのアドバイスも聞きました。

「この業界は、新しい技術や手法が次々と出てくるので、エンジニアはRubyに限らずキャッチアップをし続ける必要があるのですが、私がよくやっているのが“いま世に出ているプログラムのコードを読む”ことです。

Rubyをはじめとする、長期間にわたって存続しているOSS(オープンソースソフトウェア)言語には、“長い風雪に耐え続ける”ためのアーキテクチャが内包されています。そうしたものを、コードを読むことで学ぶことができます。

反対に、新興のOSSにも、既存の問題に対する解決策が込められているので、その差分は私たちに何かしらの示唆を与えてくれるものになっています。長く存続しているものと新興のもの、それぞれのプログラムのコードを読むことが、Rubyに限らず、エンジニアとして成長するための近道になるのではないでしょうか」

Supership採用サイト

Supershipは、「新たな価値を共創する世界的なテクノロジー企業群になる」というグループビジョンのもと、大企業のリソースを活用しながらスタートアップならではのスピード感で急成長をする「ハイブリッドスタートアップ」です。
世界的なデータテクノロジーカンパニーを一緒に目指す、Superな仲間を募集しております!

PAGETOP