System availability is the probability that a system works properly when it’s requested for use. It means that the system is available for use as a percentage of scheduled uptime and is not due to problems or other interruptions that are not scheduled. It’s a measure that a system has not failed or undergoing repair when it needs to be used.
Availability Calculation
Let’s say that your system runs for 24 hours a day. The system had a one-hour unplanned downtime because of a breakdown. The system availability can be calculated as follows:
availability % = (available time / total time) * 100
availability % = (23 hours / 24 hours) * 100 = 95.83%
The system availability was 95.83%. This might seem like a high score but in software, 95.83% availability is not good as shown in the table below.
[Table]
System availability of 90% equates to 36.5 days per year. An online marketplace like Amazon will lose billions of dollars every year even with an availability of 95%.
Cloud computing services like Azure, AWS, and Google Cloud have Service Level Agreements (SLAs) to commit to system reliability and availability to define standards that will keep your systems running smoothly despite any disruptions.
The 5 nines in system availability basically mean that your system has an availability of 99.999% which is a common SLA between companies.
It can be a challenge to measure system availability when using the microservices architecture since some components might be less available compared to others. This can be covered up by having redundant(backup)/replicated servers just in case one fails.
A load balancer can detect when a server fails so that it can use a backup server. This will in turn increase availability.