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

Microservice Dashboard Introduction and Deep Dive

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for mercari mercari PRO
August 25, 2022

Microservice Dashboard Introduction and Deep Dive

メルペイでは、数多くのマイクロサービスが開発者のオーナーシップのもとに運用されています。多くのマイクロサービスが運用されていく一方で、ひとつひとつのサービスの品質や管理しているチーム等の把握が困難になりました。
これを解決するために、全てのマイクロサービスの情報を一つの場所に収集し、閲覧できるマイクロサービスダッシュボードを開発しました。
本セッションでは、マイクロサービスダッシュボードの画面を交えてデータ収集の仕組みや、収集したデータを単に表示するだけでなく、APIとして提供し2次利用する取り組みについてご紹介します。
------
Merpay Tech Fest 2022は3日間のオンライン技術カンファレンスです。
IT企業で働くソフトウェアエンジニアおよびメルペイの技術スタックに興味がある方々を対象に2022年8月23日(火)から8月25日(木)までの3日間、開催します。 Merpay Tech Festは事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知れるお祭りです。 セッションでは事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介予定です。お楽しみに!

■イベント関連情報
- 公式ウェブサイト:https://events.merpay.com/techfest-2022/
- 申し込みページ:https://mercari.connpass.com/event/249428/
- Twitterハッシュタグ: #MerpayTechFest
■リンク集
- メルカリ・メルペイイベント一覧:https://mercari.connpass.com/
- メルカリキャリアサイト:https://careers.mercari.com/
- メルカリエンジニアリングブログ:https://engineering.mercari.com/blog/
- メルカリエンジニア向けTwitterアカウント:https://twitter.com/mercaridevjp
- 株式会社メルペイ:https://jp.merpay.com/

Avatar for mercari

mercari PRO

August 25, 2022

More Decks by mercari

Other Decks in Technology

Transcript

  1. 開発の経緯 • マイクロサービスの情報の把握が難しい ◦ サービスの概要 ◦ SLOの定義 ◦ 開発しているチームメンバー ◦

    SlackチャンネルやPagerduty • 運用ドキュメントとして社内Wikiにまとめていたが全てのサービスを網 羅できておらず管理が大変 • 2019年12月頃に開発がスタート
  2. 技術スタック • Backend ◦ Go ◦ Cloud Spanner, Pub/Sub, Scheduler

    ◦ GraphQL, gRPC • Frontend ◦ TypeScript ◦ React, MUI ◦ GraphQL
  3. API API Gateway Microservice Dashboard GraphQL API gRPC API Spanner

    GraphQL Query System Pub/Sub Scheduler HTTP Request
  4. Microservice Starter-kitのデータを集める仕組み Microservice Dashboard microservices-terraform ① git clone
 ③ 保存


    ② Terraformファイルをパース&加工 
 Spanner Cloud Schedulerによる時間トリガー
  5. マイクロサービスの環境変数 • Kubernetes カスタムコントローラー ◦ 特定のリソースの状態変化に応じて任意の処理を行う • PodとCronJobリソースの状態変化に応じて処理を行うコントローラー を開発 ◦

    namespace内のConfigMapを含む環境変数を取得し、宛先の パターンに当てはまる文字列を抽出する ◦ 既存データと抽出したデータを比較して差分があれば更新
  6. SLOのステータスを集める仕組み Microservice Dashboard ② データを加工して保存 
 ① Datadog API で取得

    
 Spanner Cloud Schedulerによる日次トリガー microservices-terraform SLO IDなどを連携