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 ご静聴ありがとうございました