Infrastructure as Codeで構築したリソースの可視化と再利用
マイクロサービスダッシュボードの紹介
Slide 2
Slide 2 text
2
自己紹介
2017年7月に旧ソウゾウに入社
2018年1月にメルペイに異動。テックリードとしてマイクロサービスの開発を担当
2019年7月にArchitectチームに異動
現在は主にマイクロサービスのためのダッシュボードの開発を担当
Merpay, Inc. Architect Team
Yuta Uekusa
5
マイクロサービスアーキテクチャ
Client
API Gateway Service B
Service A
Service C
Authority
Cloud
Spanner
Pub/Sub
Cloud
Spanner
Cloud
Storage
Slide 6
Slide 6 text
6
マイクロサービスアーキテクチャ
API
Gateway
Service B
Service A
Service C
Authority
Cloud
Spann
er
Pub/
Sub
Cloud
Spann
er
Clo
ud
Stor
age
API
Gateway
Service B
Service A
Service C
Authority
Cloud
Spann
er
Pub/
Sub
Cloud
Spann
er
Clo
ud
Stor
age
Development Production
Slide 7
Slide 7 text
7
マイクロサービスアーキテクチャ
Client
Cloud
Spanner
Pub/Sub
Cloud
Spanner
Namespace
Cloud
Storage
Service C
Namespace
Namespace
Namespace
Namespace
Service B
Service A
API Gateway
Authority
Slide 8
Slide 8 text
8
マイクロサービスアーキテクチャ: インフラ構築
Namespace: Service A Project: Service A
boot strap Service A
10
マイクロサービスアーキテクチャ: 通信プロトコル
Client
Cloud
Spanner
Pub/Sub
Cloud
Spanner
Namespace
Cloud
Storage
Service C
Namespace
Namespace
Namespace
Namespace
Service B
Service A
API Gateway
Authority
gRPC
gRPC
gRPC
28
マイクロサービスダッシュボードの仕組み
Single Page Application
API Gateway
Microservice
Dashboard
Go serves assets
gRPC server
GraphQL server
Cloud
Spanner
Browse
Get /
Assets
GraphQL Query
Data
etc
37
データ収集の仕組み: データを集める
Kubernetesリソース
API Gateway
Microservice
Dashboard
GraphQL server
Cloud
Spanner
etc
Browse
Kubernetes API
GraphQL Query Kubernetes API
Development
Production
kubernetes/client-go
Slide 38
Slide 38 text
38
データ収集の仕組み: データを集める
gRPC API定義
API Gateway
Microservice
Dashboard
gRPC server
Cloud
Spanner
Pub/Sub
etc
platform-proto
リポジトリ
CIでFileDescriptorSetを生成してpublish
FileDescriptorSetを保存
46
抱えている課題
各マイクロサービスに対応してほしいことがあるとき
Service A
Service C
Service B
…
🙇
🙇
🙇
🙇
Slide 47
Slide 47 text
47
抱えている課題
マイクロサービス毎にTODOの管理
Service A: TODO
Service C: TODO
Service B: TODO
…
Microservice
Dashboard
Service A Owner
Platform
進捗確認
やること確認
Slide 48
Slide 48 text
48
今後の取り組み
TODO管理用のAPIの提供
Service A: TODO
Service C: TODO
Service B: TODO
…
Microservice
Dashboard
GraphQL API
TODO System
TODO更新
Slide 49
Slide 49 text
49
今後の取り組み
イベントをきっかけとしたTODOの更新
Service A: TODO
Service C: TODO
Service B: TODO
…
Microservice
Dashboard
GraphQL API
TODO System
TODO更新
Pub/Sub
データ更新イベント
Slide 50
Slide 50 text
50
今後の取り組み
イベントをきっかけとした一貫したデータの変換
something
Microservice
Dashboard
GraphQL API
System
変換&更新
Pub/Sub
データ更新イベント