てくなべ (tekunabe)

ansible / network automation / 学習メモ

予防より復旧:システム障害に対する考え方

■ 予防より復旧

以前「Infrastructure as Code」という本を読んだときの全体的な感想として「予防より復旧が重要」と書きました。

tekunabe.hatenablog.jp

いくらシステムを堅牢に作っていても壊れれるときは壊れます。 また、ニーズなどの外部環境は絶えず変更が繰り返され、システムへの変更を行う際にも障害は発生しやすいです。 そのため、障害を恐れて予防に注力するあまり復旧の仕組みをおろそかにするよりも、障害を前提としていかに早く、正確に復旧させるかを考える方が重要だと感じました。


レジリエンスエンジニアリングとSafety-Ⅰ、Safety-Ⅱ

最近「レジリエンスエンジニアリング」「Safety-Ⅰ、Safety-Ⅱ」という言葉に出会いました。  

参考: レジリエンスエンジニアリング目指すSafety-Ⅱ とその実現法(PDF)  

私が目にする資料での「レジリエンス」は「復元力」「耐久力」といった意味合いです。 Safety-Ⅰ、Safety-Ⅱ は、安全に対する考え方のモデルです。

- Safety-Ⅰ: うまくいかなくなる可能性を持つことを取り除く
- Safety-Ⅱ: うまくいくこと理由を調べ、それが起こる可能性を増大させる

参考: Safety‐1 & Safety‐2―安全マネジメントの過去と未来

参考: Safety-Ⅰ&Safety-Ⅱ ─ 安全マネジメントの過去と未来(書籍紹介PDF)

ちょうど、予防メインの考え方がSafety-Ⅰ、復旧メインの考え方がSafety-Ⅱという対応なのかなと思い、自分の考えが少し整理できました。 「設定より規約」のようなノリの言葉として、システム設計をするうえで考慮するポイントの一つにしていきたいと思います。