CS

[CS] MSA 아키텍처 스타일이 뭘까?

  • -
MSA 아키텍처 스타일로 프로젝트를 진행하게 되어 얕은 개념을 공부한 내용을 정리한 글입니다! 

MSA와 모노리틱

MSA(MicroServicearchitecture)는 서비스를 기능별로 작게 나누고, 그 독립된 서비스를 연결하는 구조하고 합니다. 이러한 구조는 시스템 전체의 중단 없이 필요한 부분만 업데이트하고 배포할 수 있다는 장점이 있습니다.

 

msa가 도입되기 이전에는 모노리틱 아키텍처 스타일로 애플리케이션을 개발하였습니다. 모노리틱 서비스란 소프트웨어의 모든 구성 요소가 한 프로젝트에 통합되어 잇는 형태입니다. 따라 배포 및 테스트도 하나의 애플리케이션만 하면 되니 개발하는데에 편리하고, 운영하고 관리하는데 편합니다. 하지만 시스템이 확장되고, 여러 컴포넌트들이 추가되거나 수정되어야 하는 상황에서 문제가 발생합니다. 하나의 애플리케이션에 모든 서비스가 구현되어 있어, 하나의 서비스가 다른 전체의 서비스에 영향을 미치게 됩니다.

 

쇼핑몰로 예를 들어보자면, 모노리틱 아키텍처 스타일의 애플리케이션은 회원 정보 관리, 결제, 배송 관리를 하나의 서버에서 운영한다면, MSA 아키텍처 스타일의 애플리케이션에서는 회원 정보 관리 서버(A), 결제(B), 배송(C) 이 세개의 서비스를 각각 다른 서버에서 관리하는 것입니다. 

MSA의 특징

MSA의 장점

  • 각 마이크로 서비스가 독립적으로 개발, 배포 및 확장을 가능하다
  • 하나의 서비스가 다른 서비스에 미치는 영향이 적다
    • 하나의 서비스때문에 전체 서비스를 중단해야하는 위험이 적다
  • 각 마이크로 서비스는 다른 기술 스택, 데이터베이스 및 도구를 사용할 수 있다

MSA의 단점

  • 마이크로 서비스간의 통신 및 데이터 관리가 어렵다
  • 서비스간 호출을 API를 통해 하기 때문에 속도가 느리다
  • 통신에 사용하기 위해 값을 데이터 모델로 변환시켜주는 오버헤드가 발생할 수 있다

MSA와 모노리틱 아키텍쳐 각각 장단점이 있기 때문에 MSA 서비스를 무조건적으로 이용하는 것이 아닌 애플리케이션 특성에 맞게 적절한 아키텍쳐를 선택해서 활용해야 합니다.

 


ref

https://www.opsnow.com/요즘-대세-msa/

http://clipsoft.co.kr/wp/blog/마이크로서비스-아키텍처msa-개념/

 


 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.