Pocket

■問題
フェールソフトの説明として,適切なものはどれか。

ア:システムの一部に障害が発生したとき,
  それ以外の部分の機能でシステムの運転を継続する。

イ:システムの一部に障害が発生したとき,
  致命的影響を与えないようシステムをあらかじめ定めた安全な状態に移行する。

ウ:信頼度の高い部品を使用したり,
  バグの少ないソフトウェアを開発したりして,
  信頼性の高いシステムを構築する。

エ:特定の時点でデータベースのバックアップを取り,
  障害が発生した場合には,バックアップを取った時点の状態まで戻して運転を継続する。

■解説
システム障害時の設計思想として、以下のものがあります。

・フェールソフト
 故障した個所を破棄、切り離すなどして障害の影響が他所に及ぼされるのを防ぎ
 最低限のシステムの稼動を続ける。(運用継続を重視)
・フェールセーフ
 故障や操作ミス、設計上の不具合などの障害が発生することをあらかじめ想定し、
 起きた際の被害を最小限にとどめるような。(安全性を重視)

■答え
ア:正
イ:誤 フェールセーフ
ウ:誤 フォールトアボイダンス
エ:誤 フォールトトレランス

■現場では
障害を発生させないことはもちろんですが
発生したときに被害を少なくするための考慮をする必要があります。
その場合、継続性を重視するのか安全性を重視するのかによって
異なるアプローチとなります。

例)バッチ処理で、不正なレコードが存在した場合
 【フェールソフト】エラー出力後に読み飛ばし、他のレコードを処理する。
 【フェールセーフ】後続処理への影響を考慮し、エラーを出力しバッチを停止させる。