MSA란?


하나의 큰 서비스를 기능별로 독립된 작은 서비스(Micro Service)로 나누어 개발·배포·운영하는 구조

MSA는 기본의 Monolithic Architecture(모놀리식, 단일 구조) 문제를 해결하고 대규모 서비스 확장성과 유지보수성을 확보하기 위해 등장한 아키텍처 패털

Monolithic vs MSA


구분 Monolithic MSA
구조 하나의 큰 애플리케이션 여러 독립 서비스
배포 한 번에 배포 서비스 단위별 독립 배포
장애 영향 전체 서비스 중단 가능 서비스 단위 장애 격리
확장 전체 확장 특정 기능만 확장 가능
기술 스택 동일 서비스별 다른 기술도 가능
개발 속도 커질수록 느려짐 분리된 팀으로 빠르게 개발

MSA의 핵심 개념


1) 서비스 분리(Service Decomposition)

2) 서비스 간 통신 방식

(1) 동기 통신(REST API)

(2) 비동기 통신(Message Queue)