본문 바로가기
개념

[개념] 마이크로 서비스(Microservice Architecture. MSA)

by hs_seo 2016. 9. 26.

<모노리스서비스의 개요>

마이크로서비스의 반대되는 개념이 모노리스서비스입니다. 기존에 운영하던 시스템은 모든 서비스가 하나의 시스템에 구현되어 있었습니다. 쇼핑몰을 예로 들면 정산, 판매, 입고 시스템이 하나의 서비스로 운영되는 구조입니다.


모노리스서비스로 개발된 애플리케이션의 경우 시스템이 커질수록 빌드 배포가 어렵고 복잡해집니다. 이러한 문제점을 해결하기 위하여 나타난 개념이 마이크로 서비스이다. 


<마이크로서비스의 개요>

마이크로서비스는 애플리케이션의 구성요소를 특정 목적별로 분리한되 독립적으로 작동할 수 있는 작은 서비스로 만들고, 

이 서비스들을 조합하여 완성된 애플리케이션으로 조립하는 개발형태를 말한다.

이때 각 서비스들은 API와 HTTP를 이용한 REST Api를 이용하여 연결한다. 

각 서비스들은 독립적으로 존재하고 작동하며, 각자 관리 및 업데이트 된다.


쇼핑몰을 예로 들면 정산시스템은 node.js로 만들고, 판매시스템은 spring으로 만들고, 입고시스템은 django로 만들어서 각각의 서비스를 분리하고 서비스들 간의 연결은 REST Api를 이용하는 것입니다.


<장점>

  • 서비스 별로 다양한 언어 사용이 가능
  • 개발자는 특정 서비스에만 집중하면 됨
  • 특정 서비스이 배포를 위해 운영 전체를 중단하지 않아도 됨

<단점>

  • 개별적인 서비스에 대한 모니터링 오버헤드 증가
  • 서비스 장애에 대한 원인 분석이 어려움
  • 소규모 애플리케이션의 증가로 연동 및 동기화의 복잡성이 증가


마이크로서비스 아키텍처의 장단점 - http://www.popit.kr/why-microservice/

마이크로서비스 아키텍처 - https://brunch.co.kr/@insuk/30




<참고>


반응형