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 |