0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フェールセーフ、フールプルーフ、フェールソフト、フォールトトレランス…似たような単語をちゃんと覚えたい。

0
Posted at

似ている4つの概念を使い分ける

システムの信頼性を高める設計思想には、似たような名前の言葉が並んでいます。
この4つは「どのタイミングで」「何を最優先に守るか」という設計の優先順位が異なります。

  • フールプルーフ: ユーザーの誤操作を最初から防ぐ(入口でガード)
  • フェールセーフ: 壊れたら「安全」に止める(停止を優先)
  • フェールソフト: 壊れたら「継続」させる(機能低下を許容)
  • フォールトトレランス: 壊れても「正常」に動かし続ける(冗長化でカバー)

納得できる解説:身近な例でリファクタリング

1. フールプルーフ

  • 思想: 「人間はバカなことをする(アホなミスをする)」という事実ベースの視点。
  • : 洗濯機の蓋を閉めないと脱水が始まらない。
  • 納得ポイント: そもそも「危険な状態」になる操作をシステム的に拒否します。

2. フェールセーフ

  • 思想: 「何かが壊れたら、とにかく『安全側』に倒して停止させる」という安全優先。
  • : 信号機が故障したら、全部「赤」にする。 列車のブレーキは、電気が切れると(故障すると)自動的にかかる。
  • 納得ポイント: 「動き続けるリスク」よりも「止まる安全」を選びます。

3. フェールソフト

  • 思想: 「一部が壊れても、機能を落としてでも(ソフトに)動かし続ける」。
  • : 4発エンジンの飛行機で、1発止まっても残りの3発で飛び続ける。
  • 納得ポイント: 「全停止」という最悪のバグを避けるための、段階的な機能低下(縮退運転)です。

4. フォールトトレランス

  • 思想: 「一部が壊れても、ユーザーに気づかせず100%のパフォーマンスを維持する」。
  • : サーバーの電源を2重化しておく。 片方が死んでも、もう片方が瞬時に肩代わりする。
  • 納得ポイント: そもそも「障害」を「許容」できるだけのリソースを二重三重に用意(冗長化)しておく考え方です。

まとめ:

これらを使い分けるコツは、「異常が起きる前か、起きた後か」、
そして起きた後は「システムの停止が許されるかどうか」で切り分けることです。

異常を「未然に防ぐ(事前)」

→ フールプルーフ

異常が「起きてしまった後(事後)」

止めるべき(安全が最優先)
→ フェールセーフ

止めてはいけない(継続が最優先)
・機能が低下しても動かす → フェールソフト
・100%の正常稼働を維持する → フォールトトレランス

🍌NanoBanana君による解説漫画

xxxxx.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?