Top 10 Architecture Characteristics

Top 10 Architecture Characteristics

Last modified on 2025-04-18 , by hjjae2

Top 10 Architecture Characteristics #

์ฐธ๊ณ  : https://medium.com/@abd0hrz/top-10-architecture-characteristics-non-functional-requirements-with-cheatsheet-f639458d357d

1. Scalability #

Scalability is a achievable with horizontal/vertical scaling of the machine.


Traffic Pattern #

Understand the traffic pattern of the system. :star:

Pattern
Diurnal PatternTraffic increases in the morning and decreases in the evening for a particular region.
Global / RegionalRegional Heavy usage of the application.
Thundering HerdThese could occur during peak time or in densely populated areas.

์šฐ๋ฆฌ ์‹œ์Šคํ…œ์˜ ํŠธ๋ž˜ํ”ฝ ํŒจํ„ด์„ ์ดํ•ดํ•˜์ž. :star:

  1. ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด(๋‚ฎ์— ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•˜๊ณ  ์ €๋…์— ๊ฐ์†Œํ•˜๋Š” ํŒจํ„ด)
  2. ์ง€์—ญ ํŒจํ„ด(์ง€์—ญ ๋ณ„๋กœ ํŠธ๋ž˜ํ”ฝ์ด ์ง‘์ค‘๋˜๊ณ , ์ง‘์ค‘๋˜์ง€ ์•Š๋Š” ํŒจํ„ด)
  3. Thundering Herd (ํ”ผํฌ ํƒ€์ž„, ์ง€์—ญ์— ์˜ํ•ด ์š”์ฒญ์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ํŒจํ„ด)

Elasticity #

Ability to quickly spawn a few machines (for handling) and shrink when the demand is reducing.


Latency #

Ability to serve the request as quickly as possible.


2. Availability #

The proportion of time that a system is functional and working.

It is measured as a percentage of uptime.


3. Extensibility #

The ability to extend a system.

The cost about effort required to implement the extension.

Modular / Reusability #

์ƒ๋žต

Pluggability #

Ability to easily plug in/out.

(๊ฐœ์ธ์ ์œผ๋กœ) ์ตœ๊ทผ์— ์ด Pluggability ์ธก๋ฉด์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ–ˆ๋‹ค.


4. Consistency #

์ƒ๋žต


5. Resiliency #

The ability to handle and recover from accidental and malicious failures.

Recoverability #

  • DR(Disaster Recovery) : DR consists of best practices designed to prevent or minimise data loss and business disruption resulting from catastrophic events.

Design Patterns #

  • BulkHead : Isloate elements of an application into pools so that if one fails, the others will contine to function. (์žฅ์• ๋ฅผ ๊ณ ๋ฆฝ์‹œํ‚ค์ž.)
  • Circuit Breaker
  • Leader Election : Elect leader instance that can coordinates, manages other instances.

6. Usability #

  • Accessibility : Make the software available to people with the broadest range of characteristics and capabilities.
  • Learnability : How easy users can learn how to use the software?
  • API Contract : API Contracts can help to understand easily

7. Observability #

The ability to collect data bout program execution, internal states of modules, and communication between components.

To improve this, use various logging and tracing techniques, tools.

  • Logging : event logs, transaction logs, message logs, server logs, …
  • Alerts & Monitoring
  • L1 / L2 / L3 : Setup on-call support process for L1 / L2.

L1 / L2 / L3 ํ”„๋กœ์„ธ์Šค๋Š” ํฅ๋ฏธ๋กญ๋‹ค. :star:

์ฐพ์•„๋ด๋ณด์ž.

8. Security #

auditability, legality, authentication, authorization, …


9. Durability #

  • Replication
  • Fault Tolerance
  • Archivability

10. Agility #

It has become todayโ€™s buzzword when describing a contemporary software method.

  • Maintainability
  • Deployability
  • Configurability

Conclusion #

๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์˜ ํŠน์ง•์ด ํ•„์š”ํ•œ ๊ฑด ์•„๋‹ˆ๋‹ค. (๋ฐ˜๋Œ€๋กœ ๋ชจ๋‘ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.)

์ด๋Š” ๊ฐœ๋ฐœ์ž(์•„ํ‚คํ…ํ„ฐ)๊ฐ€ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ๋งž๊ฒŒ, ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ ์ ˆํ•˜๊ฒŒ ์„ ํƒํ•˜๊ณ  ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ๋“ค์„ ๋˜์ ธ๋ด๋„ ์ข‹์„ ๊ฒƒ์ด๋‹ค.

  • ์–ด๋А ์ •๋„ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ํ•„์š”ํ•œ์ง€?
  • ๋ณด์•ˆ์  ์š”๊ตฌ ์‚ฌํ•ญ์€ ์—†๋Š”์ง€?
  • ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜(๊ธฐ๋Šฅ ์ถ”๊ฐ€, ๋ณ€๊ฒฝ, ์‚ญ์ œ)๋Š” ์‰ฌ์šด์ง€?