(シャイな2名にも取材に協力してもらったので、後ろを向いたりお面を被ったりしています)
先日公開した『設立から6年、「秋葉原ラボ」が取り組む大規模データを活用したレコメンドシステム開発の裏側』に引き続き、本日も研究開発組織「秋葉原ラボ」 エンジニアへのインタビューをお届けいたします。
今回のテーマは、秋葉原ラボが開発を行う独自のデータ解析基盤「Patriot」
「Patriot」は2010年のリリースから実に7年以上、サイバーエージェントが提供するメディアサービス向けに活用されています。
近年ではデータ解析基盤にクラウドサービスを利用するケースが増えてきましたが、秋葉原ラボではなぜ積極的に自社のデータ解析基盤の開発を進めているのか。その理由を「Patriot」の開発に携わる津田、斎藤、叶(ヨウ)、平宮(ナリミヤ)の4名に聞きました。
津田 均 秋葉原ラボ ソフトウェアエンジニア。 2015年サイバーエージェント 中途入社。入社後から秋葉原ラボにてPatriot周辺のシステム開発に携わる。データを利用した分析集計システム「Patriot FDC」や、集計エンジンの開発・運用を担当。
斎藤 貴文 秋葉原ラボ R&Dエンジニア。 2013年サイバーエージェント新卒入社。入社後からストリーミングデータ処理基盤の研究開発や独自のログ転送管理システム「Mine」の開発・運用に携わる。
叶 長耀 秋葉原ラボ ソフトウェアエンジニア。 2017年8月サイバーエージェント中途入社。主な担当は「Patriot」のHadoop基盤周りの開発・運用。最近ではHadoopクラスタの管理ツール開発にも携わる。
平宮 瑛宜 技術本部 サービス分析G エンジニア。 2017年4月サイバーエージェント中途入社。データを利用した分析集計システム「Patriot FDC」の開発を担当。
クラウドベンダーのデータ解析基盤を利用せず、積極的にシステム開発を行う理由
ーーはじめに、データ解析基盤「Patriot」プロジェクトの概要とご自身の担当分掌について教えてください
斎藤:「Patriot」は2010年にリリースされた、当社が提供しているサービスを解析・分析するためのデータ解析基盤です。「AbemaTV」や「アメブロ」、「アメーバピグ」などのメディアサービスのログは全て「Patriot」に送るようにしています。中には転送途中の段階でデータを加工して「Patriot」以外の推薦基盤やサービス固有の解析基盤などの連携システムに転送する場合もあります。私はこれらログの加工や転送部分を担当しています。
叶:私は「Patriot」データ解析基盤の開発・運用を担当しています。現在は「Patriot」のHadoopクラスタを管理するためのツールを開発しているところです。Hadoopの管理ツールは他にもApache Ambari、Cloudera Managerなどがありますが、秋葉原ラボでは内製パッケージによる Hadoop クラスタを構築しており、普段の運用をより効率的にするため、簡易的な管理ツールを開発しています。
津田:私と平宮は、「Patriot」に送られてきたログデータを使った分析基盤である「Patriot FDC」の開発を行っています。2010年の「Patriot」リリース以降、「Patriot」のデータをレポーティングするツールを提供していましたが、独自のDSLを使って管理していたため、新たに指標を追加・修正することが難しいという問題がありました。そこで、「Patriot」を日頃から利用する社員自身がクエリを登録し、レポーティングまで行えるようなツールを作りたいということで新たに「Patriot FDC」を開発しました。
データ集計のためにはHiveやSparkを利用してもらっていますが、最近ではより高速に行えるPrestoの導入を始めました。これらを利用して「Patriot FDC」から画面上でクエリを発行することもできるし、逆にクエリの結果を「Patriot」のキーバリューストア(HBase)に保存することでレポーティングに利用することも可能です。
専門のマーケティング担当だけでなく、エンジニアやプロデューサー、ディレクターなど様々な職種のメンバーも含めて、約600名に使ってもらっています。より多くのユーザーに使ってほしいので、デザイナーにも協力してもらいユーザービリティの改善を積極的に進めているところです。一部の画面については刷新した UI をもうすぐリリースできるので、みなさんの反応が楽しみです。
ーー最近ではオンプレミス環境にデータ解析基盤を用意する企業も少なくなってきたのではないかと思います。そういった中でなぜ「Patriot」はクラウドベンダーのデータ解析基盤を利用せず、積極的に「Patriot」のシステム開発を続けているのでしょうか?
津田:一番の理由はデータ量とトラフィックの大きさです。「Patriot」は2010年から利用されており、約2.5PBほどのデータが蓄積されています。また、秒間40万リクエストのログが転送されています。1日あたり5-7TBのデータが蓄積され、全部で700テーブル、パーティションが1,200万ほどのクラスタの上で毎日6,000個のスケジュールされたジョブが動いており、その上で「Patriot FDC」を用いることでアドホックなログ集計が行えます。
さらに「Patriot」が特徴的なのは、サイバーエージェントのグループ会社が提供するサービスのデータも保持していること。設立したばかりのスタートアップでは、予算の都合上クラウドツールを利用できないことも多いと思います。複数サービスが外部のBIツールを利用すると多くのコストがかかりますし、それならBIツールを内製で作ったほうが良いということで、「Patriot FDC」の開発を進めています。
平宮:また「Patriot FDC」を利用することで、すべてのサービスを横断的に分析できるのも、マーケティング組織の知見蓄積につながり、メリットがあると思います。
データ鮮度を高めるためにストリーミング処理を強化したい
ーー中途入社された方々にお聞きしたいのですが、秋葉原ラボに入って驚いたことなどはありますか?
叶:前の職場でもHadoopを用いたデータ解析基盤の開発・運用に携わっており、あるベンダーのディストリビューション版を利用していました。ベンダーの Hadoop ディストリビューションを利用すると導入・運用が簡単になるメリットもありますが、バージョンアップやパッチの適用など、細かな制御が行えませんでした。
秋葉原ラボでは、データ解析基盤の安定性を高め、必要な新機能をスムーズに取り入れるため、Apache Bigtop を利用して各コンポーネント(Hadoop、Hive、HBaseなど)のバージョン管理を行っています。「Patriot FDC」も全て内製ですし、そういう姿勢には驚きましたしやりがいを感じますね。
斎藤:今の叶の話を補足させてもらうと、データセンター移設前は古いバージョンのパッケージにパッチを継ぎ足し当てていた状態だったので基盤で使用しているソフトウェアが独自色が強くなりいびつな状態になってしまっていました。それを移設のタイミングでバージョンアップするだけでなくApache Bigtopというパッケージ管理ツールを使うようにしたことで最新のバージョンへのパッチを適用することも自分らでパッチを書くことも容易になり、OSSへのコントリビュートもしやすくなりました。
津田:少し分析基盤の話とは離れてしまいますが、私は前職では開発組織で仕事をしていたため、サイバーエージェントに中途入社して新鮮に感じたのは、秋葉原ラボが「研究組織」だという点です。秋葉原ラボでは論文執筆、研究発表などを行っており、部署内でも論文輪読会などを開いて日々知識を刷新しています。特に分析・データ基盤に関する技術は進化が早いため、こういった機会があるのはありがたいです。
ーー今後取り組んでいきたいことはありますか?
斎藤:私は入社してからずっとストリーミング処理システムの開発に携わっています。送られてきたログデータの鮮度を保つために、ストリーミング処理の取り組みは必要だと考えています。
ストリーミング処理は発展途上の領域ではあるとおもうのですが、この5年の変化は大きくストリーミング処理に関わる論文も多く出てくるようになりました。,まだまだ課題は多いですが積極的に開発を進めていきたいです。
平宮:「Patriot」に取り込まれているデータを集計してレポートを表示するというのはどうしても、時間がかかってしまうことがあるので、ユーザーにとってストレスなく分析できる環境を整えていきたいです。
津田:「Patriot」には様々なデータが保存されていますが、抽出方法がいくつかあり、更にデータの使い道は人によって様々です。例えば秋葉原ラボにはデータ分析するメンバーが多く所属しており、「Patriot」の大規模データを効率的に分析したいという要望が多く上がっています。ユーザーからの要望を聞いて適切なデータ処理方法を提示しながら、効率的にデータを扱えるデータ分析基盤を提供できたらと思っており、現在は分析メンバーを対象としたデータ加工・抽出方法を検討しているところです。
叶:当面はHadoopクラスタ管理ツールの開発に注力したいと考えています。各コンポーネントの構成管理、設定変更、ローリングアップグレードなどの最低限の機能を実装していきたいですし、ツールの汎用性や堅牢性などを意識しながら進めていきたいと思います。また、「Patriot」はこれからもデータが増え続け、サーバー台数も増えていきます。データ基盤の安定稼働や課題解決にも取り組んでいきたいと思います。
経営指標に直結する重要な基盤システム
ーーさいごに、秋葉原ラボが採用を強化していく中でどんな方と一緒に働きたいか教えてください
斎藤:秋葉原ラボでは最新バージョンのパッケージを使える環境を用意していますが、それはあくまで問題解決のためです。流行りのプログラミング言語やライブラリを触りたい方には向かないかもしれません。手段に執着せずに、問題解決に一緒に向き合える方と働けたら嬉しいです。
叶:同じ課題に向けて一緒に努力し、色々な議論ができる人です。私も入社してまだ3ヶ月ほどなので、開発する上で悩んだり分からないことがたくさんありましたが、チームメンバーとのMTGを通して柔軟にやり方を変えていったり、方向転換していきました。
互いに頻繁にコミュニケーションをとることで、一緒により良い方向に進めていければと思います。
津田:サービスをチームで良くしたいと思える方でしょうか。秋葉原ラボは研究組織であるため、以前は一人一人が担当サービスを持っていた時代がありましたが、より良いシステム・サービス構築のためにチームで開発することを意識しており、「Patriot」もここにいるメンバー以外も含めて、チームとして開発を進めています。
平宮:研究組織のため実際のユーザーからは遠くなりがちですが、使い手やユーザーのことを考えて開発・研究ができる方は向いていると思います。
▼秋葉原ラボではエンジニアを募集しています ・共通基盤サーバサイドエンジニア ・大規模データ処理基盤エンジニア ・機械学習エンジニア ・データアナリシスエンジニア
▼秋葉原ラボ主催勉強会レポート Data Engineering and Data Analysis Workshop #1 を開催しました Data Engineering and Data Analysis Workshop #2 を開催しました