フェールソフト 【イラスト図解】
英語: fail soft
フェールソフトとは
「フォールト(失敗)が存在しても,機能又は性能を縮退しながらアイテムが要求機能を
遂行し続ける,設計上の性質.」(Z 8115)
→フォールト
フェールソフトリ
英語:fail softly
「アイテムに故障が発生してもシステムや装置全体に急激で大きい影響を及ぼさないように,一部の故障にとどめたり,全体への波及を遅くするなどの設計思想.
安全帽(ヘルメット)や安全ベルトは事故にあっても衝撃を和らげることができるという意味でフェールソフトリである.」
引用先:クォリティーマネジメント用語辞典 日本規格協会
わかりやすく フェールソフト
「フェールソフト」は、システムの一部が故障しても、完全に停止せずに最低限の動作を続けることを指す設計思想で、英語では “Fail Soft” あるいは “Graceful Degradation”です。
“Fail Soft”は直訳すると「ソフトに失敗する」、”Graceful Degradation”は「優雅な劣化」となりますが、いずれも一部の故障によって全体が停止することなく、可能な限り機能を続けるという意味になります。
フェールソフトは、システムに障害が発生したときに、機能を全面的に停止させず、一部の機能・性能を落とすことでサービスを維持します。全体のサービスを提供し続けることで、業務、機能の継続を図ります。また、不慮のシステム停止から引き起こされる可能性のあるセキュリティリスクやデータ損失を回避する役割もあります。
「フェールソフト」と似た単語に、「フェールセーフ」があります。英語では “Fail Safe” といい、直訳すると「安全に失敗する」となります。フェールセーフは、何らかの障害や異常が発生した場合に、システムを最も安全な状態に移行させた後に停止させることを目指す考え方です。つまり、安全性を最優先にしています。
一方、フェールソフトは、システムの一部に障害が発生した場合でも、可能な限り機能を提供し続けることを目指します。
例えば、飛行機((双発機)のエンジンが2つある理由は、片方が完全に停止しても、もう片方で飛行できるようにするというフェールソフトの思想から設計されています。
フェールソフトとフォールトトレラント 違い
フォールトトレラント(Fault Tolerant)とは障害発生時、機能を縮小せずに継続させる設計手法。
広義では「問題発生時の備え」という考え方そのものを指したりもする。
→ 「もしも障害が起こったら」という想定がある。
何かが起こっても今まで通りに稼働させる。
具体例:
・停電時でも発電機の起動で電力供給を継続するビル
一方、フェールソフトでは装置全体に急激で大きい影響を及ぼさないように,一部の故障にとどめたり,全体への波及を遅くする考え方です。
フェールソフトの身近な例
フェールソフト(Fail soft)は、システムや装置が故障した場合でも、最小限の機能を維持し、それにより悪影響や危険を最小限に抑える設計です。以下に、具体例を記載。
パラシュート
スカイダイビングでは、メインのパラシュートとリザーブ(予備)のパラシュートが装備されています。メインのパラシュートが開かないとき、リザーブパラシュートが開くことでダイバーの生命を守ります。
航空機のエンジン
商業旅客機は多くの場合、複数のエンジンを備えています。一つのエンジンが故障したとしても、他のエンジンで飛行を続けることが可能です。これにより、乗客の安全を最優先にすると同時に、予定された目的地への到達も可能となります。
火災報知器
ビルや住宅では、各部屋に火災報知器が設置されています。一つの報知器が故障しても、他の報知器が火災を検知し警報を発することで、早期に避難する機会を提供します。
自家発電機
病院やデータセンターなどの重要な施設では、主電源が停止した場合に備えて予備の自家発電機が設けられています。これにより、電力供給が途絶した場合でも、医療機器の動作やデータの保全など、最低限の業務を継続することができます。
フェールソフトのポイント
フェールソフト設計を達成するための具体的な実現方法を理解することは、このアプローチの効果を十分に引きだすために重要です。
冗長化
冗長化は、システム内の重要なパーツ・構成要素を複数用意し、一方が故障した際にも、残りがカバーし、システム全体の動作を維持します。たとえば、データセンターでは通常、複数のサーバーや冷却装置が設置されており、一部のハードウェアが故障しても、他のハードウェアがその役割を引き継ぐことでサービスを継続できます。冗長性を設計に取り入れることで、システムの堅牢性と信頼性が向上し、故障時でもダウンタイムを最小限に抑えることが可能となります。
分散化
分散化は、システムを物理的または論理的に複数の部分に分割し、一部が故障しても他の部分が正常に機能し続けるという考え方です。例えば、クラウドコンピューティングでは、データや処理を複数のサーバーに分散させ、単一の故障点を排除します。これにより、一部のシステムが故障したとしても、他の部分が機能し続けることで、全体のシステムが停止することを防ぎます。
また、単に「壊れた時にどうするか?」だけではなく、障害の兆候を察知し、先回りして対応することも重要です。
自己診断と自己修復
システムが自身の状態を監視し、異常を検知した場合に自動的に修復処理を行うというアプローチです。監視ソフトウェアはシステムのパフォーマンスを監視し、異常な動作を検知した場合には自動的に再起動やリソースの再割り当てなどの修復措置を実施するなどです。これにより問題がユーザーに影響を及ぼす前に解決することが可能となります。自己診断と自己修復をシステムに導入することで、故障からの復旧時間を大幅に短縮し、システムの信頼性と可用性を向上させることができるかもしれません。
予防的なメンテナンス
定期的にシステムの状態をチェックし、予期しない故障を未然に防ぐメンテナンスも大切です。ハードウェアの消耗品の交換やソフトウェアのパッチ適用など、予防的なメンテナンスを行うことで、突発的な故障からシステムを守ることができます。
フェールソフトの利点、欠点
フェールソフト設計の採用は、システムの堅牢性を向上させ、サービスの停止を防ぐことを目指しています。
消費者の視点
消費者にとって、フェールソフト設計の目的は、サービスの信頼性と利便性の向上であり、システム全体が停止することなく、計画通りに業務を行えることを意味します。一部の機能が故障したとしてもサービス全体が稼働し続けるため、消費者の業務が中断されることはありません。ただし、(見かけ上は)平常状態と変わらないため、故障に気付かないまま、意図せず相応しくない行動をとってしまう可能性もあります。
管理者の視点
管理者であるIT担当者にとって、フェールソフト設計の目的は、故障が発生したときでもシステムの稼働を続け、最低限のサービスを提供することです。これにより障害対応に必要な時間を落ち着いて確保できます。注意点として、システムの設計や実装、保守が複雑になる可能性があります。
経営者の視点
経営者にとって、フェールソフト設計の目的は、企業のブランドイメージを保護し、顧客満足度を維持することです。サービスが続行されるフェールソフト設計により、ビジネスの中断を最小限に抑え、顧客からの信頼を保つことが可能となります。ただし、フェールソフト設計の導入と維持には高額なコストがかかることを覚悟しなければなりません。
ブックマーク