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
Cloud Run Reliability/Observability at ソウゾウ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ryuzo Yamamoto
April 19, 2023
Technology
800
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloud Run Reliability/Observability at ソウゾウ
Ryuzo Yamamoto
April 19, 2023
More Decks by Ryuzo Yamamoto
See All by Ryuzo Yamamoto
Cloud Run CI/CD + QA at ソウゾウ - Cloud Run Casual Talk !
dragon3
2
510
福岡からニューヨークに転勤になったエンジニアの話
dragon3
1
80
Other Decks in Technology
See All in Technology
Kaggleで成長するために意識したこと
prgckwb
2
420
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
1
440
穢れた技術選定について
watany
18
5.7k
データエンジニアリングとドメイン駆動設計
masuda220
PRO
4
160
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
180
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
940
知らん間に、回ってる
ming_ayami
0
740
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
670
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
230
AIが当たり前の組織で エンジニアはどう育つか
nishihira
0
150
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
220
タスクの複雑さでモデルを選ぶ ── Thompson Samplingで動かす“トークン/コスト最適化
satohy0323
0
570
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.4k
Everyday Curiosity
cassininazir
0
260
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.6k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
470
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
770
WENDY [Excerpt]
tessaabrams
11
38k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The browser strikes back
jonoalderson
0
1.4k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
170
Transcript
1 Cloud Run Reliability/Observability at ソウゾウ Ryuzo Yamamoto Cloud Run
Casual Talk!#2
2 山本 竜三 自己紹介 @dragon3 Software Engineer Lead Architect /
SRE at Souzoh in Fukuoka
3 ソウゾウ / メルカリShops
4 • Architecture, Tech Stack • Observability ◦ Logs, Metrics,
Traces • Reliability ◦ SLOs & Monitors as Code Agenda
5 Architecture Next.js Cloud Run GraphQL Cloud Run imgproxy Cloud
Run microservice Cloud Run microservice Cloud Run Cloud Storage Cloud Load Balancing Cloud SQL Memorystore Cloud Run (70~ services) microservice(s) Cloud Run
6 Tech Stack • Monorepo ◦ Go, TypeScript, Python, Java
◦ 70~ microservices • Bazel, Turborepo • GraphQL / gRPC • Serverless (Cloud Run) • PostgreSQL, Redis • Cloud PubSub, Tasks, Workflows, Scheduler, VertexAI
7 • Architecture, Tech Stack • Observability ◦ Logs, Metrics,
Traces • Reliability ◦ SLOs & Monitors as Code Agenda
8 • Logs ◦ JSON structured logging ◦ Cloud Logging
-> BigQuery • Metrics ◦ Log-based Metrics ◦ Cloud Monitoring -> Datadog • Traces ◦ OpenTelemetry -> Datadog Observability
9 Observability - Logs microservice Cloud Run container log STDOUT
/ STDERR Logging BigQuery { "message": "failed to say hello", "something_id": "xxxxxxxx" "serviceContext": { "version": "1.0.1", "service": "echo" }, "metadata": { "user-agent": "graphql/1.0.0 grpc-node-js/1.7.3", } } Sink
10 Observability - Metrics microservice Cloud Run container log STDOUT
/ STDERR Logging { "message": "grpc: finished server unary /echo.EchoService/Hello", "grpc": { "type": "unary", "kind": "server", "latency": 0.002360152, "code": "OK", "method": "Hello", "service": "echo.EchoService" }, "serviceContext": { "version": "1.0.1", "service": "echo" }, "metadata": { "user-agent": "graphql/1.0.0 grpc-node-js/1.7.3", } } Log-based Metrics Monitoring Log-based Metrics + Other GCP Metrics gRPC interceptor
11 Observability - Traces Next.js Cloud Run GraphQL Cloud Run
microservice Cloud Run microservice Cloud Run microservice(s) Cloud Run datadog-agent Cloud Run OTLP (gRPC)
12 • Architecture, Tech Stack • Observability ◦ Logs, Metrics,
Traces • Reliability ◦ SLOs & Monitors as Code Agenda
13 Reliability - SLOs & Monitors as Code • SLO
をすべての gRPC method 毎に設定 ◦ Availability (e.g. 99.9% / 30 days) ◦ Latency (e.g. p95 100ms) • 設定の自動化 ◦ protobuf plugin + Terraform module • Multiwindow, Multi-Burn-Rate Alerts ◦ https://docs.datadoghq.com/monitors/service_level_objectives/burn_rate/ ◦ https://sre.google/workbook/alerting-on-slos/#6-multiwindow-multi-burn-rate-alerts
14 Reliability - SLOs & Monitors as Code ... rpc
Hello(HelloRequest) returns (HelloResponse) { option (extension.v2.method_monitoring) = { availability: { goal: 99.5 } latency: { threshold_ms: 100 percentile: 95 } }; } ... Terraform configuration protoc apply by CI (GitHub Actions) SLO monitors
15 • Architecture, Tech Stack • Observability ◦ Logs, Metrics,
Traces • Reliability ◦ SLOs & Monitors as Code Wrap Up