[참고] https://litslink.com/blog/web-application-architecture — Modern Web Application Architecture Explained: Components, Best Practicers and More 2021.4.23)

Load Balancer
- 주로 horizontal scaling을 하게 됨. 들어오는 requests를 여러 개의 서버 중 한개에다가 할당해 줌
- 로드밸런서에 의해 task를 어느 한곳에 몰리지 않게 분배해줌
Job Queue(Optional)
- Job queue는 2개의 컴포넌트로 이루어 지는데, Job Queue와 Job Server임
- 대부분의 서버가 많은 양의 작업을 처리하고 있을 때, job queue에 해당 job을 보내어 스케줄에 맞게 처리되도록 함
Data Warehouse
- 거의 모든 현대의 어플리케이션들은 데이터 수집, 저장, 분석의 과정을 포함하게 됨. 해당 프로세스는 아래와 같은 단계가 필요함
- data 가 data “firehose”로 보내짐 — provides a streaming interface for absorption and processing of data ( 카프카 등)
- Raw, processed, and additional data is sent to cloud storage
- processed and additional data also go to a data warehouse
CDN(Content Delivery System)
- HTML 파일, CSS 파일, JavaScript 파일, 이미지 등을 보내는 걸 담당함
- end server의 content를 세계로 전달함.
- 캐쉬 서버. 전세계에다가 캐쉬 서버를 분산 배치 해놓고 근접한 사람의 요청을 처리하도록 함