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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hiroki Matsumoto
September 24, 2023
Technology
260
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
250
初めてのPSI試験 with Vault Associate
hirokimatsumoto
0
270
多数のプロダクトを開発・運用するためのツール環境
hirokimatsumoto
0
200
デプロイメント手法を選択する/Decide the way of deployment
hirokimatsumoto
2
1.1k
Podライフサイクルを体験する/ux-with-pod-lifecycle
hirokimatsumoto
1
590
Effective Container with VSCode Remote Container
hirokimatsumoto
0
180
GKE+Argo workflow
hirokimatsumoto
1
610
Ansibleをやろうと思ったきっかけ/The-reason-why-I-want-to-learn-Ansible
hirokimatsumoto
0
120
GraalVM Native Imageが 見せた未来/graalvm-native-image showed the future
hirokimatsumoto
2
550
Other Decks in Technology
See All in Technology
グローバル基準のSREは、運用現場でどう機能したか:成熟度アセスメントの実践 / SRE NEXT 2026
sorawatanabe
0
130
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
140
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
6.5k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
150
Retriever と Reranker、結局どうする?
kazuaki
3
700
Data Hubグループ 紹介資料
sansan33
PRO
0
3.1k
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
3
1.1k
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
280
Digitization部 紹介資料
sansan33
PRO
2
7.7k
AI時代の強いチームの作り方
yuukiyo
25
16k
Goでデータパイプラインを作ろう
sansantech
PRO
0
340
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
The Cult of Friendly URLs
andyhume
79
7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
First, design no harm
axbom
PRO
2
1.2k
A Tale of Four Properties
chriscoyier
163
24k
Color Theory Basics | Prateek | Gurzu
gurzu
0
410
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
4 Signs Your Business is Dying
shpigford
187
22k
Automating Front-end Workflow
addyosmani
1370
210k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
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