[MSA] 아키텍처의 발전 과정 (모놀리식, SOA, MSA) :: 매운코딩
728x90
300x250

아키텍처의 발전 과정

모놀리식 --> SOA (Service Oriented Architecture) --> MSA

 

SOA?

모놀리식 방식의 단점을 보완하기 위해 만들어진 아키텍처

시스템을 독립적이고 재사용 가능한 서비스로 구성하는 아키텍처 스타일

서비스 단위로 개발하고 서비스간 I/F를 사용하여 통신한다.

서비스를 재사용 하는 것을 지향한다.

ESB(Enterprise Svc Bu)라는 Layer가 존재하여 Biz. Logic에 따라 여러개의 서비스들 중 하나를 선택/결정하여 호출한다.

ESB에 대한 관리도 필요하고 결국은 모놀리식과 큰 차이가 없다고 보고있는중...

서비스 간 네트워크 호출이 다르다보니 모놀리식보다는 성능이슈가 있다.?

 

 

모놀리식의 멀티 모듈과 SOA의 차이점?

 

  • SOA: 서비스 간의 통신은 네트워크를 통해 이루어지며, 각 서비스는 독립적으로 배포되고 확장될 수 있습니다. 새로운 서비스를 추가하거나 기존 서비스를 변경하는 것이 용이합니다. 
  • 모놀리식 멀티모듈: 모든 모듈이 동일한 코드베이스에 있으며, 하나의 배포 단위로 묶여 있습니다. 모듈 간의 강한 결합이 있으며, 전체 시스템을 재배포해야 하는 경우가 많습니다.

 

 

모놀리식 아키텍처와 SOA의 공통점?

하나의 단일 DB를 사용하여 공유한다.

 

 

MSA와 SOA 공통점?

다른 서비스(기능)와 독립적으로 개발,배포 가능

 

SOA와는 다른 MSA의 특징 차이점?

MSA는 비즈니스 로직의 재사용을 지양한다. 서비스간 결합도(상호 의존도)를 낮추는것이 목표

변화에 애자일한 대응 가능

각 서비스별로 기술스택을 독립적으로 선택 가능. 플랫폼도 다르게 가능 (언어,DB,통신...등)

 

 


참고로 MSA는 예전부터 있었던 아키텍쳐 방식이다.

이제와서 유행(?)이 되었냐면..

Onpremise Infra/서버 관리 리소스가 부담이되는 상황에서 Cloud가 계속해서 제공하는 기술들이 많아지며 보편화되었다.

그러면서 MSA가 더욱더 장점이 많은 아키텍쳐방식 인 것을 깨달은거지..

 

 

 

728x90

+ Recent posts