はじめに
基本情報技術者や応用情報技術者を勉強していると登場するシステムの信頼性の考え方。
「フェールセーフ」「フェールソフト」「フォールトトレランス」...とにかく色んな考え方がたくさんあって忘れがちになるので代表的な考え方を自分なりに整理してみました。
システムの信頼性の種類
フェールセーフ
英語で書くと「Fail-Safe」、日本語では「失敗時の安全」という意味になります。
つまり、システムに障害が発生したら、安全性を第一優先してシステムを停止するという考え方です。
例えば、故障すると赤信号に切り替える信号機、倒れたら火が消えるストーブなどです。
フェールソフト
英語で書くと「Fail-Soft」、日本語では「失敗時の安全」という意味になります。
つまり、システムに障害が発生したら、システム全体を止めずに一部の機能を切り離して稼働させ続けるという考え方です。
例えば、停電が発生した際にバッテリに切り替わるUPSを使用して、一部の機能だけを優先してシステムを継続し続けるのがフェールソフトです。
ちなみに、類似用語に「フォールバック」という言葉がありますが、こちらは考え方ではなくフェールソフトという考え方に基づいて実際に行う操作のことを意味します。
フォールトトレランス
英語で書くと「Fault-Torelance」、日本語では「故障に耐える」という意味になります。
つまり、システムが故障しても 正常に稼働し続けるという考え方です。
例えば、予備の電源系統やバックアップ用のサーバーなどが当てはまります。サーバーが突然故障してもシステムの中断を防ぐことができます。
前述した「フェールソフト」と設計思想が似ていますが、一部の機能を制限してシステムを継続するフェールソフトに対して、フォールトトレランスは機能を切り離さずに全てのシステムを正常に稼働し続けるという点で異なります。
フォールトアボイダンス
英語で書くと「Fault-Avoidance」、日本語では「故障を回避する」という意味になります。
つまり、故障そのものを回避するために障害自体が起きにくいように設計するという考え方です。
具体的な例は、故障によって大事故を招く恐れのある自動車や宇宙船、人命に関わる医療機器などです。
フールプルーフ
英語で書くと「Fool-Proof」、日本語では「愚か者に耐える」という意味になります。ここでの愚か者はシステムを操作する人、オペレーターを指します。
つまり、使用者が誤った操作をしても重大な事故や問題が発生しないように設計するという考え方です。
身近な例でいうと、ドアを閉めないと起動しない電子レンジ、蓋を閉めないと回らない洗濯機などがあります。
さいごに
システムの信頼性という大きな括りで見るとどれも似たような考え方だと思います。しかし、1つ1つの設計思想はどれも異なる考え方で。今後のシステム開発を進めていく上でも重要な考え方になると思いました。