Architecture Quality Measurement
05 Oct 2020
Performance, Scalability, Availability, Reliability, Usability, Maintainability, Reusability, Security, Manageability, Cost, Extensibility, …
Performance
Indication of the responsiveness of a system to execute any action within a given time interval
Scalability
The ability of a system either to handle increases in load without impact on performance or for the available resources to be readily increased
Availability
The ability to not “500 Service not Available”
the percentage of time that the infrastructure, system or a solution remains operational under normal circumstances in order to serve its intended purpose.
Percentage of availability = (total elapsed time — sum of downtime)/total elapsed time
Reliability
In performance: the probability that the system will meet certain performance standards in yielding correct output for a desired time duration.
how well the service will be available in context of different real-world conditions
In data: after data updated, updated data should be returned.
Usability
How effectively end users can use, learn, or control the system.
Maintainability (or Flexibility / Testability)
The ability of the system to support changes
Reusability
A chance of using a component or system in other components/systems with small or no change.
Security
The ability of the system to reduce the likelihood of malicious or accidental actions as well as the possibility of theft or loss of information.
Manageability
The ability to manage the system to ensure the continued health of a system with respect to scalability, reliability, availability, performance, and security.
Cost
Includes: hardware cost + software cost + management cost + deploy cost + educational cost
Extensibility
the ability to add additional functionality or modify existing functionality without impacting existing system functionality.
References
https://docs.microsoft.com/ko-kr/azure/architecture/patterns/category/performance-scalability