故障時に機能を一部縮小してでもシステムを動かし続ける設計思想。
フェールソフトとは、故障時に全部を止めるのではなく、機能や性能を落としてでもシステムを動かし続ける設計思想のことです。「フェール=故障」「ソフト=やわらかく」で、故障の影響を「やわらかく受け止める」イメージです。
最も大切にするのは「サービスを止めないこと」です。一部が壊れても、できる範囲のサービスは維持し続けます。すべて止めるか全力で動くかの二択ではなく、その中間(できる範囲で動かす)を選ぶのが特徴です。
身近な例で考えると、エンジンが複数ある飛行機で1基が止まっても、残りで飛び続けるのがフェールソフトです。速度や余力は落ちますが、墜落せず空港まで飛び続けられます。上の図解のように、停止したエンジンを切り離し、生きている3基で運航を続けます。
フェールソフトを実現する具体的な動きが縮退運転(フォールバック)です。これは故障した部分を切り離し、残った部分だけで最低限のサービスを維持する運転状態のことです。「縮退=規模を縮めて続ける」という意味です。
縮退運転の具体例には次のようなものがあります。
・航空機:エンジン1基が停止しても、残りのエンジンで飛行を続ける
・サーバ群:1台が故障したら切り離し、残りのサーバで処理を続ける(性能は落ちる)
・Webサービス:一部機能が止まっても、主要な機能だけは使えるようにする
・記憶装置:一部のディスクが壊れても、残りで読み書きを継続する
ポイントは「全停止か全力稼働かの二択にしない」ことです。飲食店でコンロが1台壊れても、店を閉めず提供メニューを絞って営業を続けるのと同じ発想です。性能の低下を受け入れる代わりに、サービスそのものは止めないのが縮退運転です。
名前が似ていますが、故障時に止めるか・動かし続けるかで方向性が逆です。フェールソフトは「止めずに動かし続ける」ことを優先するのに対し、フェールセーフは安全のために「止めることも選ぶ」のが基本です。
| 観点 | フェールソフト | フェールセーフ |
|---|---|---|
| 最優先すること | 止めずに動かし続ける | 危険を出さない |
| 故障時の動き | 機能を縮小して継続 | 安全な状態へ移行(停止も可) |
| 代表例 | エンジン1基停止でも飛行 | 信号機の故障で全方向赤 |
覚え方としては、フェールソフトは「動かし続けたい」、フェールセーフは「危険を避けたい(だから止めてもよい)」と対で捉えると区別しやすくなります。どちらを採るかは、止めることのリスクと動かし続けることのリスク、どちらが大きいかで決まります。
Q1.フェールソフトの説明として最も適切なものはどれか。
Q2.フェールソフトにおける縮退運転(フォールバック)の説明として適切なものはどれか。
Q3.フェールソフトとフェールセーフの違いとして適切なものはどれか。