James's Ramblings

Vocabulary

Created: December 29, 2024

Reliability

  • Reliability is the probability that a system or component consistently performs its intended function without failure over a specified period. There is

  • Reliability aims to minimize system failures and downtime.

  • The system should be able to continue operating acceptably in the presence of faults or interference from malevolent third-parties.

  • Faults may include hardware failures, software bugs, or human errors.

  • Interference may include denial-of-service attacks, data breaches, or other forms of cyber-attacks.

Mean Time to Repair (MTTR)

MTTR (mean time to repair) is the average time it takes to repair a system (usually technical or mechanical).

Mean Time to Failure (MTTF)

MTTF (mean time to failure) is the average time it takes for a system to fail.

Mean Time to Acknowledge (MTTA)

MTTA (mean time to acknowledge) is the average time it takes from when an alert is triggered to when work begins on the issue.

Mean Time Between Failures (MTBF)

MTBF (mean time between failures) is the average time between repairable failures of a technology product.

Availability

  • Availability is the probability that a system or component is operational and available at a given time.

  • Availability aims to maximize operational time.

  • The system should be available when it is needed.

  • The percentage of time that the infrastructure, system, or solution remains operational under normal circumstances in order to serve its intended purpose.

  • Availability is typically measured as a percentage of uptime in a given time period.

Scalability

  • As the system grows in size or its workload increases, it should be able to handle the additional demand without significant degradation in performance.

  • When talking about scalability it is important to be able to describe the current load on the system (via relevant metrics). Once you can describe the current load, you can change these parameters and see how the system behaves to describe performance.

Durability

  • Data remains intact despite failures or disruptions to a system.

Maintainability

  • Software engineers should be able to work on the system productively throughout its entire lifecycle.

  • This includes being able to understand the system, fix bugs, add new features, and improve performance.

  • When considering maintainability, you should consider operability, simplicity, and evolvability.

Operability

  • How easy it is to keep the system running smoothly.

Simplicity

  • How easy it is to understand the system.

Evolvability

  • How easy it is to change the system.

Deterministic

Always producing the same output from a given starting condition or initial state.

Forward compatibility

The ability of a system to accept input intended for a later version of itself.

Backward compatibility

The ability of a system to accept input intended for an earlier version of itself.