Microservices in merpay
ServiceA ServiceB ServiceC
App App App
Slide 6
Slide 6 text
Microservices in merpay
ServiceA ServiceB ServiceC
App App App
1. 分離されたアプリケーション
2. 分離された DB (無い場合もある)
3. 独立したマイクロサービスチーム
Slide 7
Slide 7 text
Data sources vs usecases
D-service
B-service
A-service
C-service
KPI Analytics
Fraud Detection
Credit Scoring
Funnel Analytics
ML system
Customer Support
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
merpay DataPipeline 概要
Slide 10
Slide 10 text
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
Slide 11
Slide 11 text
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 から受け取り
Slide 12
Slide 12 text
batch vs stream?
● どちらもサポート!
○ データソースや用途に応じて使い分ける
○ 現状は DB は batch で、イベントログは stream で配信予定
● 将来的には stream のみなどに舵切りするのもアリ?
Slide 13
Slide 13 text
destinations?
● Data Lake: GCS
○ Pipeline に流れてきたデータをひたすら蓄積
● Data Warehouse: BigQuery
○ 主に分析用に BigQuery に書き出す
● Message Queue: Cloud Pub/Sub
○ ニアリアルタイム処理のために後続キューに転送
● Any others…?
○ 必要であれば他になにか考えるかも
Slide 14
Slide 14 text
パイプラインのプロトタイプ実装
Slide 15
Slide 15 text
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
Slide 16
Slide 16 text
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