본문 바로가기
MSA해설/MSA 관련 개념

MSA 등장배경

by kooangelo 2022. 11. 24.

Monolith

 

Monolithic Architecture, Monolithic Application 또는 Monolith라고 부른다.

Microservice에 대비된 기존의 커다랗고 무거운 시스템 구조다.

처음에는 동그라미, 세모, 네모 각 업무별로 기능과 데이터가 정규화되어 잘 개발되었겠지만 시간이 지남에 따라 좌측과 같이 스파게티 또는 큰 진흙 덩어리가 된다.

결국 전체 영향도 파악이 어려워지고 추가/변경 요구사항을 받아들이거나 유지보수가 쉽지 않게 된다. 

 

 

 

 

 

 

 

논리적 분리

 

혼재된 기능과 데이터를 논리적으로 구조화한다.

모듈화 또는 컴포넌트라고도 한다.

구축 초기에는 업무 영역별로 명확해 보이지만 이 또한 시간이 지남에 따라 다시 스파게티가 되어 간다.

 

 

 

 

 

 

 

첫번째 Monolith든 두번째 논리적 분리든 다음과 같은 어려움이 있다.

  • 처음엔 잘 구축되었더라도 수년간 운영 하다보면 복잡도, 영향도 파악이 어려워짐
  • 통합 빌드와 배포로 수십/수백명의 개발자에게 영향을 미침
  • 새로운 기능 등 추가/변경 요구사항에 대한 적시 대응 어려움
  • 특정 업무나 시점에 부분적, 일시적 확장 어려움
  • 업무별 특성에 맞는 정책 확장 어려움
  • 특정 업무에만 신기술, 적합한 기술 적용 어려움

 

위와 같은 문제를 극복하기 위해 다음과 같은 Architecture 등장

물리적 분리, Microservice Architecture

 

위의 논리적 분리의 한계를 극복하기 위해 물리적으로 분리한다.

각 서비스가 독립적으로 작동하고, 데이터가 필요한 경우 서로 약속된 API, Event 로 통신한다.

 

'MSA해설 > MSA 관련 개념' 카테고리의 다른 글

MSA 이해  (0) 2022.11.24
MSA 필요성  (0) 2022.11.24
MSA 단점 및 고려사항  (0) 2022.11.24
MSA 장점 및 도입 시 효과  (0) 2022.11.24
Microservice Architecture Style로 전환된다면 무엇이 가능할까?  (0) 2022.09.28