Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PadSummit#2_BrainPad_LT_20230427

BrainPad
April 28, 2023

 PadSummit#2_BrainPad_LT_20230427

BrainPad

April 28, 2023
Tweet

More Decks by BrainPad

Other Decks in Technology

Transcript

  1. 株式会社ブレインパッド
    2023年04月27日
    Customer Data Platformの新規開発と
    そのグロースを目指して

    View Slide

  2. ©BrainPad Inc.
    Strictly Confidential
    自己紹介
    2
    新谷 大樹(しんたに だいき)
    プロダクトビジネス本部
    開発部
    エンジニア
    2019年にブレインパッドに参画。
    推薦エンジンの開発・顧客提供を経て、
    2021年から新規プロダクト『Rtoaster insight+』の開発に従事。
    趣味はジグソーパズルとカラオケ。

    View Slide

  3. ©BrainPad Inc.
    Strictly Confidential
    会社紹介
    3
    ブレインパッドについて
    MISSON データ活用の促進を通じて、持続可能な未来をつくる
    会社名 株式会社ブレインパッド
    設立 2004年3月18日
    市場区分 プライム市場上場(証券コード:3655)
    従業員数 533名(2022年12月31日現在)
    加盟団体 一般社団法人データサイエンティスト協会
    一般社団法人日本ディープラーニング協会
    変革を目指す企業と
    共に最前線を走り続ける、
    データ活用推進パートナーのパイオニア
    データ活用推進を支える2つの事業
    プロフェッショナルサービス
    データ活用のプロフェッショナルがアナリ
    ティクス/エンジニアのスキルを駆使し、
    最適なデータ活用を実装します。
    プロダクトサービス
    実用的なSaaSで、データ活用を日
    常化する可視化や効率化、データに
    よる意思決定を支援します。

    View Slide

  4. ©BrainPad Inc.
    Strictly Confidential
    プロダクト紹介
    4
    マーケティング活動の効率化のための、toB向けプラットフォーム

    View Slide

  5. ©BrainPad Inc.
    Strictly Confidential
    新規プロダクト開発の背景
    5
    ● 元々、顧客のweb上の行動履歴を分析するためのプロダクトがあった
    ● 課題
    ○ データの分析のみで終わってしまい、マーケティング施策に繋がらなかった
    ○ 実店舗のオフラインデータなど
    顧客のもつデータを統合的に扱うニーズに対応できなかった
    ● 既存のプロダクトの追加開発ではなく、新プロダクトとして開発することになった

    View Slide

  6. ©BrainPad Inc.
    Strictly Confidential
    要件定義
    6
    ● 抽象度の高いプロダクトのため苦労したが、様々な関係者を巻き込んで
    ターゲットユーザーやユースケースを決めた
    ○ 開発部以外の、実際にCDPを活用している部署からの聞き取り
    ● 話し合ったユースケースなどをもとに、プロダクトマネージャー・デザイナー・エンジニアが密にコミュニケーションを
    とりながら、必要な機能を決めていった

    View Slide

  7. ©BrainPad Inc.
    Strictly Confidential
    システムの要件
    7
    ● 顧客が保有するデータを統合的に管理する
    ○ 様々な場所に散らばっている顧客データの取り込み
    ■ データレイク
    ■ データウェアハウス
    ■ 弊社の他プロダクト
    ● 集めたデータをマーケティング施策のために整形・分析できる
    ○ 大規模データに耐えうる設計が求められる

    View Slide

  8. ©BrainPad Inc.
    Strictly Confidential
    ● 最小限の実装で目的を達成する
    ○ なるべくクラウドサービスの機能を用いる
    ● 顧客数や扱うデータ量の増加に備える
    ● 新規開発のため速度は求められつつも、品質は落とさない
    ○ 静的解析ツール
    ○ スキーマ駆動
    技術選定の際に考慮したこと
    8

    View Slide

  9. ©BrainPad Inc.
    Strictly Confidential
    ● 顧客データの取り込み・加工・出力処理(以下ETL)を
    非同期 & 並列可能にする
    ○ 顧客数が増加してもスケールするようにする
    ● 分析機能はBigQueryで実現する
    システム構成
    9
    施策のためのプロダクト
    顧客管理のデータ
    ETL処理
    データ分析
    セグメント作成
    非同期

    View Slide

  10. ©BrainPad Inc.
    Strictly Confidential
    ● 型の恩恵を受けるためTypeScriptを採用
    ● アトミックデザインを採用
    ○ 再利用性や統一性を高める
    ○ organismsが増えがちなので、機能単位でまとめる
    ● 状態管理にVuexを採用
    ○ 無法地帯にならないよう
    コンポーネントからのアクセスにルールを設ける
    ■ 粒度の小さいコンポーネントからVuexを参照しない
    技術選定〜フロントエンド〜
    10
    components/
    ├ atoms/
    ├ molecules/
    ├ organisms/
    ├ jobs/
    ├ jobList.vue
    ├ …
    ├ segments/

    segmentModal.vue
    ├ …
    ├ …

    View Slide

  11. ©BrainPad Inc.
    Strictly Confidential
    ● Python + mypyでの静的型チェックを導入
    ● クリーンアーキテクチャを採用
    ○ モジュール間の依存関係にルールを定める
    ○ テスト時の対象DBの切り替えなど
    インフラ層の取り替えが容易
    ● フロントエンドから受け取る値のバリデーションに
    marshmallowを採用
    技術選定〜バックエンド〜
    11

    View Slide

  12. ©BrainPad Inc.
    Strictly Confidential
    ● バックエンドのmarshmallowで指定するスキーマと
    フロントエンドからAPIに送るデータのスキーマを
    手軽に揃えたい
    ● marshmallowのスキーマ定義から
    対応するTypeScriptの型を生成するツールを開発
    ○ スキーマ駆動による、バックエンドと
    フロントエンドの同時開発が可能に
    インターフェースの工夫
    12

    View Slide

  13. ©BrainPad Inc.
    Strictly Confidential
    ● 各種ETL処理を、顧客が定義した前後関係で実行するための機能
    ● ワークフローエンジン Digdag を利用
    ○ 静的なワークフローでの利用が一般的だが
    Rtoaster insight+では顧客の定義に従った、動的なワークフローの実現のために利用
    機能紹介〜ワークフロー〜
    13

    View Slide

  14. ©BrainPad Inc.
    Strictly Confidential
    ● 管理画面上で顧客が設定したジョブの前後関係は、
    有向非巡回グラフ(DAG)として表現される
    ● DAGをトポロジカルソートして、
    Digdagの動作を規定するdig.yamlを作成する
    機能紹介〜ワークフロー〜
    timezone: Asia/Tokyo
    +group_0:
    _parallel:
    limit: 5
    +job_1:
    sh>: {ジョブ1を実行するスクリプト}
    +job_2:
    sh>: {ジョブ2を実行するスクリプト}
    +job_3:
    sh>: {ジョブ3を実行するスクリプト}
    +success:
    sh>: {成功時の処理}

    View Slide

  15. ©BrainPad Inc.
    Strictly Confidential
    ● データの準備からマーケティング施策までに必要な設定を、できるだけ減らしたい
    ○ 決められたフォーマットのデータを用意するだけで、
    マーケティング施策までに必要な設定が簡単にできるようにする
    ● 立ち上げ時期から時間が経ったので、技術的な負債にも対処していきたい
    ○ バックエンドアーキテクチャの意味でのドメイン再考
    ○ 機能が増え、複雑になりつつある権限管理の再考
    今後の展望
    15

    View Slide

  16. ©BrainPad Inc.
    Strictly Confidential
    新規プロダクト開発に携わって思ったこと
    16
    ● ゼロからプロダクトを作り上げていく事は、苦労も多いがやはり楽しい
    ○ 要件定義フェーズ
    ■ 要件定義は手探りで、様々な関係者と話してやっとまとまった
    ■ 新しいビジネスへの挑戦はモチベーションになる
    ○ 設計・開発フェーズ
    ■ 開発者にそれなりの視野の広さ、深さが求められる
    ■ 目的達成のために一番ふさわしい解決策を、技術的負債に囚われずに選べる

    View Slide

  17. ©BrainPad Inc.
    Strictly Confidential
    まとめ
    17
    ● 新規プロダクト開発の背景と技術選定
    ○ スピードを考えつつも、品質は落とさない
    ■ 静的解析
    ■ スキーマ駆動
    ● 新規プロダクト開発に携わって思ったこと
    ○ ゼロからプロダクトを作り上げていく事は、苦労も多いがやっぱり楽しい
    ■ 新しいビジネスへのチャレンジ
    ■ 技術的負債に囚われない

    View Slide

  18. 株式会社ブレインパッド
    〒106-0032 東京都港区六本木三丁目1番1号 六本木ティーキューブ
    TEL:03-6721-7002 FAX:03-6721-7010
    www.brainpad.co.jp [email protected]
    本資料は、未刊行文書として日本及び各国の著作権法に基づき保護されております。本資料には、株式会社ブレインパッド所有の特定情報が含まれており、これら情報
    に基づく本資料の内容は、御社以外の第三者に開示されること、また、本資料を評価する以外の目的で、その一部または全文を複製、使用、公開することは、禁止され
    ています。また、株式会社ブレインパッドによる書面での許可なく、それら情報の一部または全文を使用または公開することは、いかなる場合も禁じられております。

    View Slide