BackEnd/Spring MSA

[Spring cloud 기반 MSA 맛보기] - 모놀리틱 아키텍처와 마이크로소프트 아키텍처

영지는 달리는중 2020. 9. 4. 18:51

IT 동아리 YAPP에서 진행하는 프로젝트에 마이크로소프트 아키텍처를 적용하기 위한 사전 공부에 들어갔다

토크온세미나 1강부터 8강까지의 강의를 듣고 해당내용을 정리 그리고 실습하기로 하였다 

 


먼저 마이크로소프트 아키텍처(=MSA)가 어떻게 탄생하였는지 알기 위해 흔히 많은 개발자가 사용하고 있는 모놀리틱 아키텍처에 대하여 알아보도록 하였다 

 

모놀리틱 아키텍처란?

하나의 서비스 또는 애플리케이션이 하나의 거대한 아키텍처를 가진 구조를 모놀리틱 아키텍처라고한다

즉 애플리케이션은 단일 애플리케이션으로 이루어져있고 또한 하나의 jar(혹은 war)파일로 이루어진 애플리케이션 구조를 뜻한다

 

모놀리틱 아키텍처의 장점

  • 개발이 단순하다 

    • 하나의 레포지토리만을 관리하고 개발하며, 하나의 jar 파일을 배포하면된다

  • Scale-out이 간편하다

    • 서버가 하나이므로 서버를 복사하면 끝이다

모놀리틱 아키텍처의 단점

  • 애플리케이션의 규모가 커지게 되면 애플리케이션이 무거워지고 느려지게 된다

  • 코트간의 결함도가 높아지게되고 코드의 주인을 찾기 어려워진다

이러한 단점을 보완하기 위해 생겨난 아키텍처가 마이크로소프트 아키텍처(MSA)이다

 

마이크로소프트 아키텍처란(MSA)?

독립된 각각의 모듈(하위 애플리케이션)을 조합하여 하나의 최상위 애플리케이션을 만드는 아키텍처이다

 

마이크로소프트 아키텍처의 장점

  • 독립개발 / 독립배포 : 각각의 서비스는 독립적이다

  • 결함격리 : 한 서비스가 다운되더라도 전체 서비스에 영향을 미치지 않는다

  • 혼합기술스택 : 각 서비스에 적합한 기술을 선택하여 조합할 수 있다

  • 세분화된 확장성 : 서비스를 독립적으로 확장/교체 할 수 있다

마이크로소프트 아키텍처의 단점

  • 모놀리틱 아키텍처에 비해 복잡하다

  • 독립된 구조로 인해 통합적인 유지 관리가 어려워질 수 있다


마무리

 

모놀리틱 아키텍처는 개발이 단순하고 서버 확장이 단순한 반면 애플리케이션의 크기가 커지면 무거워지고 느려질 수 있는 단점을 가지고있고 이러한 단점을 보완하는 마이크로소프트 아키텍처는 기능별로 하위 애플리케이션으로 나눔으로써 애플리케이션의 확장을 편리하게 유지하지만 복잡한 구조를 가지고 있으며 통합관리가 어려울 수 있다