# Reliability of a service

Assume that I need to determine the reliability of a service. The service includes component a (software reliability=0.95) and component b (software reliability=0.98). I have 2 computers: Computer A (hardware reliability=0.99) and Computer B (hardware reliability=0.99).

I have two following cases:

Case 1: Deploy both a and b on computer A. For this case, the service reliability is around 0.923.

Case 2: Deploy a on computer A, and b on computer B. For this case, the service reliability is around 0.912

I really wonder why the service reliability in case 2 is lower than in case 1. The thing is A and B have the same hardware reliability. Can someone clarify that?

In Case 1, for the service to not fail we need three things to not fail: computer A, component a and component b. In contrast, in Case 2 we also need computer B to not fail. Plainly the probability in the latter case is smaller, by a factor of 0.99.

You can calculate the non-failure probability by just multiplying the non-failure probabilities for the relevant objects:

• Case 1: $$0.99 \cdot 0.98 \cdot 0.95 = 0.92169$$.
• Case 2: $$0.99 \cdot 0.99 \cdot 0.98 \cdot 0.95 = 0.9124731$$.

Ignore the software reliability for now, and only focus on the machines.

In case 1 there is only one machine that can fail, and it fails 1% of the time.

In case 2 there are two machines that can fail. However, even if just one fails the service goes down. The chance that at least one machine fails is $$1 - 0.99^2 = 1.99\%$$. So instead of spreading the risk we've just made our service more liable to fail.

There are two components to making a system reliable despite hardware failure:

1. Spreading out risk of failure across multiple machines.
2. Making the system robust to failure of some machines.

In the exercise we do have #1 but are missing #2.

• Thank for nice explanation. If I have choice to approve your answer as well, I surely will do that. Commented May 20, 2019 at 19:08