menuhwang

MSA : 마이크로서비스 아키텍처 본문

스터디/etc

MSA : 마이크로서비스 아키텍처

menuhwang 2022. 8. 19. 19:55

MSA (Microservice Architecture) : 마이크로서비스 아키텍처


하나의 서비스로 구성된 경우 (모놀리식), 만약 카페 서비스를 유지보수, 업데이트를 한다면 카페를 제외한 다른 서비스 마저도 중단될 것이다. 하지만 MSA (Microservice Archtecture)를 적용하면 각 서비스를 독립적인 애플리케이션으로 개발하게 되고, 유지보수 또는 업데이트 시 해당 서비스 외 다른 서비스는 중단시키지 않고 진행할 수 있다.

 

 

통신


 하나의 서비스로 구성된 경우는 원하는 자원을 가져와 사용하면 되지만, MSA 의 경우 서버 간 통신이 필요해지기도 한다.

ex) 쇼핑 중 결제하려면 쇼핑 정보를 결제 서버에 전달해야한다. 서버 간 통신을 하는 다양한 방식이 있는데 가장 많이 사용되는 방식은 HTTP/HTTPS 방식이다.

 

프로토콜
HTTP, HTTPS, TCP/IP 등 여러 통신 프로토콜이 존재한다.

 

 

 

장점


유지보수 용이하다.

 모놀리식은 한 서비스를 점검해야할 때 모든 서비스를 중단해야한다. 하지만 MSA 아키텍처를 적용하면 해당 서비스만 중단하고 점검을 할 수 있다. 그리고 다른 서비스의 작업을 기다릴 필요없이 서비스를 배포할 수 있다.

 

지속적인 배포(CD)도 모놀리식에 비해 가볍다.

 모든 서비스를 배포하는 것보다 서비스 단위로 배포할 수 있기에 가볍고 시간도 절약할 수 있다.

 

도커, 쿠버네티스 같은 컨테이너 플랫폼으로 서비스 부하에 따라 개별적으로 스케일링 할 수 있다.

 하나하나의 서비스를 도커 컨테이너로 배포하고 서비스 부하에 따라 쿠버네티스로 오토스케일링 할 수 있어 궁합이 좋다.

 

 

 

단점


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

 

 마이크로서비스는 각각 독립적인 서비스로 이루어져 있어 모듈의 인터페이스를 신중하게 처리해야한다. 분산된 서비스마다 분리된 DB의 트랜잭션 관리도 따로 신경써야한다.

 

트랜잭션 관리가 어렵다.

 서버 간 통신에 장애가 생겼을 경우나, 서버의 부하가 있을 경우 트랜잭션을 어떻게 유지할 것인지 고민하고 구현해야한다. 그리고 배포시 각 서비스 간의 충돌이 있는지 확인해야한다.

 

통합테스트를 진행하기 어렵다.

 

 

빈번한 API 호출로 트래픽 증가.

서버 간에 API 호출로 통신을 하기때문에 모놀리식보다 API 호출 빈도가 증가하여 트래픽 증가로 이어진다.

 

 

 

 

'스터디 > etc' 카테고리의 다른 글

프록시 패턴 : 디자인 패턴  (1) 2022.08.20
싱글톤 패턴 : 디자인 패턴  (0) 2022.08.20
REST API  (0) 2022.08.20
도메인 비즈니스 로직  (0) 2022.08.19
디자인 패턴  (0) 2022.08.19
Comments