Merpay のデータ収集基盤

4ab3fec3e82ddb19bcadd93ef909a443?s=47 Ryo Okubo
August 30, 2018

Merpay のデータ収集基盤

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

4ab3fec3e82ddb19bcadd93ef909a443?s=128

Ryo Okubo

August 30, 2018
Tweet

Transcript

  1. merpay DataPlatform @syucream Microservices ♥ Data Pipeline

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

    DataPlatform team at Merpay
  3. 3 マイクロサービスとデータのユースケース 01 Agenda 02 • アプリケーションとデータの分離 • メルペイにおけるデータのユースケース merpay

    DataPipeline 概要 • batch と steam のデータ転送のサポート • データの転送先 Copyright © Merpay, Inc. All Rights Reserved. 03 パイプラインのプロトタイプ実装 • GCP を利用したパイプラインの構成 • 課題など
  4. マイクロサービスと データのユースケース

  5. Microservices in merpay ServiceA ServiceB ServiceC App App App

  6. Microservices in merpay ServiceA ServiceB ServiceC App App App 1.

    分離されたアプリケーション 2. 分離された DB (無い場合もある) 3. 独立したマイクロサービスチーム
  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
  8. None
  9. merpay DataPipeline 概要

  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
  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 から受け取り
  12. batch vs stream? • どちらもサポート! ◦ データソースや用途に応じて使い分ける ◦ 現状は DB

    は batch で、イベントログは stream で配信予定 • 将来的には stream のみなどに舵切りするのもアリ?
  13. destinations? • Data Lake: GCS ◦ Pipeline に流れてきたデータをひたすら蓄積 • Data

    Warehouse: BigQuery ◦ 主に分析用に BigQuery に書き出す • Message Queue: Cloud Pub/Sub ◦ ニアリアルタイム処理のために後続キューに転送 • Any others…? ◦ 必要であれば他になにか考えるかも
  14. パイプラインのプロトタイプ実装

  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
  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
  17. Schema Registory • ProtocolBuffer でログのスキーマを予め定義 ◦ マイクロサービスの IDL として社内利用実績多し! ◦

    protoc plugin で各言語ライブラリやドキュメントが得られる • GitHub で .proto ファイルを管理
  18. Remaining issues • batch ◦ スケーラビリティ • stream ◦ Stackdriver

    Logging のコストと他のログが混ざることの複雑さ++ • Schema Registory ◦ 誰がスキーマを定義していくのか問題 ◦ スキーマ事前定義するのが面倒くさいよ問題 • 他の性質の課題 ◦ スマホアプリのイベントログはどうしようか?など 個別のコンポーネントはまだまだ検討が必要
  19. まとめ

  20. Summary • merpay DataPlatform Team の設立から現在の経緯 ◦ マイクロサービスの世界で発生した課題 ◦ merpay

    DataPipeline ◦ プロトタイプ実装
  21. We are hiring!!! merpay DataPlatform Team ではプロダクト開発に寄り添えるデータ収集基盤を構築して います。 全体構成や組織としての課題、 GCP

    ベースのコンポーネントの実装、セキュリティなど など挑戦的な取り組みが多々あります! 少しでも興味を持って頂けたなら、merpay 採用ページもしくは Twitter で @syu_cream まで!
  22. Q&A