「RASIS(レイシス)」とは、「システム」や「ソフトウェア」の品質を評価する5つの指標の頭文字を取ったものです。
5つの指標とは、「信頼性(Reliability)」、「可用性(Availability)」、「保守性(Serviceability)」、「保全性(Integrity)」、「機密性(Security)」です。
とは言え、日本語を見てもイメージしにくくないですか?
自分は、「信頼性」や「機密性」はイメージ出来るものの、「可用性」とか「保全性」とか最初はサッパリでした。
この記事では、「RASIS」について、具体例を挙げつつ、分かりやすく説明します。
RASISのまとめ
信頼性(Reliability) | システム障害への強さ |
可用性(Availability) | 必要なタイミングで要求サービスが利用可 |
保守性(Serviceability) | シンプルだと内容の把握やアップデートが簡単 |
保全性(Integrity) | データの一貫性や整合性 |
機密性(Security) | 情報が流出しない |
信頼性(Reliability)は「壊れにくさ」
信頼性(Reliability(リライアビリティ))とは、“システムの故障・障害への強さ”を表します。
一般的には、「平均故障間隔(分)」という、故障が起きてから、次に起きるまでの時間で評価します。
「Mean Time Between Failure(s)」の頭文字を取って、「MTBF」とも表示されます。
平均故障間隔が大きければ大きいほど、信頼性が高いと言えます。
可用性(Availability)は「サービスが利用できる」度合い
可用性(Availability(アベイラビリティー))は、”必要なタイミングで要求されるサービスを提供できる能力”を指します。
一般的には「稼働率(%)」で評価し、稼働率が高いほど良いシステムと言えます。
例えば、サーバーが頻繁に落ちていてサービスにアクセス出来ないとしたら、可用性は低いシステムと言えます。
サービスが利用出来ないと、獲得できたはずの 「利益」が得られず「機会損失」となるので、重要な指標です。
保守性(Serviceability)が高いとは「シンプルなシステム」
保守性(Serviceability(サービスアビリティ))が高いシステムとは、一言で言ってしまうと「シンプル」なシステムです。
システム構成が単純であればある程、中身を把握しやすいですし、改修も容易になります。
複雑なシステムの場合は、ドキュメント化をしっかりとする事で、保守性を上げる事が行われます。
保全性(Integrity)とは情報の一貫性
保全性(Integrity(インテグリティ))は、”情報が矛盾を起こさずに一貫性を保てる度合い”のことです。
データベースのデータについて言及される事が多く、「一貫性」や「整合性」と言い換えられる事も多いです。
保全性が低いと、例えばECサイトで1個だけ商品を購入したはずなのに、重複した注文データが混じっているなどといった事が起こります。
DBにユニーク制約や外部キー制約といった制約を付ける事で保全性を高める事が出来ます。
機密性(Security)
機密性(Security(セキュリティ))は、”情報の外部流出の起きにくさの度合い”のことです。
Google ChromeでWebサイトに接続した際に、以下の様な画面になった事ありませんか?
SSL接続といった通信の暗号化や、パスワードを「ハッシュ化(暗号化に近いが元に戻せない操作)」してDBへ保存するなどで機密性を上げる事が出来ます。
信頼性が低くても可用性は高いシステムは可能?
良くある勘違いとして、「信頼性」と「可用性」をゴッチャにしてしまう間違いがある。
ですが、両者は全くの別物です。
例えば、
「1,000時間故障無しで稼働できるが、故障すると1,000時間使えない」→信頼性は高いが可用性(稼働率)は低い
「100時間稼働すると、故障して1時間使えない」→信頼性は低いが可用性(稼働率)は高い
といった事が起こります。
では、「前者は打つ手無しか?」というとそんな事はなく、バックアップを用意する事で「可用性」を高める事が出来ます。
仕事でも、突然の休みに備えて、複数の人が同じ事を出来る様にしますよね?
この事を事をシステムの世界では「冗長化」と言います。