MSA란?

김진회·2022년 11월 22일
0

cs

목록 보기
2/14

MSA (MicroService Architecture)

프로그램을 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 컴포넌트 별로 나눈 서비스의 조합으로 구축하는 방법

등장배경

기존 모놀리식(Monolithic) 아키텍처는 SW의 모든 구성요소가 한 프로젝트에 통합되어 있는 형식이었다. 이 방식은 프로젝트의 규모가 커질수록 많은 단점이 존재한다.

  • 한 프레임워크와 언어 종속적이다.
  • 배포 시간이 오래걸린다.
  • 서비스의 변경이 어렵다.
  • 부분 장애가 전체 서비스의 장애로 확대될 수 있다.

위의 문제를 보완하기 위해 MSA가 등장하였다.

장단점

  • 장점
    • 개발이 빠르고, 유지보수가 쉽다.
    • 기술 스택을 다양하게 사용할 수 있다.
    • 서비스 별로 독립적인 배포가 가능하다.
    • 서비스의 부하에 따라 개별적 scale-out이 가능하다.
  • 단점
    • 복잡하다.
      • 통신의 장애, 한 서버의 부하 등의 경우 어떻게 transaction 유지할 지 결정하고 유지해야 함
    • 통합 테스트의 어려움
      • 개발환경과 실제 운영환경을 동일하게 가져가는게 쉽지 않다.
    • 데이터 transaction의 일관성
      • MSA는 서비스가 분산되어 있어 트랜잭션을 유지하는 것이 어렵다.

참조

https://wooaoe.tistory.com/57
https://sabarada.tistory.com/51?category=822070

profile
SSAFY 7기. HMG. 협업, 소통, 사용자중심

0개의 댓글