Micro Services Architecture(MSA)

도니·2022년 4월 5일
0
post-custom-banner

여러개의 작은 서비스들로 한 개의 큰 서비스를 제공할 수 있는 아키텍처


MSA에 들어가기 전에....

MSA를 말하기 전에 이전에는 어떤 방식이 있었는지 먼저 확인해봐야합니다.

Monolithic Architecture

기존에 우리가 전통적인 방식으로 개발하였던 방법을 모놀리식 아키텍처라고 합니다. 이 방법의 경우 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태입니다.
웹 개발을 예로들면 모듈별로 개발을 진행하되 결국 개발이 완료된 후 웹 애플리케이션을 하나의 결과물로 패키징하여 배포되는 형태입니다.

👉 장점

  1. 서비스들이 한 군데에 개발되어있기 때문에 서비스 별로 환경을 생각할 필요 없다.
  2. 단순히 한개의 애플리케이션을 그대로 만들면 모든 서비스가 복사 되기 때문에 고가용성 서버 환경을 쉽게 만들 수 있다.

👉 단점 :

  1. 프로젝트의 크기가 커지면 커질 수록 애플리케이션의 구동시간과 빌드, 배포 시간이 길어진다.
  2. 1번에 이어서 조그마한 수정 사항이 발생할 때마다 전체를 빌드해야하기 때문에 시간이 오래걸린다.
  3. 많은 양의 코드가 있기 때문에 오류를 찾기 어려워진다.
  4. 장애가 발생 할 시 모든 서비스가 중단되는 경우가 발생 할 수 있다.

Micro Services Architecture

MSA의 경우는 서비스 별로 서버들이 따로 있고 이 서비스들은 API를 통해서 통신을 하는 특징을 가지고 있습니다. 그리고 각 서비스들은 다른 곳에서도 재활용을 할 수 있다는 특징도 있습니다. 이렇게 각자 떨어져있기 때문에 서비스 별로 특징에 맞는 다른 Framework를 가져갈 수 있는 장점도 있습니다.

👉 장점 :

  1. 서비스 별로 개발이 가능하여 업무 분배 및 코드에 대한 이해가 빠르게 될 수 있다.
  2. 새로 추가 되거나 오류의 수정이 빠르게 이뤄질 수 있다.
  3. 각각 서비스 별로 Scale-Out이 가능하여 메모리나 CPU적으로 이득을 가져 올 수 있다.

👉 단점 :

  1. 서비스들이 분산 되어있기 때문에 관리가 어렵다
  2. 서비스간의 호출로서 서비스들이 이뤄지기 때문에 서로 약속된 인터페이스가 없으면 서비스가 불가능하고 이에 대해 추가 관리가 필요하다.
  3. 데이터가 여러 서비스에 걸쳐서 관리가 되기 때문에 정합성 등을 추가로 신경써야한다.
profile
세상만사에 호기심
post-custom-banner

0개의 댓글