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
システム改善・育成のための障害対応訓練
Search
Hiroki Matsumoto
September 24, 2023
Technology
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
システム改善・育成のための障害対応訓練
Hiroki Matsumoto
September 24, 2023
More Decks by Hiroki Matsumoto
See All by Hiroki Matsumoto
CI/CD環境としてGitHub Actionsを選んだ理由
hirokimatsumoto
0
260
初めてのPSI試験 with Vault Associate
hirokimatsumoto
0
280
多数のプロダクトを開発・運用するためのツール環境
hirokimatsumoto
0
210
デプロイメント手法を選択する/Decide the way of deployment
hirokimatsumoto
2
1.1k
Podライフサイクルを体験する/ux-with-pod-lifecycle
hirokimatsumoto
1
600
Effective Container with VSCode Remote Container
hirokimatsumoto
0
190
GKE+Argo workflow
hirokimatsumoto
1
620
Ansibleをやろうと思ったきっかけ/The-reason-why-I-want-to-learn-Ansible
hirokimatsumoto
0
130
GraalVM Native Imageが 見せた未来/graalvm-native-image showed the future
hirokimatsumoto
2
560
Other Decks in Technology
See All in Technology
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
1
160
セルフサービスのオブザーバビリティ基盤をOpenTelemetryで作る / Building a Self-Service Observability Platform with OpenTelemetry
ymotongpoo
3
500
VS Code × GitHub Copilot での Fabric 開発
ryomaru0825
1
210
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
150
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
2.6k
【Findyテック文化祭ワークショップ】新卒エンジニア&採用担当と作る、 なりたい姿と今やるべき一歩
dip_tech
PRO
0
150
キャリアLT今日までそして明日から
kentapapa
1
140
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
510
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
270
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
310
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
190
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
110
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
4 Signs Your Business is Dying
shpigford
187
23k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
450
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
340
Writing Fast Ruby
sferik
630
63k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
600
WCS-LA-2024
lcolladotor
0
840
Transcript
システム改善・育成のための障害対応訓練 September 22, 2023 Matsumoto Hiroki Marketing Cloud Platform Department
Rakuten Group, Inc.
2 Profile 松本宏紀 ( Matsumoto Hiroki ) • Reliability Engineering
Team • Software Engineer • Joined Rakuten in 2020 • Published • OSS: Passenger Go Exporter • Presentation: デプロイメント⼿法を選択する ~ Flagger/Argo Rollouts ~ • GKE + Java + Cassandra → Ruby + Go + Kubernetes ( Private Cloud / AKS ) • Twitter : @hirokimatsumo13
3 経験値を引き継ぐ
4 Table of Contents 1. Assets 2. Training 3. Examples
5 Assets RunBook 障害発⽣時の取り扱い説明書。リカバリ⼿順などをアラートに対してリンク、またはアラート⾃体に埋め込 まれる。 Incident Report Template 障害発⽣時の報告⽤テンプレート。ユーザー視点で、どこにどのような影響が発⽣したのかを展開するため の形式。
Training 過去の障害発⽣や、システムの構成要素から障害を実際に発⽣させ、リカバリーまでを実際に経験し、シス テム上の問題や⼈の成⻑ポイントを確認する。
6 Training Trainee ☑ 基本的な事は⾃⼰学習で⾜りる ☑ 新卒1-3年⽬ ☑ 役割: Developer
+ Operator Trainer ☑ 運⽤経験3年以上 ☑ 対象プロダクト有識者 Manager ☑ レポート先 Training Environment ☑ トレーニング専⽤環境 Conductor ☑ 運⽤経験3年以上 ☑ 対象プロダクト有識者 擬似障害発⽣ 検知・影響範囲確認・原因特定・復旧 協⼒ 報告
7 Example 1: 応答遅延 Load Balancer Istio App Nginx Proxy
Pattern A Nginx request_time : 10 upstream_response_time : 10 App elpased_time : 10 Pattern B Nginx request_time : 10 upstream_response_time : 10 App elpased_time : 0.1 Pattern C Nginx request_time : 10 upstream_response_time : 0.1 App elpased_time : 0.1 https://nginx.org/en/docs/http/ngx_http_log_module.html https://nginx.org/en/docs/http/ngx_http_upstream_module.html Pattern A~Cはそれぞれどこで問題が発⽣してる︖
8 Example 1: 応答遅延 Nginx: request_time request processing time in
seconds with a milliseconds resolution; time elapsed between the first bytes were read from the client and the log write after the last bytes were sent to the client. 引⽤元︓https://nginx.org/en/docs/http/ngx_http_log_module.html
9 Example 1: 応答遅延 Load Balancer Istio App Nginx Proxy
障害発⽣⽅法 専⽤PGにてクライアントからパケ ット送信箇所に遅延を⼊れて再現 単純に⾼負荷にする ( CPU/Packet送受信 ) Istio fault-injectionの利⽤ 単純に⾼負荷にする ( CPU/Packet送受信 )
10 Example 1: 応答遅延 それぞれ計測される時間がどこからどこまでかを正確に把握する これを理解していないと、システムの問題であるかどうかも正確に把握できない状況に陥る可能性がある。 SLI (Service Level Indicator)として、どの部分がより適切であるかを理解する
APMなどでアプリケーション側だけの応答速度を計測するだけでは不⼗分である事を理解する。
11 Example 2: PromQLの正確性 sum(rate(istio_requests_total{reporter="destination", response_code=~"5.*"}[5m])) / sum(rate(istio_requests_total{reporter="destination"}[5m])) * 100
> 5 実際のシステムに反映する場合、どのような点に考慮すべきか︖
12 Example 2: PromQLの正確性 rate/irateの違い Range全体 / 最後2点での計算の差異。 https://prometheus.io/docs/prometheus/latest/querying/functions/ counter
resetへの考慮 https://github.com/prometheus/prometheus/issues/1673 そもそもcounterは0から始まるとは限らない。 定期的にリセットされる。 ※バージョンによって期間、動きの差異有り
13 Example 2: PromQLの正確性 reporter=destination or source destination側はretry分も含まれてしまう場合がある。また逆にmetricsが取れていない場合もある のでsource側での計測結果を主に利⽤している。 https://istio.io/latest/docs/reference/config/metrics/
response_flag response_flagを⾒て、istio側でどのような問題が発⽣してそのエラーを返したのか確認。 https://istio.io/latest/docs/reference/config/metrics/ https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access- log-format-response-flags Istio App Nginx Proxy destination source
14 理論と実践 ⾒て学び、経験を得て⾃分のものにしていく。 「わからないけど、そうなってる」ではなく、なぜそうなってるかを理解していく。 ただ基本的にはそういった要素がなくなるように、システムを改善できると良い。
None