System Design Fundamentals

System Availability

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.

Whenever you're ready

There are 4 ways we can help you become a great backend engineer:

The MB Platform

Join 1000+ backend engineers learning backend engineering. Build real-world backend projects, learn from expert-vetted courses and roadmaps, track your learnings and set schedules, and solve backend engineering tasks, exercises, and challenges.

The MB Academy

The “MB Academy” is a 6-month intensive Advanced Backend Engineering BootCamp to produce great backend engineers.

Join Backend Weekly

If you like post like this, you will absolutely enjoy our exclusive weekly newsletter, Sharing exclusive backend engineering resources to help you become a great Backend Engineer.

Get Backend Jobs

Find over 2,000+ Tailored International Remote Backend Jobs or Reach 50,000+ backend engineers on the #1 Backend Engineering Job Board