2021년 6월 4일 금요일

마틴 파울러 - 마이크로 서비스 아키텍처


Refactoring : Improving the Design of Existing Code
리팩터링(코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기)
책으로 알게된 아키텍처 마틴 파울러(Martin Fowler)

전 세계 웹,앱 접속자들과 
한곳으로 집중된 서버 트래픽 분산 대책 논의

호스팅 서버에서 
아마존 AWS 구글 GAE/GKE 도커 쿠버네티스와 같은
클라우드 서비스로의 이동

모놀리스(Monolithic Architecture)에서 마이크로 서비스(MSA), 그리고 서버리스 까지

해외에서는 우버
국내에서는 
배달의 민족, 요기요, 쿠팡, 11번가 등에 적용되어 
유명해진 마이크로 서비스 아키텍처

아래 링크는 MSA(Microservices Architecture)에 대한 컬럼이다.
그림도 있고 이해하기 쉽게 설명해 두었다.




우버의 서비스를 간략하게 그림으로 나타낸 것인데,

첫번쨰 그림은 기존 레거시 모놀리틱 서비스
두번째 그림은 새롭게 바뀐 마이크로 서비스

각각의 서비스는  
어떠한 언어와 어떠한 데이터베이스든 상관없이
각각 독립적으로 만들어져 있으며
각각의 서비스는, 게이트웨이와 단말기간은 물론 
서비스간에도 REST API 로 통신을 한다.

에러가 발생하거나 업데이트가 있을경우
해당 서비스 부분만 수정 배포 업데이트 하면 된다.

사람이 몰리는 서비스는 서버 프로세스 갯수를 자동으로 늘리고 줄이며,
사람이 없는 서비스(또는 시간대)에는 단 몇개만의 최소한의 프로세스만 돌아가므로
서버 트래픽 부하의 분산, 관리 및 비용적인 측면에서도 뛰어나다.

이렇듯 MSA 는 많은 장점을 가지고 있지만, 이것이 능사만은 아니다.
모놀리틱 서비스에도 분명히 장점이 있으며, 상황과 요구에 맞춰서 개발하면 되는것이다.

이외에도 마틴 파울러의 아키텍처 카테고리를 보면


서버리스, 마이크로 프론트엔드 같은 최신의 내용도 볼 수 있다.

댓글 없음:

댓글 쓰기

플러터 단축키

1. 위젯 감싸기/벗기기 비주얼 스튜디오 :   Cmd + . 안드로이드 스튜디오 : Alt + Enter 2. 코드 정렬 비주얼 스튜디오 : Ctrl + S 안드로이드 스튜디오 : Ctlr + Alt + L 3. StatelessWidget ->...