目次
システムは、いつでも正常に稼働してくれることが大前提となります。
この「いつでも正常に稼働してくれる」度合いを測る指標となるのが、信頼性です。信頼性が高いシステムを構築することは、システムを検討するうえで欠かせないポイントとなります。
そこで今回は、システムの信頼性について紹介します。混同しがちな言葉との違いや、信頼性を高めるための方法についても解説しているので、本記事でいっしょに信頼性について勉強していきましょう。
信頼性とは
信頼性(Reliability)とは、一定の条件下においてシステムが正常に稼働し、サービスを安定的に提供しつづけられるかを測るための指標です。
JISーZ8115:2019「ディペンダビリティ(総合信頼性)用語」によると、「アイテムが、与えられた条件の下で、与えられた期間、故障せずに、要求どおりに遂行できる能力。」と定義されています。信頼性は簡単にいうと、システムの「壊れにくさ」を測る指標です。
信頼性を測る指標
コンピュータシステムに関する代表的な評価指標にRASISがあります。
RASISは次の5つの要素の頭文字からくる造語です。特にRAS(信頼性・可用性・保守性)は評価指標として重視される傾向にあります。なお、後半2つのIS(保全性・安全性)については、定性的に判断されるため、数値での評価はできません。RASISでは信頼性を測る指標としてMTBF(平均故障間隔)をあげています。
・Reliability(信頼性):壊れにくさの指標。平均故障時間(時間、分)で評価される
・Availability(可用性):つかえる状態の維持率。稼働率(%)で評価される
・Serviceability(保守性):メンテナンス・復旧のしやすさ。平均復旧間隔(時間、分)で評価される
・Integrity(保全性):データの破壊・改ざんの起こりにくさ
・Security(安全性・機密性):セキュリティの強度
信頼性と混同しがちな言葉に可用性、保守性、安全性などがあります。次章からはこれらの違いを紹介します。
信頼性と可用性の違い
可用性(Availability)とは、システムが継続して正常に稼働できる能力のことをいいます。信頼性と可用性の違いは次のとおりです。
評価対象 | 評価方法 | |
信頼性 | 壊れにくさ | 平均故障間隔(時間、分) |
可用性 | つかえる状態の維持率 | 稼働率(%) |
可用性は、一般的に稼働率で評価されます。稼働率は、MTBF(平均故障間隔)とMTTR(平均復旧時間)を用いて算出します(稼働率=MTBF÷(MTBF+MTTR))。
たとえば、1,000時間故障せずに稼働できるシステムは、500時間故障せずに稼働できるシステムよりも信頼性が高いといえます。一方で、99時間稼働すると1時間故障するシステムは、稼働率99%となり可用性が高いと評価されます。いずれもシステムの耐久性を表していますが、注目する部分が異なります。
可用性についてはこちらもご覧ください。
>>可用性とは?信頼性・耐障害性との違いや助長化する方法を解説のページへ
信頼性と保守性の違い
保守性(Serviceability)とはシステムの機能や性能の維持しやすさを示す指標です。信頼性との違いは次のとおりです。
評価対象 | 評価方法 | |
信頼性 | 壊れにくさ | 平均故障間隔(時間、分) |
保守性 | メンテナンス・復旧のしやすさ | 平均復旧時間(時間、分) |
たとえば、災害や不具合が起きた際に、短い時間で復旧できる場合、そのシステムは高い保守性をもっていると評価されます。また、定期的なサービスメンテナンス・修理のしやすさや、仕様変更・機能追加のしやすさ、ソースコードの読みやすさなどによっても評価されます。
信頼性と安全性の違い
安全性(Security)とは、システムで利用されるデータがセキュリティによってどの程度の安全性を保てているかを測る指標です。
評価対象 | 評価方法 | |
信頼性 | 壊れにくさ | 平均故障間隔(時間、分) |
安全性 | セキュリティの強度 | 定性的な評価 |
壊れにくさを表す信頼性に対して、安全性はセキュリティの強度による安全の度合いを示します。
信頼性を向上させる方法
信頼性の向上はMTBF(平均故障間隔)をするのが原則です。そのために必要な対策として、次のような方法があげられます。
・フールプルーフ
・フォールトアボイダンス
・フォールトトレランス
フールプルーフ
フールプルーフ(Foolproof)とは、意図しない方法で使用されても誤作動を起こさないように設計することです。
ユーザーの誤操作によって危険な事象が引き起こされることがあります。そこで、あらかじめ発生し得る誤操作・誤作動を予測して、製品の設計を行うことがフールプルーフの考え方になります。
代表例としては、電子レンジがあります。電子レンジは扉を閉めないと作動しません。また、作動中に扉を開けた際には自動で停止します。扉が開いたままの状態で作動して火傷を負うのを防ぎ、安全性を保ちます。
フォールトアボイダンス
フォールトアボイダンス(Fault Avoidance)とは、直訳すると「失敗を避ける」という意味で、故障を回避するために事前に対策しておくことをいいます。フォールトアボイダンスの取り組みの例として、耐久性に優れた部品や製品の利用、テストや検証を実施して性能を向上させることなどがあげられます。
要するに、故障が起こらないように、故障の原因を可能な限り排除し、信頼性を高める設計方法です。
フォールトトレランス
フォールトトレランス(Fault Tolerance)とは、障害が発生しても、予備のシステムに切りかえるといった対応を行い、正常な機能を保ち、稼働を続行させることをいいます。
日本語では「耐障害性」といわれることが多いです。
フォールトアボイダンスが、「壊れるのを防ぐ」考え方なのに対して、フォールトトレランスは「壊れても大丈夫」なように、故障すること前提で対策する考え方です。たとえば、電源装置の二重化や二系統の通信回線を引き込むといった対策をとることで、信頼性の向上に繋げます。フォールトトレランスには次のような手法があります。
・フェールソフト
・フェールオーバー
各手法の詳細を見ていきましょう。
フェールソフト
フェールソフト(Fail Soft)とは、障害発生時に完全に停止するのではなく、性能やパフォーマンスが低下したとしても稼働させる方法です。システムの構造に冗長性をもたせておくことで、障害が発生した個所のみの損失で済ませ、被害を最小限に留めます。
フェールソフトは、常時稼働させる必要性のあるシステムなどに用いられます。たとえば、2つのエンジンを搭載した飛行機は、片方のエンジンが故障しても飛行能力を維持できるよう設計されています。これが典型的なフェールソフト設計です。
フェールオーバー
フェールオーバー(Fail Over)とは、あらかじめ用意しておいた待機系のサーバやネットワークに自動的に切りかえる方法です。自動的に切りかえ処理を引き継ぐことで、障害が発生した場合でもシステムを継続し、被害を最小限に留めます。たとえば、基本のサーバがトラブルで稼働停止となったとき、予備のサーバーに切りかえることで、ダウンタイムを極力短縮できるため、信頼性の向上が期待できます。
ただし、信頼性が高まる一方で、基本のサーバ以外にも予備のサーバーの運用コストがかかることに留意が必要です。
信頼性を確認するために行うテスト
SHIFTが信頼性を確認するために推奨しているテストタイプをいくつか紹介します。
機能仕様どおりにシステムが動くのかといった機能テストやこれらのテストを実施することで与えられた条件下で、与えられた期間、故障せずに、要求どおりに遂行できるかどうかを確認します。
テストタイプ | テスト内容 |
ロングランテスト | テスト対象に対して、繰り返し長時間、要求された処理を行った場合に、正しく動作することを確認する。 |
運用マニュアルテスト | 運用マニュアル・手順書の内容通りに操作を行い、記載内容が正しいことを確認する。 |
運用監視テスト | 運用監視の設定が正しく行われているか、設定どおりに動作することを確認する。 |
障害耐性テスト | 障害が発生した場合においても、実行レベルを維持できることを確認する。 |
障害回復テスト | 障害発生後に、実行レベル再確立やデータ回復ができることを確認する。コンティンジェンシープランや代替業務を定めている場合は、定めた方針や予定時間、手順通りに業務再開ができることを確認する。 |
まとめ
信頼性はシステムの設計において要となる存在です。性能のよいシステムであっても、故障が頻発していてはつかい勝手が悪く、業務に支障をきたします。こうした事態を避け、システムの信頼性を担保するためにも、リリース前には必ずソフトウェアテストを実施することが重要です。
効果的にリソースが確保できる、専門的かつ客観的な視点をもっているといった観点から、ソフトウエアテストは第三者検証がおすすめです。
SHIFTでは、独自の検定を突破したテストの素養をも持つプロがソフトウェアテストを実施。不具合が発生しやすいポイントを狙い撃ちすることにより、効率的にソフトウェアの品質を高めます。そして、開発者は開発作業に専念できるため、より優れたシステムの開発が可能になります。
SHIFTでは、信頼性をはじめとしたソフトウエア品質を高めるためのサポートサービスの提供を行っておりますので、ぜひ資料をダウンロードしてご覧ください。