Scribbling

[System Design] Scaling Web Apps 본문

Computer Science/Computer Knowledge

[System Design] Scaling Web Apps

focalpoint 2023. 4. 27. 06:21

 

1. Simple Web Application

 

2. Relational vs Non-relational DB

Non-relational DB

- very low latency

- can handle unstructured data

 

3. Load Balancer

Relying on a single server can be problematic; it may not handle heavy traffic.

A load balancer can operate a web application with many servers.

 

4. Database Multiplexing

Database multiplexing not only enhances the overall system reliability but also improves efficiency - as the number of queries handled in parallel increases.

 

5. Cache

Cache tier can 1) improve the query performance and 2) reduce the loads headed to the database.

 

6. Content Delivery Network (CDN)

CDN is usually for delivering static files - such as images, videos, and Javascript.

The primary reason for using CDN is to lower loading time.

 

7. Stateless Architecture

Session information for each user should be handled in shared storage. 

 

8. Data Center & Geo-Routing

If your service is running on a global scale, data centers are required. GeoDNS converts a domain name to an IP address based on the user's location.

 

9. Message Queue

A message queue is an asynchronous communication component, where the producer systems publish messages and the consumer systems subscribe to the messages (Pub & Sub). It allows systems to be loosely coupled. 

 

10. Entire System

'Computer Science > Computer Knowledge' 카테고리의 다른 글

[System Design] Rate Limiter  (0) 2023.05.09
[CS Interview Tips]  (0) 2023.05.09
Docker Basics  (0) 2022.10.05
운영체제 - 12  (0) 2021.11.03
운영체제 - 11  (0) 2021.11.02