1. Scalability
  2. Reliability
  3. Availability
  4. Efficiency
  5. Manageability

Scalability

  • Ability of a system to grow and manage increased traffic
  • Increased volume of data or request

Reliability

  • Probability a system will fail during a period of time
  • Slightly harder to define than availability
  • Mean time b/w failure

    MTBF = (Total elapsed time – Total downtime ) / No. of failures

    Eg: (24 hrs – 4 hrs) / 4 failures = 5 hrs MTBF

Availability

  • Amount of time a system is operational during a period of time
  • Poorly designed software requiring downtime for update is less availability

    Availability % = (available time / total time ) x 100

    Eg: (23 hrs / 24 hrs) x 100 = 95.83%

Show table for downtime 9’s

AvailabilityAnnual Downtime
99%3 days 15 hrs 40 mins
99.9%8 hrs 46 mins
99.99%52 mins 36 secs
99.999%5.26 mins

Efficiency

  • How will the system perform
  • Latency & throughput often used as metrics

Managability

  • Spend & difficulty involved with maintaining system
  • Observability, how hard to trace bugs
  • Difficulty of deploying updates
  • Want to abstract away implementation so product efficiency don’t have to worry about it