(1) 알고리즘 확장
(2) 개별 구성 요소 확장:
-
각 구성 요소의 가용성, 일관성 및 규모 스토리
-
일관성 및 가용성 패턴
(3) 다음 구성요소들의 선택 이유와 활용패턴
- DNS
- CDN [Push vs Pull]
- 로드 밸런서 [Active-Passive, Active-Active, Layer 4, Layer 7]
- Reverse Proxy
- Application layer scaling [Microservices, Service Discovery]
- DB [RDBMS, NoSQL]> RDBMS (Master-slave, Master-master, Federation, Sharding, Denormalization, SQL Tuning)> NoSQL (Key-Value, Wide-Column, Graph, Document)
- 캐시> Client caching, CDN caching, Webserver caching, Database caching, Application caching, Cache @query level, Cache @object level> Eviction 정책 (Cache aside, Write through, Write behind, Refresh ahead)
- 비동기 처리> Message queues> Task queues> Back pressure
- 커뮤니케이션> TCP> UDP> REST> RPC