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

Merpay のデータ収集基盤

Ryo Okubo
August 30, 2018

Merpay のデータ収集基盤

Merpay で準備中の、データ収集のための基盤の仕組みについてです

Ryo Okubo

August 30, 2018
Tweet

More Decks by Ryo Okubo

Other Decks in Technology

Transcript

  1. merpay DataPlatform @syucream
    Microservices ♥ Data Pipeline

    View Slide

  2. 2
    whoami
    Copyright © Merpay, Inc. All Rights Reserved.
    @syucream
    DataPlatform team
    at Merpay

    View Slide

  3. 3
    マイクロサービスとデータのユースケース
    01
    Agenda
    02
    ● アプリケーションとデータの分離
    ● メルペイにおけるデータのユースケース
    merpay DataPipeline 概要
    ● batch と steam のデータ転送のサポート
    ● データの転送先
    Copyright © Merpay, Inc. All Rights Reserved.
    03
    パイプラインのプロトタイプ実装
    ● GCP を利用したパイプラインの構成
    ● 課題など

    View Slide

  4. マイクロサービスと
    データのユースケース

    View Slide

  5. Microservices in merpay
    ServiceA ServiceB ServiceC
    App App App

    View Slide

  6. Microservices in merpay
    ServiceA ServiceB ServiceC
    App App App
    1. 分離されたアプリケーション
    2. 分離された DB (無い場合もある)
    3. 独立したマイクロサービスチーム

    View Slide

  7. Data sources vs usecases
    D-service
    B-service
    A-service
    C-service
    KPI Analytics
    Fraud Detection
    Credit Scoring
    Funnel Analytics
    ML system
    Customer Support

    View Slide

  8. View Slide

  9. merpay DataPipeline 概要

    View Slide

  10. microservice -A
    microservice -B
    microservice -C
    Data
    Pipeline
    datauser -A
    datauser-B
    BigQuery
    BigQuery
    Event
    Log
    Event
    Log
    Event
    Log
    DB
    DB
    DB
    batch
    transfer
    stream
    transfer
    batch
    transfer
    batch
    transfer
    stream
    transfer
    stream
    transfer
    BqLoad
    Tool
    Cloud
    Storage
    ToGCS
    Tool?
    Cloud
    Dataflow
    BqLoad
    Tool
    Publish message Subscribe message
    merpay DataPipeline

    View Slide

  11. microservice -A
    microservice -B
    microservice -C
    Data
    Pipeline
    datauser -A
    datauser-B
    BigQuery
    BigQuery
    Event
    Log
    Event
    Log
    Event
    Log
    DB
    DB
    DB
    batch
    transfer
    stream
    transfer
    batch
    transfer
    batch
    transfer
    stream
    transfer
    stream
    transfer
    BqLoad
    Tool
    Cloud
    Storage
    ToGCS
    Tool?
    Cloud
    Dataflow
    BqLoad
    Tool
    Publish message Subscribe message
    merpay DataPipeline
    1. マイクロサービスは DataPipeline へ配送
    2. データ利用者は DataPipeline から受け取り

    View Slide

  12. batch vs stream?
    ● どちらもサポート!
    ○ データソースや用途に応じて使い分ける
    ○ 現状は DB は batch で、イベントログは stream で配信予定
    ● 将来的には stream のみなどに舵切りするのもアリ?

    View Slide

  13. destinations?
    ● Data Lake: GCS
    ○ Pipeline に流れてきたデータをひたすら蓄積
    ● Data Warehouse: BigQuery
    ○ 主に分析用に BigQuery に書き出す
    ● Message Queue: Cloud Pub/Sub
    ○ ニアリアルタイム処理のために後続キューに転送
    ● Any others…?
    ○ 必要であれば他になにか考えるかも

    View Slide

  14. パイプラインのプロトタイプ実装

    View Slide

  15. batch
    microservice-B
    merpay-dataplatform
    Data User - A
    microservice-A
    Cloud
    Pub/Sub
    BigQuery
    Cloud
    Functions
    data mart
    change
    notification
    Pub/Sub trigger
    (BqLoad path)
    BqLoad
    Cloud
    SQL
    data lake
    Cloud
    Storage
    Cloud
    Spanner
    microservice-C
    Cloud
    Datastore
    Data Pipeline

    View Slide

  16. stream
    Microservice platform team
    Kubernetes cluster
    A-service B-service
    merpay-dataplatform
    Logging
    Cloud
    Pub/Sub
    Cloud
    Dataflow
    BigQuery
    stdout via
    logging library
    Sink to Pub/Sub
    Subscribe
    Data User - A
    BigQuery
    DWH
    Streaming Insert

    View Slide

  17. Schema Registory
    ● ProtocolBuffer でログのスキーマを予め定義
    ○ マイクロサービスの IDL として社内利用実績多し!
    ○ protoc plugin で各言語ライブラリやドキュメントが得られる
    ● GitHub で .proto ファイルを管理

    View Slide

  18. Remaining issues
    ● batch
    ○ スケーラビリティ
    ● stream
    ○ Stackdriver Logging のコストと他のログが混ざることの複雑さ++
    ● Schema Registory
    ○ 誰がスキーマを定義していくのか問題
    ○ スキーマ事前定義するのが面倒くさいよ問題
    ● 他の性質の課題
    ○ スマホアプリのイベントログはどうしようか?など
    個別のコンポーネントはまだまだ検討が必要

    View Slide

  19. まとめ

    View Slide

  20. Summary
    ● merpay DataPlatform Team の設立から現在の経緯
    ○ マイクロサービスの世界で発生した課題
    ○ merpay DataPipeline
    ○ プロトタイプ実装

    View Slide

  21. We are hiring!!!
    merpay DataPlatform Team ではプロダクト開発に寄り添えるデータ収集基盤を構築して
    います。
    全体構成や組織としての課題、 GCP ベースのコンポーネントの実装、セキュリティなど
    など挑戦的な取り組みが多々あります!
    少しでも興味を持って頂けたなら、merpay 採用ページもしくは Twitter で @syu_cream
    まで!

    View Slide

  22. Q&A

    View Slide