Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マイクロサービスダッシュボードの紹介
Search
Yuta UEKUSA
December 15, 2021
Technology
1
1.9k
マイクロサービスダッシュボードの紹介
https://mercari.connpass.com/event/230951/
Yuta UEKUSA
December 15, 2021
Tweet
Share
Other Decks in Technology
See All in Technology
それでも私はContextに値を詰めたい | Go Conference 2025 / go conference 2025 fill context
budougumi0617
4
1.2k
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
130
"複雑なデータ処理 × 静的サイト" を両立させる、楽をするRails運用 / A low-effort Rails workflow that combines “Complex Data Processing × Static Sites”
hogelog
3
1.9k
Goにおける 生成AIによるコード生成の ベンチマーク評価入門
daisuketakeda
2
100
Modern_Data_Stack最新動向クイズ_買収_AI_激動の2025年_.pdf
sagara
0
200
OpenAI gpt-oss ファインチューニング入門
kmotohas
2
950
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
140
データエンジニアがこの先生きのこるには...?
10xinc
0
440
生成AI_その前_に_マルチクラウド時代の信頼できるデータを支えるSnowflakeメタデータ活用術.pdf
cm_mikami
0
110
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.4k
From Prompt to Product @ How to Web 2025, Bucharest, Romania
janwerner
0
120
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
250
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
4.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Code Reviewing Like a Champion
maltzj
525
40k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
How to Think Like a Performance Engineer
csswizardry
27
2k
Transcript
Infrastructure as Codeで構築したリソースの可視化と再利用 マイクロサービスダッシュボードの紹介
2 自己紹介 2017年7月に旧ソウゾウに入社 2018年1月にメルペイに異動。テックリードとしてマイクロサービスの開発を担当 2019年7月にArchitectチームに異動 現在は主にマイクロサービスのためのダッシュボードの開発を担当 Merpay, Inc. Architect Team
Yuta Uekusa
3 Agenda メルペイのマイクロサービスアーキテクチャについて 01 マイクロサービスダッシュボードの紹介 02 今後の取り組み 03
メルペイのマイクロサービスアーキテクチャに ついて 4
5 マイクロサービスアーキテクチャ Client API Gateway Service B Service A Service
C Authority Cloud Spanner Pub/Sub Cloud Spanner Cloud Storage
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
7 マイクロサービスアーキテクチャ Client Cloud Spanner Pub/Sub Cloud Spanner Namespace Cloud
Storage Service C Namespace Namespace Namespace Namespace Service B Service A API Gateway Authority
8 マイクロサービスアーキテクチャ: インフラ構築 Namespace: Service A Project: Service A boot
strap Service A
9 マイクロサービスアーキテクチャ: インフラ構築 microservices-terraform リポジトリ
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
マイクロサービスダッシュボードの紹介 11
12 マイクロサービスダッシュボードとは? マイクロサービスに関する様々なデータを収集 01 集めたデータを可視化するウェブポータルサイト 02 集めたデータをAPIとして提供 03
13 モチベーション マイクロサービスの状態や品質を把握したい 01 ドキュメントが自動的に生成される状態にしたい 02
14 機能紹介 ・トップ画面 ・サービス詳細画面 ・サービス詳細画面: インフラ ・サービス詳細画面: アプリケーション ・サービス詳細画面: API
・サービス詳細画面: SLO
15 機能紹介: トップ画面
16 機能紹介: トップ画面
17 機能紹介: サービス詳細画面
18 機能紹介: サービス詳細画面 serviceID: merpay-service-a description: This is service-a corporation:
MERPAY teamName: merpay-architect-jp contact: slack: generalChannelId: C0123456 alertChannelId: C12345678 … service spec file
19 機能紹介: サービス詳細画面(サービスの依存関係, 費用のグラフ)
20 機能紹介: サービス詳細画面(インフラタブ)
21 機能紹介: サービス詳細画面(アプリケーションタブ)
22 機能紹介: サービス詳細画面(アプリケーションタブ)
23 機能紹介: サービス詳細画面(APIタブ)
24 機能紹介: サービス詳細画面(APIタブ)
25 機能紹介: サービス詳細画面(SLOタブ)
26 機能紹介: SLOダッシュボード
27 マイクロサービスダッシュボードの仕組み 技術スタック Backend Frontend • Go • Cloud Spanner,
Pub/Sub, Scheduler, Tasks • gRPC, GraphQL (99designs/gqlgen, vektah/dataloaden) • TypeScript • React, Material-UI • GraphQL (apollo-client)
28 マイクロサービスダッシュボードの仕組み Single Page Application API Gateway Microservice Dashboard Go
serves assets gRPC server GraphQL server Cloud Spanner Browse Get / Assets GraphQL Query Data etc
29 データ収集の仕組み Cloud Scheduler: 定期的にデータを取得 01 Cloud Pub/Sub: イベントメッセージからデータを取得 02
Cloud Tasks: マニュアルオペレーション 03 データ収集のトリガー
30 データ収集の仕組み トリガー発動後 API Gateway Microservice Dashboard gRPC server Cloud
Spanner HTTP Cloud Scheduler Cloud Tasks Pub/Sub HTTP HTTP gRPC データ収集 etc
31 データ収集の仕組み トリガー発動後 API Gateway Microservice Dashboard gRPC server Cloud
Spanner HTTP Cloud Scheduler Cloud Tasks Pub/Sub HTTP HTTP gRPC タイムアウト 処理中... etc
32 データ収集の仕組み 愚直に集めている 管理するデータの構造を定義して機械的に処理可能にする データを集める
33 データ収集の仕組み: データを集める マイクロサービスの一覧 API Gateway Microservice Dashboard gRPC server
Cloud Spanner Pub/Sub etc microservices-terraform リポジトリ CIで各microserviceの service-specをpublish service-specを保存
34 データ収集の仕組み: データを集める マイクロサービスの依存関係のグラフ Datadog: /api/v1/service_dependencies Network: network policyの設定(terraformをパース) ServiceEnv:
Podの環境変数の宛先
35 データ収集の仕組み: データを集める 毎月の費用グラフ Microservice Dashboard Cloud Spanner etc 費用データを格納
費用データを保存 BigQuery 費用データを取得 Platform
36 データ収集の仕組み: データを集める GCPリソース Microservice Dashboard Cloud Spanner etc GCPリソースのデータを保存
Cloud Asset API で取得 Cloud APIs microservices-terraform git clone & parse terraform
37 データ収集の仕組み: データを集める Kubernetesリソース API Gateway Microservice Dashboard GraphQL server
Cloud Spanner etc Browse Kubernetes API GraphQL Query Kubernetes API Development Production kubernetes/client-go
38 データ収集の仕組み: データを集める gRPC API定義 API Gateway Microservice Dashboard gRPC
server Cloud Spanner Pub/Sub etc platform-proto リポジトリ CIでFileDescriptorSetを生成してpublish FileDescriptorSetを保存
39 データ収集の仕組み: データを集める SLO Microservice Dashboard Cloud Spanner etc デイリーでSLOの履歴を保存
datadog API で取得
40 データ収集の仕組み: データを集める Schema Service Spec Service Dependency Service Cost
Google Project Kubernetes Namespace Service API Service SLO
41 データの再利用 GraphQL APIを提供 API Gateway Microservice Dashboard GraphQL server
Cloud Spanner Browse GraphQL Query etc GraphQL Query System
42 データの再利用 マイクロサービスに関するデータのHUB Microservice Dashboard
今後の取り組み 43
44 今後の取り組み データの更新イベント Microservice Dashboard Cloud Spanner etc 2.データの更新をpublish Pub/Sub
1.何かデータを保存
45 今後の取り組み データの更新イベントをきっかけに行動を起こす Microservice Dashboard Cloud Spanner etc 2.データの更新をpublish Pub/Sub
1.何かデータを保存 System 3.データの更新をsubscribe 4.アクション
46 抱えている課題 各マイクロサービスに対応してほしいことがあるとき Service A Service C Service B …
🙇 🙇 🙇 🙇
47 抱えている課題 マイクロサービス毎にTODOの管理 Service A: TODO Service C: TODO Service
B: TODO … Microservice Dashboard Service A Owner Platform 進捗確認 やること確認
48 今後の取り組み TODO管理用のAPIの提供 Service A: TODO Service C: TODO Service
B: TODO … Microservice Dashboard GraphQL API TODO System TODO更新
49 今後の取り組み イベントをきっかけとしたTODOの更新 Service A: TODO Service C: TODO Service
B: TODO … Microservice Dashboard GraphQL API TODO System TODO更新 Pub/Sub データ更新イベント
50 今後の取り組み イベントをきっかけとした一貫したデータの変換 something Microservice Dashboard GraphQL API System 変換&更新
Pub/Sub データ更新イベント
51