Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20180830 Merpay Microservices Platform
Search
tjun
August 30, 2018
Technology
480
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20180830 Merpay Microservices Platform
tjun
August 30, 2018
More Decks by tjun
See All by tjun
SREとしてスタッフエンジニアを目指す / SRE Kaigi 2025
tjun
17
19k
CloudNative環境におけるトラブルシューティングガイド / CloudNative Days Tokyo 2023
tjun
6
2.6k
2023-12-07 SRE Talk クラウドと長く付き合う
tjun
0
270
インシデント対応を改善しよう/2024 TechFeed Experts Night 17
tjun
1
570
メルペイにおけるマイクロサービス運用の苦労と改善 / CloudNative Days Tokyo2020
tjun
16
4.7k
Incident Response / infra study 3
tjun
3
3.8k
絶え間なく変化するメルカリ・メルペイにおけるSREの組織と成長 / SRE Next 2020
tjun
6
21k
メルペイのマイクロサービスとCloud Native / CloudNative Days Kansai2019
tjun
22
23k
メルペイを支えるGKEとCloud Spanner / 2019 Google Cloud Architect Night 1
tjun
1
2.6k
Other Decks in Technology
See All in Technology
AI de Idea
kawaguti
PRO
2
130
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
360
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
beyond jj: config & tools ecosystem
indirect
0
5.2k
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.3k
絵ではじめるKubernetesセキュリティ
aoi1
4
680
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.8k
CLIライブラリ開発を支える技術
htnabe
0
140
事業課題から技術的負債に向き合う
sansantech
PRO
2
2k
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
150
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
1
2.9k
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
640
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Claude Code のすすめ
schroneko
67
230k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
Optimising Largest Contentful Paint
csswizardry
37
4k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
530
Everyday Curiosity
cassininazir
0
320
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
430
Fireside Chat
paigeccino
43
4k
Docker and Python
trallard
47
4.2k
How to build a perfect <img>
jonoalderson
1
6k
Typedesign – Prime Four
hannesfritz
42
3.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Transcript
Merpay SRE @tjun の Microservice基盤
2 自己紹介 Copyright © Merpay, Inc. All Rights Reserved. @tjun
SRE Team at Merpay
3 Merpayのアーキテクチャ 01 今日の目次 02 • Microservice アーキテクチャ Microservicesの構築 •
構成管理 • CI/CD Copyright © Merpay, Inc. All Rights Reserved. 03 Microservicesの運用 • 運用の仕組みづくり • 運用体制
MerpayのMicroserviceアーキテクチャ
メルペイのアーキテクチャ概要 Clients Merpay API Gateway API ServiceA ServiceA ServiceA API
メルペイのアーキテクチャのポイント Clients Merpay API Gateway API ServiceA ServiceA ServiceA API
1. Microservices 2. GKE(Google Kubernetes Engine) 3. API Gateway
Microservices • Scaleする組織&サービスに耐えられるアーキテクチャ • 機能やデータをサービスごとに分離できる ◦ コードが分かれている(当たり前) ◦ チームが分かれている ◦
データベースが分かれている ◦ Kubernetesのnamespaceが分かれている ◦ GCPのprojectが分かれている サービスの安定性・安全性を実現するために重要
MerpayのMicroservices • ほとんどはGoで書かれている ◦ Go microservice templateのようなコードがある • gRPCでやりとり ◦
protoファイルで定義を決めて共有できる ◦ 多言語対応が比較的カンタン • APIレイヤを分離することで、各サービスはサービスの機能に専念 できる ◦ クライアントを意識するのはAPIレイヤの仕事
GKE(Google Kubernetes Engine) • Microserviceのための機能 ◦ Namespace ◦ Secret ◦
RBAC ◦ Managed Istio(まだ使ってない) • 運用が楽になるための機能 ◦ Managed kubernetes ◦ Update/Rollback ◦ Load balance & Autoscale ◦ Auto repair
Merpay API Gateway Clients Merpay API Gateway API ServiceA ServiceA
ServiceA API
Merpay API Gateway (+GLB) • RequestのRouting + Protocol transform(後述) •
共通のEndpoint処理 ◦ DDoS Protection(GLB) ◦ SSL Termination(GLB) ◦ Authentication ◦ Buffering • Observability ◦ Logging & Tracing 参考: 「API GatewayによるMicroservices化」 by deeeet
API Gatewayの特徴 • メルカリのAPI Gatewayとcoreは同じ ◦ もともとcoreがGoのpkgとして実装されている ◦ coreの上にMerpayのロジックを載せている •
API Gateway自体もGKE上に動いている • ObservabilityはMicroserviceでは重要 ◦ ErrorRateやLatancyがサービスの信頼性の指標になる
API GatewayのProtocol Transform 3rd Party Merpay API Gateway API API
Browser App gRPC HTTP + Protobuf HTTP + JSON RESTful API
メルペイのアーキテクチャのポイント Clients Merpay API Gateway API ServiceA ServiceA ServiceA API
1. Microservices 2. GKE(Google Kubernetes Engine) 3. API Gateway
Microservices Platformの構築
Microservice Platform team @mercari • Microservices Platform = GCP, GKEとその周りの仕組み
◦ MerpayのサービスはMicroservicesPlatform上に構築 • Merpay SREはPlatform側の改善にも参加する
CI/CD • CI ◦ GitHubのPRベースの開発 ◦ CircleCIまたは CloudBuildでCI ◦ GoogleDockerRegistryにImageをPush
• CD ◦ SpinnakerでKubernetesのnamespaceに対してdeploy ◦ 開発者自身がdeployを行える ◦ Canary releaseなどの機能も今後利用していく
Bootstrap & Ops with Terraform • 新たなserviceを作るとき `./script/new` コマンドで ◦
GCP Project ◦ Kubernetes namespace ◦ Sentry/Pagerduty などを作成し、紐付けするPullRequestを自動生成するstarter-kitがあ る • Databaseの追加やIAMの追加などインフラに対する変更をTerraformの コードで管理・レビューできる
GCP project for GKE Centralized cluster Namespace: Service A Namespace:
Service B IAM: SRE IAM: Team A Service A Service B RBAC: Team A RBAC: Team B Bootstrap Bootstrap IAM: Team B
Platform Security • EndPointをAPI Gatewayに集約 • Serviceごとにコードやデータを分離 • 権限を持つチームメンバをコードで管理&Review •
GCP, Kubernetes, SpinnakerなどのAudit Loggingとその監視 • 各レイヤでのセキュリティ対策や監視 ◦ Deploy, Container Image ◦ Kubernetes Cluster, Pod ◦ GCP(Database, Network)
Microservicesの運用準備
運用体制イメージ サービスに関する問題 • Error • Latency • DB • 問い合わせ
Service Alert PlatformやInfraの問題 • kubernetes • Gateway • GCPまわり Platform Alert Service Team SRE (Sinmetal) Microservice Platform Team GCP
運用の仕組みの共通化 • Microserviceでは各サービスのチームがOwnerとなって運用を進め ていく。技術選定も自由。 • とはいえ、SREや他のチームのメンバーがサポートするためには共 通化が必要 • ルールの共通化: SLO(Service
Level Objective)を決めよう • ツールの共通化: StackDriver, Datadog, Sentry, Pagerduty
運用の仕組みの共通化 • SLO: サービスが信頼できる状態かどうか判断するための指標 ◦ 例: Gatewayで測定して、あるAPIのRequestの成功率が99.99% ◦ 指標がないと、何を直すのか、いつ緊急対応するのかの判断ができない •
ツールの共通化 ◦ ログ: StackDriver & BigQuery, メトリクス: Datadog, エラー通知: Sentry, 当番通 知: Pagerduty ◦ Microservice starter-kitで自動で各サービスのTeamやProjectなどが生成され る
まとめ
まとめ merpayのSREは • MicroservicePlatformを使ったサービス運用を行うチームです • MicroservicePlatform自体の改善にも参加しています GCPやりたい人、KubernetesやMicroserviceやりたい人、DB, Network, Securityなどが 得意な人、ぜひ一緒にやりましょう!!
merpay 採用ページの SiteReliability までお願いします We are hiring!!!