Vol.48

月間数百億のトラフィックを捌くSSPシステムを、アルバイトから入社した学生エンジニアがゼロから開発できた5つの理由

  • このエントリーをはてなブックマークに追加

アドテク分野の新たな潮流に、SSP(Supply Side Platform)と呼ばれる広告枠を売るメディア側の収益を最大化することを目指した事業領域がある。北米市場の盛り上がりを参考に、日本でも2011年ごろから徐々に市場が立ち上がってきた。

その草分け的存在といえるのが2010年創業のジーニーだ。

SSPは、広告を配信する側を束ねるDSP(Demand Side Platform)と対になる言葉で、メディアサイトを訪れたユーザーの情報をDSPに提供し、そのユーザーと広告枠をめぐるリアルタイムオークションを開催、落札した広告主の案件が枠に表示される仕組み。メディア側には収益増、広告主側は最適なターゲティングができるメリットがある。

この一連の流れは0.1秒前後で行われる。入札事業者の数が多ければ多いほど1インプレッションごとの価格が高くなる可能性が上がるため、SSPのシステムに求められるインフラコストは膨大だ。驚くべきことに、2011年にジーニーにおいてこのシステムをゼロから作った中心的人物は、早稲田大学修士1年のアルバイト学生(当時)だったという。

株式会社ジーニー プラットフォーム開発部 徐暁雋氏

株式会社ジーニーのプラットフォーム開発部に所属する徐暁雋氏

今日まで続くシステムの生みの親と言うべき徐暁雋氏はその後、2013年に新卒1期生として正式にジーニーに入社。現在は最重要といっていいインフラ部門のマネジャーを務めている。

その後もシステムの大幅刷新やインフラアーキテクチャの改変など、重要プロジェクトの中心には決まって彼の存在がある。

SSPは立ち上がって間もない事業領域であり、開発の参考になるような情報が十分に出尽くしているとは言いがたい。それは2011年当時であればなおさらのことだ。そんな状況においてなぜ、二十歳そこそこのアルバイト生はチャレンジングな開発を成功に導くことができたのか。

インタビューから浮かび上がった5つの理由を、徐氏とジーニーのSSPシステム開発の歴史とともに紹介しよう。

1:未知の領域でも「適切に」ググれば何とかなる

ジーニーのSSPシステムをゼロから開発した当時、徐氏はまだ学生アルバイトの身だった
ジーニーのSSPシステムをゼロから開発した当時、徐氏はまだ学生アルバイトの身だった

徐氏がアルバイト生としてジーニーに加わったのは、リクルート出身である代表の工藤智昭氏が起業して2年目のこと。事業の方向性を模索していた創業1年目を経て、SSPを事業の中心に据える方針を固めたタイミングだった。

工藤氏と徐氏は、同じ早大情報理工学部の上田研究室の出身。徐氏はこの研究室で、「高信頼のソフトウエア開発」を支える基礎技術としての並列計算の研究を行っていた。開発陣容拡大のために出身研究室を訪れた工藤氏に、インターン生としてスカウトされたのだった。

徐氏は当時の状況を次のように振り返る。

「そのころは正真正銘のスタートアップという感じで、開発部門の社員は2人しかいませんでした。システム的なものはほぼ何もなかったというのが正しい。私を加えた3人で、ゼロから開発する感じでしたね」

徐氏は、残り2人のメンバーとともに、理想のシステムを形にするために必要なことは、エンジニアとして何でもやった。開発言語はPHP。オープンソースのソフトウエアを使い、突貫工事で開発を進めた。

日本では先例のない領域の開発であるから、自分なりに考えることが求められる手探りの開発だった。しかし徐氏は意外にも、大抵の分からないことは「ググる」ことで何とか乗り切れたと主張する。

もちろん、闇雲に検索すれば良いわけではない。「英語で」、そして「適切に」使うことがポイントだ。

「多くの人は分からないことに直面してGoogleで調べる際に、おそらく検索結果ページの最初の1、2ページくらいしか読まないと思いますが、僕は極端な場合だと30ページ目くらいまで目を通す。中には、もっともらしいことが書いてあるように見えて、本当は間違っているページもたくさんあります。そういうページを比較検討して、確からしいことを見つけていく。そこまで徹底してやるのであれば、Google検索だけでも相当なことが分かるものです」

2:ライブラリやアーキテクチャの選定に1年かけた

ただし、初期のシステムには「オープンソースで作ったことの最大の欠点」が表れていた。

「把握できていないコードの量が多すぎて、トラブルが起きた時にその原因を見つけるのに多大な工数を取られていました。2013年ごろには開発メンバーも10人弱まで増えていましたが、開発しているのはその半分で、残りの半分はトラブル対応要員というのが実状。なかなか開発スピードが出なかったですね」

そこで、既存システムの小さな改善を繰り返すのではなく、一からシステムを作り直すという決断に至った。開発言語もPHPからC++に。運用コストを下げるだけでなく、パフォーマンスの向上も図った。

徐氏は新卒ながらこの時もリーダーを務め、仕様を考えるところから関わった。

重要かつ大きなプロジェクトではあったが、実装に掛かったのは2カ月程度だという。特徴的なのはむしろ開発に入る前の下準備で、使うライブラリやアーキテクチャの選定に、1年という長い期間を費やした。

「良いモノを作るためには、無駄を極力省き、最適なライブラリやアーキテクチャで開発することが必要と考えました。マルチスレッドもイベントドリブンも、C言語で考えられるものは一通り試したと思う。その結果、レイテンシーは100倍から1000倍は改善されたのではないでしょうか。一般的に、同じロジックでPHPからC++に書き換えると30倍程度パフォーマンスが上がると言われていますから、その数字と比較しても、かなりの効果が出たと言えるだろうと思います」

実装後は、さまざまな種類のテストにも開発期間と同じ2カ月という時間を割いている。スタートアップでありながら、ライブラリの選定やテストにこれだけの期間を割ける開発現場はそうないのではないか。ジーニーにそれができた理由は何だろう。

「一番は、社長の工藤が現場レベルの問題意識を持っていることだと思います。普通の会社であればシステムが落ちないようにするためのリニューアルで終わってしまうところ、ウチは世界で戦えるレベルにしたいという前向きな理由からリニューアルに取り組んだ。未来のプラスの面に目を向けていたからこそ、あれだけの時間を注ぐことが許されたのだと思います」

3:「どの」技術か以上に「なぜ」その技術なのかを考える

どの技術を使うか以上に「なぜ」その技術を使うのかが大事と徐氏は言う

どの技術を使うか以上に「なぜ」その技術を使うのかが大事と徐氏は言う

リニューアルプロジェクトより少し前の2012年には、サーバをAWSから各地にデータセンターを置く体制に切り替えるプロジェクトにも携わった。今日まで続くサーバのアーキテクチャを考えたのも徐氏だ。

世の多くの優秀なエンジニアと同様、徐氏も技術感度が高い。だが、最近では「使う技術は極論、何を選んだって構わない」と考えるようになったという。

どの技術を使うか以上に重要だと考えているのは、なぜその技術を選ぶのか、その意味を知ることだ。

「例えばサーバのアーキテクチャを決める時でも、なぜロードバランサを置くのかを考えなければならない。『流行っているから』、『みんなが使っているから』ではダメ。ロードバランサ以外の選択肢は本当にないのか。その技術が会社の置かれている状況や文化に合っているのかどうかを考えることが必要です」

その点では、研究室時代の経験は今に活きていると徐氏は言う。

「自分の場合、並列計算の研究をするのにサーバを扱っていた経験があったので、例えばロードバランサを置いたらトラフィックをいくらまで捌けるのかという数字をある程度計算することができた。それはやはり経験のない人には難しいことですから、研究が役に立ったなと思うところではあります」

4:分からないことを学ぶのを苦と思わない気質

エンジニアの人数は現在では30人を超えるまでに増え、徐氏は1月からマネジャー職を務めている。

目下の悩みは、チーム内でタスクの偏りをなくして不公平感をいかに解消するか、スキルアップの時間をどう捻出して会社全体のレベルアップを図るかといったマネジャー視点に移っているという。

「僕自身、ジーニーの黎明期からさまざまな難しい現場を経験することで技術力を向上してきました。現在、新卒についてはジョブローテーションを組んでいろいろなことを教えているのですが、今後はそのやり方を既存社員にも適用したい。1人のエンジニアが複数の分野のエキスパートになるのは一般的には無理なこととされていますが、その無理をどうにかして通したいと考えています」

ジーニーはさらなる事業拡大のためにエンジニアを募集している。「アドテク分野の特別な経験はいらないし、入社時点での技術力の高さもそれほど問わない」と言う徐氏がそれよりも重要だと考えているのは、その人の人間性だ。

「求められる人間性は部門によっても異なります。例えばインフラであれば、たった1カ所の不備があっただけでシステム全てが止まってしまうということがある。そういう細心の注意を払える性格であることが重要になるでしょう。

また、分からないことを学んでいる時に、それを苦と思わないことも重要でしょう。流行り廃りの速い業界だから、今使っている技術がその先どうなっているかは誰にも分からない。だったら必要なのは現時点での技術力の高さより、新しいものをすぐにキャッチアップできるかどうか。それは言葉にすれば『やる気』とか『情熱』とかいう言葉になってしまいますが、やはりそういうものは大事な気がします」

むろん、徐氏自身にはそれが備わっていたから、成長し続け、数々の難所を突破することができたということだ。

5:「流行りもの」でないものに対峙した時、人の価値は試される

ジーニーは国内SSP事業者として草分け的な存在。徐氏も前例のない道を歩むやりがいをかみ締めている
ジーニーは国内SSP事業者として草分け的な存在。徐氏も前例のない道を歩むやりがいをかみ締めている

「SSPは次第に国境のない世界になってきている」と徐氏は言う。

「国外の自動車メーカーが広告を日本に出す場合、従来であればそのメーカーの日本法人が代理店を通じて出していましたが、これからは海外の会社がその国にあるジーニーの子会社に直接、広告を出すようになっていく。

そうしたビジネス展開のためには、各国にデータセンターを置いたり、逆に広告主には世界のいろいろな地域ごとのターゲティングをさせたりと、システムとしても国境を意識させないものにしていかないといけません」

市場が興って間もないSSPのシステム開発は依然、未知の領域を歩むようなもの。だからこそチャンスも大きいのだが、どこかを探せばすでに答えがあるということは基本的にはあり得ない。

「流行っている技術や業界については情報があふれているから、どんどんと方法が確立されていきます。でも、会社と、そこで働く人の価値が真に試されるのは、そうした流行りものではないものを扱う時ではないでしょうか。もちろん、答えのないその道を先頭で歩くのは苦しい。でも、その苦しさの分だけ楽しいし、そういうところにこそやりがいはあるのではないかなと思います」

取材・文/鈴木陸夫(編集部) 撮影/竹井俊晴

この記事が気に入ったらいいね!しよう

エンジニアtypeの最新情報をお届けします
  • このエントリーをはてなブックマークに追加

RELATED POSTS関連記事

JOB BOARD編集部おすすめ求人

この記事に関連する求人・キャリア特集

  
エンジニア転職フェア開催 IT&モノづくりエンジニアを求める優良企業が大集結! typeメンバーズパーク

株式会社ベネッセコーポレーション 東京本部 オープンポジション

日本マイクロソフト株式会社 【マイクロソフトサポートエンジニア】トッ…

アマゾン ウェブ サービス ジャパン株式会社 クラウドサポートエンジ…

株式会社SHIFT(東証マザーズ上場企業) Quality Accelerator…

ソニー株式会社 【ソフトウェア系エンジニア】

株式会社ガリレオ モノづくりエンジニア■月給70万円可■自動車関連…

クエスト・グローバル・サービス 【品質管理(産業機械)】英語が活か…

株式会社マルチウェーブ 【品質保証】年俸400万円~800万円◆1…

サッポロビール株式会社 【生産技術担当】サッポロブランドを生産技術…

株式会社テクノプロ テクノプロ・デザイン社 【機械・電子設計/CADオ…

データアナリストになる方法~コンサル型かエンジニア型か?ビッ...

東京藝術大院卒→オリエント工業の造形師が、究極の機能美を追究...

なぜ、いまだ7割のITプロジェクトが失敗するのか? 「再生人...

採用は売り手市場も、5年後の安泰はなし~若手SEが知っておく...

「2025 年、いままでのSIerは滅びる!」迫り来るIT革...

>>過去のエンジニアtypeのページはこちら

AWS Summit AWS Dev Day