티스토리 뷰

학업

시스템 디자인

기리이이이이인 2022. 4. 3. 17:32

슬슬 업무에 시스템 쪽 내용도 필요해지는 것 같은데 따로 시간내서 공부해두는게 나을 것 같아  http://www.yes24.com/Product/Goods/102819435 이 책이랑 CKA를 보려구 한다. 공부하면서 생기는 궁금점이랑 중요한 내용 같은걸 짧게 짧게 정리해두려고 함. https://designgurus.org/course/grokking-the-system-design-interview 이거랑 https://github.com/donnemartin/system-design-primer 이거도 유명하댔는데 얘네는 다음 스텝으로 봐야지

 

1. 웹서버의 부하는 로드밸런서로 나누는데, 만약 트래픽이 너무 커져서 로드밸런서에도 부하가 걸리면 그건 어떻게 나누는가?

2. 들어오는 리퀘스트의 내용에 따라 타겟 서버가 다른 경우 로드밸런서가 그걸 어떻게 처리해주는가? 어느 서버로 보낼지에 대한 정보가 어느 레벨에 들어 있는지(L4? L7?)에 따라 각각 L4/L7 로드밸런서는 어떻게 리다이렉팅(?) 해주는가? (이걸 stickiness라고 부르는게 맞나?)

3. 2번과 비슷하게, 서버 API에 변화가 있는 경우 다운타임 없이 배포를 하려먼 어떻게 해야 하는가? 새로운 API 버전이 backward compatibility를 지원하는 경우 vs 안하는 경우? 예를 들어 API 버전이 n에서 n+1 로 올라갔는데 서버배포를 롤링으로 하고 있어서 몇개는 n+1을 처리할 수 있지만 몇개는 n까지만 처리할 수 있는 경우 n+1이 들어있는 요청을 어떻게 적절한 서버로만 보내는가? (그냥 n+1 지원하게 100% 배포한 뒤에 그걸 쓰기 시작하면 되나?)

4. 데이터베이스 다중화에서 가장 쉬운 방법은 마스터-슬레이브 구조로 write는 마스터에서만 하고 슬레이브를 read replica로 사용해서 읽는 연산만 scale out 하는건데, 이 경우 마스터가 SPoF가 된다. 이런 경우 어떻게 해야 하나? (저 위에 나온 시스템 디자인 책에서는 이 책의 범위 바깥입니다~ 라고 돼 있음 ㅡㅡ)

5. CDN이 뭐임?

Contents Delivery Network. 정적 파일들을 캐싱해주는 레이어다. 이미지/비디오/CSS/JS 파일 등등 안바뀌는 파일들을 캐싱해줌.

  • 근데 그러면 invalidation은 어떻게 하지?
    1. TTL을 원본 서버가 적당히 잘 정해서 준다.
    2. 원본 서버가 CDN이 제공하는 invalidation API를 호출한다.
    3. 각 정적 파일에 버전을 매겨서 아예 호출 key를 다르게 해버린다. image.png?v=2 이런 식으로

6. 로드밸런서 말고 DNS 레벨에서 주어진 도메인에 대해 여러 IP를 할당해서 그걸 라운드로빈으로 넘겨주는 것도 본 적이 있었는데 어떤 경우에 어떤걸 사용하는가?

7. 수평으로 scale out 했을 때 각각의 인스턴스를 보통 샤드라고 부르는 것 같던데 정확한 정의가 있는건가? 아니면 포괄적인 개념이어서 적당히 알아서 쓰는 단어인가?

 

'학업' 카테고리의 다른 글

2022년 4월 WAYR  (0) 2022.04.10
원소 추가, 삭제, 중간값 찾기 쿼리  (0) 2020.09.08
ACER: Sample Efficient Actor-Critic With Experience Replay  (2) 2019.06.18
Pairwise / Triplet Loss  (3) 2018.09.12
Squeeze-and-Excitation Networks  (0) 2018.08.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함