티스토리 뷰

Development/.etc

MSA 특징, 장/단점

쥬리리리 2022. 3. 29. 18:09

MSA

마이크로 서비스 아키텍처(Micro Service Architecture)의 약자로 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법

 

MSA의 특징

👉🏻 MSA는 API를 통해서만 상호작용할 수 있으며,실질적인 세부 사항은 모두 추상화한다.

내부의 구현 로직, 아키텍처와 프로그래밍 언어, 데이터베이스, 품질 유지 체계와 같은 기술적인 사항들은 서비스 API에 의해 철저하게 가려진다. 

 

 MSA의 장점

- 유지보수가 용이하다.

- 개발 모듈을 연동하는데 무리가 없다.

- 지속적인 배포(CD)도 모놀리식에 비해 가볍게 할 수 있다

- 마이크로서비스는 각각 서비스의 부하에 따라 개별적으로 scale-out(접속된 서버의 대수를 늘려 처리 능력을 향상)이 가능하다. 메모리, CPU적으로 상당부분 이득이 된다.

 

 MSA의 단점

- 모놀리식에 비해 많이 복잡하다.

- 통신의 장애와 서버의 부하가 있을 경우 어떻게 트랜잭션을 유지할지 결정하고 구현해야한다.

- 비즈니스에 대한 DB를 가지고 있는 서비스도 다르고, 통신이 포함되기 때문에 트랜잭션을 유지하기 어렵다.

- 개발 환경과 실제 운영환경을 동일하게 가져가는 것이 쉽지 않아 통합 테스트가 어렵다 (구축 비용을 충당할 수 있다면 무관하다)

- 1개의 서비스 재배포 시 다른 서비스들이 정상적으로 돌아가는지 확인해야한다.

 

 

 

 

 

※ MSA 방식이 무조건 좋은것은 아니며 프로젝트 성격에 따라 다르다. 또한, 빈번한 API 호출로 인하여 트래픽이 증가될 수 있다.

댓글
링크
최근에 올라온 글
Total
Today
Yesterday