Architects – How to Calculate Service Availability Time?

calculate service availability time

This page lists down different aspects which can be considered by solution architects / technical architects / application architects on how to calculate service availability time. Given that microservices architecture style / cloud-native is adopted in modern age applications development, it would be good to know this piece of information.

Service availability is commonly defined as the percentage of time that an application is operating normally.

Availability = Normal operation time / Total Time

The following are different techniques which can be used to calculate service availability:

  • Availability as function of MTBF and MTTR
  • Availability with hard dependencies
  • Availability with redundant components / services

Service Availability as a function of MTBF and MTTR

Service availability can be calculated based on mean-time-between-failure (MTBF) and mean-time-to-recover (MTTR). The following is the formula to calculate service availability:

Service Availability = MTBF / (MTBF + MTTR)

The above can also be used to calculate service availability of downstream services to calculate overall service availability.

Service Availability with Hard Dependencies

Consider the scenario where a service (upstream) depends upon external / downstream services (say, microservices) deployed on different systems. In cases where the downtime of upstream service does depend upon downtime of downstream services, the availability of upstream service is calculated as following:

Upstream service availability = Product of downstream services availability

For example, lets say there are two downstream services A and B on which the upstream service depends. Each of the dependent service A and B has an availability of 99.99%. Given this, the upstream service, theoritically speaking, can no longer achieve availability better than 99.97%. The following is how it is calculated:

99.99% x 99.99%

Service Availability with Redundant Components

If the service makes use of redundant / independent components, the service availability is calculated as following:

100% - (Product of Redundant Component Failure Rates)
Component failure rate = 100% - Components' availability

Based on above formulae, if the service depends upon two independent / redundant service having availability of 99.99%, the service availability will be calculated as the following:

100% - (0.01 X 0.01) = 99.9999%

Hope it helps you in calculating service availability. Please feel free to suggest additional points.



Ajitesh Kumar
Follow me

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. For latest updates and blogs, follow us on Twitter. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking. Check out my other blog, Revive-n-Thrive.com
Posted in Architecture, Tutorials. Tagged with , .

Leave a Reply

Your email address will not be published. Required fields are marked *