[Spring cloud 기반 MSA 맛보기] - 모놀리틱 아키텍처와 마이크로소프트 아키텍처
IT 동아리 YAPP에서 진행하는 프로젝트에 마이크로소프트 아키텍처를 적용하기 위한 사전 공부에 들어갔다
토크온세미나 1강부터 8강까지의 강의를 듣고 해당내용을 정리 그리고 실습하기로 하였다
먼저 마이크로소프트 아키텍처(=MSA)가 어떻게 탄생하였는지 알기 위해 흔히 많은 개발자가 사용하고 있는 모놀리틱 아키텍처에 대하여 알아보도록 하였다
모놀리틱 아키텍처란?
하나의 서비스 또는 애플리케이션이 하나의 거대한 아키텍처를 가진 구조를 모놀리틱 아키텍처라고한다
즉 애플리케이션은 단일 애플리케이션으로 이루어져있고 또한 하나의 jar(혹은 war)파일로 이루어진 애플리케이션 구조를 뜻한다
모놀리틱 아키텍처의 장점
-
개발이 단순하다
-
하나의 레포지토리만을 관리하고 개발하며, 하나의 jar 파일을 배포하면된다
-
-
Scale-out이 간편하다
-
서버가 하나이므로 서버를 복사하면 끝이다
-
모놀리틱 아키텍처의 단점
-
애플리케이션의 규모가 커지게 되면 애플리케이션이 무거워지고 느려지게 된다
-
코트간의 결함도가 높아지게되고 코드의 주인을 찾기 어려워진다
이러한 단점을 보완하기 위해 생겨난 아키텍처가 마이크로소프트 아키텍처(MSA)이다
마이크로소프트 아키텍처란(MSA)?
독립된 각각의 모듈(하위 애플리케이션)을 조합하여 하나의 최상위 애플리케이션을 만드는 아키텍처이다
마이크로소프트 아키텍처의 장점
-
독립개발 / 독립배포 : 각각의 서비스는 독립적이다
-
결함격리 : 한 서비스가 다운되더라도 전체 서비스에 영향을 미치지 않는다
-
혼합기술스택 : 각 서비스에 적합한 기술을 선택하여 조합할 수 있다
-
세분화된 확장성 : 서비스를 독립적으로 확장/교체 할 수 있다
마이크로소프트 아키텍처의 단점
-
모놀리틱 아키텍처에 비해 복잡하다
-
독립된 구조로 인해 통합적인 유지 관리가 어려워질 수 있다
마무리
모놀리틱 아키텍처는 개발이 단순하고 서버 확장이 단순한 반면 애플리케이션의 크기가 커지면 무거워지고 느려질 수 있는 단점을 가지고있고 이러한 단점을 보완하는 마이크로소프트 아키텍처는 기능별로 하위 애플리케이션으로 나눔으로써 애플리케이션의 확장을 편리하게 유지하지만 복잡한 구조를 가지고 있으며 통합관리가 어려울 수 있다