Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【レポート】勉強会「R&Dにおけるデータエンジニアリング/アーキテクチャー」

f:id:hartmann3555:20180925121557j:plain

こんにちは。DSOC Data Direction Group / R&Dの千葉です。

前回の勉強会に続き、2018年9月7日に開催された第二回R&D勉強会の内容についてお伝えします。

今回は「R&Dにおけるデータエンジニアリング/アーキテクチャー」と題して、R&D groupを取り巻く環境の中でも、開発環境や分析基盤にフォーカスを当ててお話しました。

R&D アーキテクトがこれまでにやってきたこと

前半はDSOC R&Dグループの研究員の鷹箸が、R&Dのアーキテクトとして役割や立ち位置、実際に行ってきたことを包括的に話しました。

f:id:hartmann3555:20180925121652j:plain

SansanのR&Dグループは大きく研究員とR&Dアーキテクトの2職種に分かれており、現在3名がR&Dアーキテクト職となっています(研究員とR&Dアーキテクトを兼務)。

R&DアーキテクトはR&Dチームがより円滑に集中して研究開発に打ち込むために、できることは基本的に何でもやるというスタンスでいます。

SansanのR&Dは基本的には一人1プロジェクトを任され、システムの設計から構築まで行うことが求められており、アーキテクトがシステムを作成するときの設計をすべて握っているのではありません。

そんなR&Dアーキテクトが日々行っている業務は以下です。

f:id:hartmann3555:20180925122203j:plain

今回は、開発環境の整備(シンクライアント化)をピックアップしてお話ししました。
シンクライアント化を図ろうと思った背景には大きく分けて3点あります。

f:id:hartmann3555:20180925122251j:plain

シンクライアント化すると以下のようなメリットが生まれます。

  • 本番データをクラウド環境上で触ることによりローカルで触る恐怖心から開放され、開発スピードが加速する
  • 普段使用しているPCの重量が軽くなり、通勤する気持ちにゆとりが生まれ、開発スピードが加速する
  • お試しで作ったアプリケーションを手軽に社内公開できるようになり、開発スピードが加速する

f:id:hartmann3555:20180925122318j:plain

作成した環境とステージングをVPCPeeringしてステージング環境にあるサービスとの疎通が取れるようにしたり、各インスタンスにドメインを振ってあげることで、作成したアプリケーションをすぐに社内に展開できるようになりました。

シンクライアントを導入して1年ほどが経ちましたが、以下のような効果が生まれました。

  • 開発環境はクラウドにあるのでネットに繋がっていれば場所を問わず開発できるようになりました。
  • 試作中のアプリケーションを気軽に社内へ公開できるようになり、スピード感のある開発が可能となりました。
  • ローカルマシンの軽量化に成功しました。

ただ、一方でネットが繋がらないと作業ができなくなります。

そして、インスタンスを一人一台割り当てているのでサーバ費用がそれなりにかかってしまうのも問題です。

使わないときはインスタンスを停止させておくという運用ができればいいのですが、諸般の事情で実現できず、課題となっています。


私がDSOCのデータエンジニアとして、やってきたこととこれから

後半は、Data Direction GroupとR&D Groupを兼務している立場から、私がR&Dにおけるデータエンジニアリングについて話しました。

f:id:hartmann3555:20180925121724j:plain

もともと弊社にはデータエンジニアというロールはなく、R&Dを始めとした分析者自身が必要なデータを準備したり、インフラエンジニアがその役割の一部を担っていました。

しかし、R&Dの研究者や分析タスクが増えていく中で、作業の分担や利便性向上、本番用のデータベース負荷の影響から分析専用のデータベース需要が高まったことで、分析用のデータ整理を専任で行うためのデータエンジニアが設置されました。

そうして出来たデータエンジニアというポジションですが、社内での有識者も多くなかったことから、初めは手探りで自身のロールを定めていく作業が多かったです。

f:id:hartmann3555:20180925122350j:plain

グループも一番動きやすい形を模索して、現在の形に落ち着きました。

弊社のデータエンジニアは現在は大きく、以下4つの役割を担っています。

  • 名刺データ分析基盤の設計・構築・保守・運用・改修
  • BIツールを用いた、KPIの可視化
  • 他部署の分析基盤構築や相談など
  • 名刺関連データの網羅的な管理システムの構築

今回はこの中でも名刺分析基盤について、少し話したいと思います。
分析基盤の構築のモチベーションは、前述の課題の通り、本番データベースを用いた分析業務では不都合が多いことや、RDBMSでは実行に長い時間がかかるようなビッグデータの集計を行いたいということでした。

また、構築に際していくつかの要件も出てきたので、それらを満たせるようなシステムを考えた結果、以下のような構成となりました。

f:id:hartmann3555:20180925122446j:plain

ここでは詳細な説明は割愛しますが、S3をメインのデータソースとしたデータレイク構造に、前段としてDynamoDBを配置した、少し特殊な構成としました。
これにより、Athena等での分散分析を可能としつつも、定期的なデータ削除や高速なデータ取得を可能とするようなシステムとなりました。

最後にデータエンジニアとして他グループ間のコミュニケーションや今後の方向性について話して、まとめとしました。

懇親会の様子

f:id:hartmann3555:20180925121748j:plain

発表後に懇親会が開かれました。
Sansanのフラッグ付きハンバーガーなどを囲んで、参加者同士会話を楽しみました。

f:id:hartmann3555:20180925121801j:plain

発表へのフィードバックをいただいたり、各社のデータ活用状況や課題についてお話できて非常に有意義な時間でした。

最後に

今回は第二回R&D勉強会として、DSOC R&Dを取り巻く環境としてアーキテクトやデータエンジニアリング周りのお話をしました。

計算環境としてのシンクライアント化や、データエンジニアとしての分析基盤について、アーキテクト目線でお話することによって、弊社のR&Dがどのように日々ハイパフォーマンスに業務をこなしているかをお伝えすることが出来たかと思います。

今回は時間の関係から、やや一般的な内容になってしまいましたが、今後はもう少しディープなエンジニアリングの話をする機会も検討しておりますので、今後の弊社の勉強会にご期待ください。

また、DSOCのR&Dではアーキテクトとデータエンジニアを絶賛募集しておりますので、ご興味ある方はぜひご連絡いただけると幸いです。
hrmos.co

hrmos.co

© Sansan, Inc.