障害対応を楽しむ7つのコツ
by
ryuichi1208
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
1 障害対応を楽しむ7つのコツ 渡部 ⿓⼀ Road to SRE NEXT@仙台
Slide 2
Slide 2 text
技術部プラットフォームグループ 2021年 中途入社 2 自己紹介 渡部 龍一 Watanabe Ryuichi ● ロール: SRE ● 仙台出身、六丁の目あたりに住んでます ● SNS: @ryuichi_1208 ● 好きなこと: 障害対応、EOL対応 ● 好きな仙台っ子ラーメン: 味濃いめ、油なし、麺普通
Slide 3
Slide 3 text
3 障害対応楽しめていますか?
Slide 4
Slide 4 text
4 対象 ● 障害対応をあまりやったことない方 ● 障害対応に不安がある方 ● 障害対応があまり好きじゃない方
Slide 5
Slide 5 text
5 障害対応とは?
Slide 6
Slide 6 text
6 ● 運⽤中のシステムに継続できない障害が発⽣した際に、復旧させるための作業 ● Webシステムにおける障害対応は、システムの信頼性を維持し、ビジネスの 継続性を確保するために不可⽋な活動 障害対応とは
Slide 7
Slide 7 text
7 ● ビジネス継続性の確保 ● ビジネスの競争優位性の確保 ● 顧客満⾜度の維持 ● ブランドイメージの保護 ● 法的‧規制要件の遵守 障害対応は何故必要なのか?
Slide 8
Slide 8 text
8 ビジネスにおいて障害対応は重要!
Slide 9
Slide 9 text
9 障害発⽣を0にするために頑張ろう!
Slide 10
Slide 10 text
10 ● 全く⼿を⼊れないサービスでCDNとかで静的なコンテンツだけを返すみたいな Webサービスなら可能かもしれない? ● とはいえそんなサービスで利益を得続けるのは現実的ではない ● サービスをローンチしても競合他社がすぐに現れてくる時代 ● サービスも進化させなければ留まることすらできずに緩やかに後退する ● 継続して新機能の開発は必要だしよりよいプロダクトを作り続ける必要が出てく る 障害0は可能なのか?
Slide 11
Slide 11 text
11 ● 動いているものに⼿を加える必要が出てくる ● 開発環境やステージング環境でプロダクション環境と同等のテスト、シミュレー ションができれば障害は起きないかもしれない? ● 実ユーザーやインフラの規模など完璧にシミューレートするのは困難 ○ スロークライアント ○ 今はサポートしてないようなクライアント、プロトコル ○ 想定してないリクエストが数倍やってくる 障害0は可能なのか?
Slide 12
Slide 12 text
12 障害発⽣を0にするのは難しそう
Slide 13
Slide 13 text
13 ● ビジネス継続性の確保 ● ビジネスの競争優位性の確保 ● 顧客満⾜度の維持 ● ブランドイメージの保護 ● 法的‧規制要件の遵守 障害対応は何故必要なのか?(再掲)
Slide 14
Slide 14 text
14 障害対応が必要な場⾯はプレッシャーが... 怖い、緊張する、やりたくない
Slide 15
Slide 15 text
15 障害対応を楽しむための7つのコツ
Slide 16
Slide 16 text
16 1. ドキュメントの整備をしておく 2. 障害発⽣時を⾒越してツールを整備しておく 3. 特定技術における得意分野を作っておく 4. プロダクションでやりたいことを考えておく 5. ゲーム感覚で楽しんでみる 6. インシデントコマンダーになってみる 7. 絶賛募集中! 7つのコツ
Slide 17
Slide 17 text
17 ● 障害対応は本番環境で操作をしがち ● 全くわからない操作をやるのは怖い ● 対応⽅法のドキュメントなどが整備されていれば怖さは緩和される(はず) 1. ドキュメントの整備をしておく
Slide 18
Slide 18 text
18 ● ツールを整備したり⾃作したりして障害発⽣に備える ● 作った以上は使いたくなる ○ オブザーバビリティの実装 ○ bpftraceとかのワンライナーを整備 ○ AIに⾷わせるようのシステムメトリクスを出⼒するCLIを⾃作したり 2. 障害発⽣時を⾒越してツールを整備しておく
Slide 19
Slide 19 text
19 ● ミドルウェア、フレームワークでここはまかせろ!的なのを作っておく ● 実業務ではあまり使わないような知識が役だったりする ○ コード読む、issue追う、バグトラッキングシステムみる、 コントリビュートする 3. 特定技術における得意分野を作っておく
Slide 20
Slide 20 text
20 ● 負荷が⾼いけど実環境でやってみたいことを上げておく ● perfコマンドでカーネルのどこでボトルネックになってるか知りたい ● MySQLのバッファープールの中⾝⾒たい ● 独⾃パッチを当てたNginxをプロダクションで試してみたい ● 試してみたかったミドルウェアのパラメータを列挙しておいたり 4. プロダクションでやりたいことを考えておく
Slide 21
Slide 21 text
21 ● 状況整理&持っている知識の引き出しを開けていく作業 ● 脱出ゲームをやってる時と似たような状況(ストレスフルではあるが...) ● モチベーションを⾼め、楽しみながらスキルを向上させる ○ ゲーミフィケーション ○ 復旧最優先の中で取り組むのは難しいので過去のポストモーテムドキュメントなどか ら擬似的に障害対応を再現させつつ取り組んでみるのが個⼈的にはおすすめ 5. ゲーム感覚で取り組む
Slide 22
Slide 22 text
22 ● インシデントを解決に導く指揮官 ● 全体を俯瞰してみる⽴場は楽しい、⾃分が意思決定して進んでいくのも楽しい ● 最初から実際の障害でやるよりかはTable Top Exerciseのように演習で場数を踏 んでみるのもおすすめ ○ AWS フォールトインジェクションサービスで擬似障害をやってみる ■ IOストレステスト ■ パケット損失 6. インシデントコマンダーになってみる
Slide 23
Slide 23 text
23 まとめ
Slide 24
Slide 24 text
24 ● ビジネスにおいて重要な障害対応、プレッシャーがある中で⾃⾝の100%の能⼒ を発揮し切るのは難しい ● 今回の発表のように発⽣することを前提として楽しむための⼼構えを持っておく ことでより良い対応ができるようになるはず ● 「怖い、緊張する、やりたくない」というマイナスイメージの緩和策に繋がれば 良いなと思っています まとめ
Slide 25
Slide 25 text
25 ● 障害対応”中”にフォーカスした内容であって障害対応後のポストモーテム、 再発防⽌策の実施が重要だとそこの発表をYAPCでしたのでぜひVoteお願いしま す!!! まとめ
Slide 26
Slide 26 text
26 ご静聴ありがとうございました