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
heleeen
April 24, 2024
Technology
3.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
April 24, 2024
More Decks by heleeen
See All by heleeen
アラートと運用知見から始める、自律的なインシデント調査への第一歩
heleeen
0
260
SRE のはじめ方 / DevOps と SLI/SLO #mackerelio
heleeen
1
2.8k
クリティカルユーザージャーニーを利用した SLI/SLO の改善 / #mackerelio
heleeen
13
12k
CloudNative 移行で実現した Mackerel における SaaS 開発 / Saas on AWS 2023
heleeen
0
200
Mackerel におけるTerraform 運用 / Our (Best?) Practice
heleeen
0
520
Other Decks in Technology
See All in Technology
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
180
TiDBファミリーにDWHが新登場!! TiDB最新情報 / TiDB update 202609
yoshiakiyamasaki
0
110
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
170
Hermes Agentで、AIが調べて記事を書くブログを作った話
blueb
0
110
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
120
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
3
21k
SREへの勘違いに気づいた後の話
tomodakengo
0
170
手を動かして実感する、Kiro が変える開発体験
inariku
0
380
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
3.2k
特殊変数大全
dak2
0
140
Harness Engineering on Rails
joelq
0
610
AIに会社の文脈を理解させる技術~上流工程・非エンジニアにも広げるハーネスエンジニアリング実践~
ochtum
0
120
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
370
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
580
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Code Review Best Practice
trishagee
74
20k
Faster Mobile Websites
deanohume
310
32k
Transcript
ja.mackerel.io 障害対応をちょっとずつよくしていくための 演習の作りかた 2024.04.24 Mackerel チーム SRE テックリード 井口景子
井口 景子 (id:heleeen) • 2019年9月にはてなに SRE として入社 • 現在は Mackerel
の SRE テックリード • SRE, Serverless が好き • カメラも好き 自己紹介 2 素敵な色の季節になりました
今日はなすこと • なぜ障害対応演習を行っているか • 障害対応演習の作りかた • Mackerel ではどのような演習を実施したか 3
なぜ障害対応演習を行っているか • 本番障害は必ず起こるものだから ◦ 不具合やオペレーションのミスを無くすのは難しい ◦ 障害防止にとても労力を割けば減らせるが, 開発コストが 増えたり開発スピードは悪化したりする •
障害が起きたときに影響を抑えるための取り組みが重要 ◦ 素早くロールバックできる仕組みを利用する ◦ カナリアリリースで影響範囲を小さくする ◦ 障害対応フローを理解して, 素早く対応できる体制を作る 4
100% SLO から考える障害対応 • エラーバジェットはプロダクト開発で利用したい ◦ エラーバジェット … サービスの信頼性が損なわれる許容度 ◦
本番障害の頻発や復旧が長引いてしまう => 開発ではないところでエラーバジェットを使い切ってしまう => 機能開発や本番リリースができなくなってしまう... • 本番障害で消費されるエラーバジェットはなるべく抑えたい 5 0% SLO エラーバジェット
障害対応をどのように学ぶか • 本番の障害対応の場ではなかなか難しい ◦ 本番の障害対応は本番で障害を収束させるためのものであり, 学びの ためのものではない ▪ 得られる学びももちろんあるが, 目的が違う
◦ 緊張感のある場で成長する人間ばかりではない ▪ 本番障害対応のみでは成長する人が成長するだけの場合が多い ▪ ある程度の水準の対応を全員ができるようになるのは難しい 6
障害対応を効率的に学ぶ • Mackerel チームでは定期的な障害対応演習を実施 ◦ 練習しておくと安心して対応できる ◦ オンボーディングやキャッチアップとしても利用できる 7
演習の作りかた • 演習の目的を定める ◦ この演習で何を学んでほしいかを決めておく ▪ 例 • 規模が大きい障害の対応の仕方 •
障害頻度の低いコンポーネントの学習機会にする ◦ 日頃の障害対応を観察して課題に感じるところを扱う ▪ 例 • 対応に慣れた人と不慣れな人の経験の差が開きつつある • マネージドサービスを利用することでインフラ系の障害発生 頻度が下がったので, 対応経験が少ない人が増えている 8
Mackerel チームの場合 • 目的を定める ◦ SRE が日頃クラウドの運用を行っているので, アプリケーション エンジニアはクラウドにふれる頻度が相対的に低い ▪
アプリケーションエンジニアにクラウドのオペレーションを ある程度体験してほしい ◦ 普段の障害対応で指揮官などの役割に携われていない人が役割を 経験することを優先して, できる人を増やしたい ◦ DR 訓練をついでに実施しちゃいたい 9
演習の作りかた • チームの状態に合わせて学習の形式を考える ◦ 例 ▪ 本番の障害対応が学びの中心となっている • 基礎的な考えかたや慣れている人の考え方を知るとより スムーズに対応ができるようになるかもしれない
▪ 実装上の不具合を見つけるのは得意だが, デプロイ後の調査方法は よくわからない • リクエストの処理の流れの再確認やクラウド上での調査方法 を知ると, より素早く障害の原因を見つけられるようになるか もしれない 10
演習の作りかた • 手を動かせる形式だとなおよい ◦ 聞いたり読んだりだけより手を動かすほうが身につきやすい • 自分で考えたり調査したりする時間を少し作る ◦ 悩んだほうが印象に残りやすい ◦
考える過程で他の学びを得ることもある 11
Mackerel チームで実施したパターン • 5,6人など, 役割に当たる人を増やせる規模にチームをグループ分けする ◦ 手を動かす経験を積んだ人を増やせる ◦ 大規模なフォーメーションの練習はしづらい •
チーム全体で1つの調査と対応を行う ◦ 大きめの障害対応の演習ができる ◦ 演習の規模によって, 役割に当たらない出てきてしまうかもしれない 12
気をつけていること • 起こり得て対応できる内容をシナリオにする ◦ 例 ▪ アクセス数が通常時の10倍になった ▪ イメージがライフサイクルによって削除されてしまった ▪
設定ミスで特定の経路のみ不通になってしまった • 詰め込みすぎない ◦ 練習しておきたいオペレーションやシチュエーションはたくさんある ◦ すべてを一気に演習しても覚えるのは難しいので, 1回の内容は少なく 定期的に何度も行う ▪ 人の入れ替わりにも対応できる 13
Mackerel チームの障害対応演習(講義編) • 基本的なオペレーションの確認 ◦ フェイルオーバー, ロールバックなどを手順書を見ながら実行する ▪ 経験済みの操作にして, 操作に対する不安感が減る
▪ 日常的ではないオペレーションを試すことができる ▪ もし障害発生時に演習で行った操作が必要なら, 演習のドキュ メントを見ればよい 14
Mackerel チームの障害対応演習(実践編) • 検証用の環境で障害を発生させ, 調査・対応を行う ◦ 障害対応フォーメーションも実施 ◦ 学んだことを手を動かして試す機会にする ▪
本番障害ではないので, 学習のチャンスにできる • 監視設定の検証にもなる ◦ 障害が発生したときに適切なアラートが発生するか ◦ 素早くアラートで検知することができているか 15
演習での学び • 現在のアーキテクチャでの課題が見つかった • runbook の不足や不備が見つかった ◦ runbook にたどり着きにくいというのも見つかってよかった •
演習後の障害対応フローに今まで以上のスムーズさがあった 16 Slack での状況共有の わかりやすさもあがった
まとめ • 障害対応も練習すると上手くなる • チームの状態を観察して, 学習のテーマと手段を定めるのが大事 • 先日の障害対応演習の実際の内容は, Hatena Developer
Blog にて公開予定です 17