1. 가용성 : 하나의 서비스가 다운 되더라도 전체 시스템에 영향을 최소화하기 위한 것 2. 배포 : 모놀리식은 업데이트할 때 다운타임 존재 3. 기능별 업데이트 가능. 회원관리 기능만 업데이트. 한 기능을 스몰팀에서 관리 가능. 하나의 팀에서 개발 배포 운영까지 가능. 따라서 msa, 이를 위한 데브옵스, sre가 모두 유기적으로 연결된다. https://youtu.be/I_T3xI7Jemk
Latency Numbers Every Programmer Should Know
·
System Engineering/System Design
https://colin-scott.github.io/personal_website/research/interactive_latency.html Numbers Every Programmer Should Know By Year colin-scott.github.io 시스템 디자인을 할 때 이 숫자들을 참고해서 기준을 세워보자.
메시지 큐의 목적 (Redis는 메시지 큐, 캐시 서버 기능 모두를 제공한다.)
·
System Engineering/System Design
선 요약 메시지 큐의 목적 : 클라이언트와 작업 서버 사이에 버퍼를 두어, 클라이언트의 요청과 요청에 대한 작업을 독립적으로 구성하기 위한 것이다. 이게 무슨 뜻일까? 요청 : 사용자의 요청. 작업 : 사용자의 요청을 처리하는 작업. 이렇게 정의하고 시작하자. 오케이. 그럼 요청과 작업을 독립적으로 구성하지 않으면 무슨 문제가 생길까? 예를 들어서, 카카오톡 서버의 아키텍쳐를 설계한다고 하자. 그리고 천만명이 1초에 한 번씩 메세지를 보낸다고 하자. 중간에 버퍼가 없다면, 요청이 곧바로 API 서버에 전달되기 때문에 결국 1초에 천만 request가 동시에 작업 서버에 전달된다. 이는 아무리 좋은 서버라고 해도 당연히 감당하기 쉽지 않다. (참고. 스택 오버 플로우는 2013년 한 해 동안 방문한 천만 ..