MSA란 무엇인가?
MSA
- 하나의 서비스를 만들때 도메인별로 서비스를 쪼개어 독립적으로 서비스하고, 디플로이할 수 있도록 구성하는 아키텍쳐
- 모놀리식(monolithic) 아키텍처와 대비되는 성격의 아키텍처이다.
- 애플리케이션 로직을 각자 책임이 명확한 도메인별로 분리하여 이를 조합해 솔루션을 제공한다.
- 각 컴포넌트(도메인)는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포된다. 마이크로 서비스는 비지니스 영역의 한 부분에서의 책임만을 담당하고, 여러 어플리케이션에서 재사용할 수 있어야한다.
- 어플리케이션은 항상 기술 중립적 프로토콜을 사용해 통신하기때문에 서비스 구현기술과 무관하다. 이는 한 서비스를 구축하할때 개발언어 및 기술에 종속되지 않고 다양한 언어와 기술을 사용할 수 있다는 장점이있다.
Monolithic
- 모듈이 서비스 내부의 Product 현태로 종속되어있으며, 서비스에만 집중할 수 있는 구조
- 장점
- 개발 초기에는 단순한 아키텍처 구조와 개발의 용이함이 큰 잠점.
- 단점
- 규모가 커짐에따라 복잡도의 증가가 심해진다.
MSA의 장점
- 각 도메인별로 서비스를 배포하고 운용하기때문에 결합도(coupling)이 낮아지는 장점이있다.
- 배포가 유연하다.
- 재사용성 및 확장성이 크다.
- 서비스별 기술의 도입 및 확장이 자유롭다.
- 하나의 서비스에 문제가생겨도 연관되지 않은 다른 도메인은 지속적으로 서비스가 가능하다.
MSA의 단점
- 장애추적, 모니터링, 매시징이 어렵다(?? 이게 어렵나?)
- 어려 도메인에 걸친 기능의 경우 트랙잭션을 다루기 어렵다.
- 도매인간 의존성이 있는경우 릴리즈가 어렵다. <=> 도매인간 roll-out계획 마련 및 명확한 의존성 관리
** 참고 자료 https://waspro.tistory.com/429
'프로그래밍 > 면접대비문제' 카테고리의 다른 글
Error와 Exception (0) | 2021.01.10 |
---|---|
REST API에 대해서 (0) | 2021.01.10 |
[IT 개발자 면접 대비문제] Spring의 원리 (0) | 2016.09.17 |
[IT 개발자 면접 대비문제] WAS를 설명하시오 (0) | 2016.09.17 |
[IT 개발자 면접 대비문제] String과 StringBuffer의 차이점 (2) | 2016.09.17 |