Scalability

Scalability는 시스템이 성능 저하 없이 리소스를 조정하고 아키텍처를 변경하여 증가하는 로드를 처리할 수 있는 시스템의 능력을 의미합니다.

Scalability는 시스템이 성능, 안정성 및 기능을 유지하면서 증가하는 로드, 트래픽 또는 데이터 볼륨을 처리할 수 있는 시스템의 능력을 포함하는 다면적인 개념입니다. Scalability를 달성하려면 아키텍처, 데이터 관리 및 배포 전반에 걸쳐 설계 고려 사항이 필요합니다. 일반적인 scaling 접근 방식에는 horizontal scaling(더 많은 노드 추가), vertical scaling(기존 노드의 기능 업그레이드) 및 distributed scaling(여러 개의 별도 시스템에 걸쳐 로드 구성)이 포함됩니다. Geographical scalability는 서비스를 사용자에게 더 가깝게 가져오기 위해 지역별 배포를 추가합니다. Linear scalability는 추가 리소스로 인한 비례적인 성능 향상을 의미하지만, 많은 실제 시스템은 병목 현상 및 일관성 비용으로 인해 수익 체감 현상을 보입니다. Elastic scalability는 수요에 따라 신속하게 up/down 조정을 가능하게 합니다. 기타 중요한 기술에는 load balancing, caching, sharding, partitioning 및 data replication이 있습니다. 각 접근 방식은 비용, 복잡성, 일관성 및 운영 위험 측면에서 trade-off를 도입합니다. throughput, latency, saturation 및 resource utilization과 같은 performance metrics는 scaling 결정을 안내해야 합니다.

        graph LR
  Center["Scalability"]:::main
  Rel_distributed_computing["distributed-computing"]:::related -.-> Center
  click Rel_distributed_computing "/terms/distributed-computing"
  Rel_eip_4844["eip-4844"]:::related -.-> Center
  click Rel_eip_4844 "/terms/eip-4844"
  Rel_elastic_computing["elastic-computing"]:::related -.-> Center
  click Rel_elastic_computing "/terms/elastic-computing"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 지식 테스트

1 / 1

🧒 5살도 이해할 수 있게 설명

Scalability is like a restaurant. If only 10 people come, one chef can handle it. But if 100 people come, a 'scalable' restaurant can easily add more chefs and more tables so nobody has to wait longer for their food.

🤓 Expert Deep Dive

Horizontal scaling (scaling out) is generally preferred for distributed systems because it is theoretically limitless, whereas vertical scaling (scaling up) eventually hits hardware limits. Achieving true linear scalability requires minimizing shared resources and avoiding 'hotspots' or bottlenecks that cause contention as the system grows.

📚 출처