黒崎 優太(前列左)
2015年新卒入社。Dynalystサーバサイドエンジニア。スマホゲーム向け広告配信システムの基盤開発を担当。
折原 レオナルド賢(後列右)
2016年新卒入社。AI Messenger フロントエンドエンジニア。AIがカスタマーサポートを行うチャットシステムのフロントエンド開発を担当。
中村 親里(前列右)
2017年新卒入社。Dynalystサーバサイドエンジニア。スマホゲーム向け広告配信システムの基盤開発を担当。
後藤 紳(後列左)
2017年新卒入社。AirTrackサーバサイドエンジニア。位置情報を用いた広告配信システム開発を担当。
膨大な位置情報からリアルタイムに最適な広告を配信する
— アドチャレはどんなインターンですか?
黒崎:膨大なデータを使ったリアルタイムな広告配信基盤の開発にチャレンジするインターンです。学生とアドテクスタジオのエンジニアが同じチームになり、プロダクトの完成度を各チームで競い合います。
ユーザの位置情報データが常に流れてくるシミュレーション環境を用意するので、広告の配信を考慮したデータの持ち方を設計し、サーバに蓄積してもらいます。広告配信サーバは、最適な広告を配信するためにユーザの属性情報や位置情報を頻繁に問い合わせます。今回のインターンでは、この問い合わせに対して正確に応答するAPIを開発する必要があります。
大量のトラフィックを処理する技術はもちろんですが、流れてくるデータを常に書きこんだり、高速に読み出すための設計力が問われると思います。
中村:アドテクスタジオでは日々大量のリクエストを捌く必要があり、また大量のログを溜めて集計をする必要もあります。そしてそれが直接売上に関わってきます。それは単一のサービスとは比較にならない程のデータ量のため、学生には普段体験できない経験であると思います。そういった意味で今回のアドチャレを通じて、どのようにして大量のデータを捌くのか、といった技術力が鍛えられると思います。
後藤:私は位置情報を用いたプロダクトに所属していますが、配属当初は大量のデータを蓄積するデータベースにクエリを発行する際の、スキャンのリスクについて先輩からアドバイスを受けました。不用意なクエリを発行することで、業務に必要なクエリが遅延する可能性があるからです。そこまで大きいデータを扱う場合は影響範囲や実行することのリスクまで考える必要があるのだと感じ、それは難しくも面白い部分でした。おそらくこのアドチャレでは、学生のみなさんが普段の開発で意識することが少ないような部分が難しく感じることがあると思います。
課題解決のために最適なアーキテクチャを設計できるか
— 学生のチームにアドテクスタジオのエンジニアが入る狙いはなんですか?
黒崎:社員がリーダーやメンターになって教えるのではなく、現場のエンジニアと同じチームになることで、仕事のやり方や考え方といった、実践を通してでしか得られない部分を伝えられたらと思っています。
折原:社員がメンターとして付き添ってくれるインターンはよくあって。自分たちが「こんなことをやりたい」となった時に技術力の問題で実現性が危うくなっても、メンターが教えてくれるのでなんとか動くものに着地するなんてことをよく目にしますね。でも実は、設計の段階で間違っているから難易度の高かった問題なんてこともありえます。その場合だと、参加した学生は正しい解決方法を得ることができずにインターンを終えてしまうなんてことがあります。
今回のアドチャレでは、エンジニア社員が同じチームに入ることで、密にコミュニケーションをとりながら方向修正をして、一緒に設計・開発をすることができます。エンジニア社員をチームリーダーにするのか、メンバーにするのかもチームの方針次第なので、チームビルディングの過程も含めて学びになってもらえたらと思います。
— 広告の知識がないと参加は難しそうでしょうか。
折原:チームの中に広告に精通したエンジニアが入るので、多少の予備知識さえあれば吸収できる環境になっています。普段見ている広告の裏側って一体どうなっているのかなど、疑問を感じるような方は参加して、ぜひ体験してみてください。また、今の自分がどのくらいの技術力なのか社員と見比べるチャンスでもあるので、自身の技術的な市場価値が測れます。アドテクノロジーに興味がある学生にとってはチャンスだと思います。
後藤:学生では体験できないという点ではデータ量の他に、パブリッククラウドのプラットフォームにお金を気にせず設計できるのも貴重な体験ですね。
中村:チームで相談しながらアーキテクチャを決めると思いますが、課題を解決するために必要な予算は制限なく用意する予定です。設計したアーキテクチャがちゃんと動くかどうか検証してみたり、自分の思い描いた構成でどこまで性能が出るのか試してみたりしてみてください。
— 開発した広告配信基盤はどういう評価で勝敗を決めるのですか?
黒崎:どこまでのトラフィックに耐えられるか、大量のリクエストに対して正確なユーザの属性情報をリアルタイムに返せるかどうかなどをポイント化して、数字で勝敗がわかるようになる予定です。
折原:例えばユーザのリアルタイムな属性情報を返すためには、バッチで定期的に処理するような作りでは対応できないですし、時間軸に沿ったユーザの属性情報を返すためには、常に流れてくる膨大なデータを欠かすことなく集計して分析する必要があります。そういった課題を解決できたチームが高得点を得られる仕組みになっています。
アドチャレを通じて得られる経験
— 新卒のみなさんは過去にアドテクスタジオのインターンや、新卒研修でもアーキテクチャを設計したと思いますが、その知見をアドチャレにどう活かしていますか?
後藤:インターンや新卒研修では「もしこのサーバが落ちたら」といったことを考えず「期間が短いからとりあえず動くものを作ろう」と考えていました。でもこの考えで開発をすすめると、動かした後は祈るのみといった運用のしづらいものになってしまっていました。実際に働いてみると痛感するのですが、サーバが10分でも落ちたらビジネス的には大損害なんですね。そういうことを考えずにアーキテクチャを構成していた気がします。
折原:アクセスが増えて、当初のサーバで耐えられないような事態が起きた時は、スケールアウトする必要があります。経験が浅い頃は、設計当初からスケールアップを意識して作らず、柔軟性がないものを作ってしまいがちなんですね。アドチャレでは、そういったスケールアウトできる設計を社員と一緒に考えてみてください。
[参考記事]
アドテクスタジオの新卒エンジニア研修「ひとりDSP」
サイバーエージェント新卒エンジニア技術研修2016
— インターンの会場も普段、アドテクスタジオのエンジニアが働いている開発エリアの中で開催するというのもリアルで良いですね。
中村:気分を変えて仕事をしたい時やちょっとミーティングをしたい時などはカフェスペースを利用しています。そのカフェスペースを今回は会場として使うため、ただ黙々と開発をするのではなく、普段私達が使用しているオフィスの環境を知れるいい機会になると思います。また、同じチームメンバーの一員として社員がいますので、普段プロダクト開発をしている社員の様子を知れる機会にもなるかと思います。今回のアドチャレを通じて、できるかぎり会社の雰囲気をそのまま伝えられたらと私たちは考えています。
[参考記事]
adtech studio Photo Tour
こんな学生に来てほしい!!
— アドチャレはどんなエンジニアに来てほしいですか?
黒崎:バックエンドシステムに興味ある学生に来てほしいと思っています。言語を問わず、何かしらのサーバサイドプログラミングの経験があると良いかもしれません。サーバ、インフラ、あとは分散処理とか、リアルタイム処理などに興味がある学生が楽しめるイベントです。
こういった技術は、研究などで多少の経験をしたことはあるかもしれません。ただ、大量のデータがリアルタイムに流れてきた時に、処理しきれるシステムを組むとかはなかなか経験しないと思うので、この機会にチャレンジしてほしいなと思っています。
折原:アドテクノロジーはエンジニアリングのスピードや分析力などが、売り上げの数字に直接反映するのがおもしい点の一つです。エンジニアが技術力だけで成果を出せる場でもあるので、アドチャレを通じてぜひ興味をもってもらえたらと思います。
■取材・執筆:清水 良一 (カルチャー推進室)
■撮影:杉 麻子(Design Factory)
「AdTech Challenge」へのエントリーをお待ちしています!