MSA vs MA

이한수·2022년 7월 26일
0

MSA

목록 보기
1/1

참고 : https://daaa0555.tistory.com/457

1.모놀리식 아키텍쳐(Monolithic Architechture)란?

  • 마이크로서비스 아키텍쳐의 반대 되는 개념으로 전통의 아키텍쳐를 일컫는 단어 입니다.

  • 소프트웨어의 모든 구성요소가 하나의 프로젝트에 통합되어 있는 형태 입니다.

장점

  • 소규모 프로젝트에서 유리 합니다.
    개발 초기 단계에 단순한 아키텍쳐로 개발이 용이하기 때문입니다.
  • 개발,빌드,배포,테스트가 용이합니다.

단점

  • 어플레케이션 구동시간이 증가하고 , 빌드 및 배포 시간이 증가합니다.

  • 조그마한 변경사항이 있어도 전체를 다시 빌드하고 배포해야 합니다.

  • 하나의 프로젝트에 모든 코드가 몰려있기에 유지보수가 어렵습니다.

  • 일부분의 오류가 전체에 영향을 미칩니다.

작은 프로젝트에는 유리하지만, 애플리케이션의 규모가 커질 수록 문제가 많아집니다.

마이크로서비스 아키텍처(MicroService Architecture)

  • 모놀리식과 반대로 하나의 큰 애플리케이션을 여러 개의 작은 서비스 단위로 나누어 개발하는 형태 입니다.

대신에, 서로 상호 통신을 하고 이를 통하여 전체 서비스를 구성합니다.

장점

  • 서비스마다 독립적으로 빌드와 배포가 가능해져 빠릅니다.

  • 일부의 오류가 전체에 영향을 미칠 가능성이 적습니다.

  • 메모리 및 cpu관리에 효율적입니다.

  • 서비스가 모듈화 되어 있고, 모듈끼리 RPC, Message-driven을 이용하여 통신하기 때문에 개발 속도가 증가합니다.

  • 서비스마다 적합한 기술을 선택 적용할 수 있습니다.

단점

  • 각자 배포한 서비스에 대해 다른 서비스와 연계가 잘 되는지 확인해야 합니다.

  • 서비스 간 호출 시 REST API 사용으로 인한 통신비용과 Latency가 증가합니다.

  • 분산되어 있어 디버깅하기가 어렵습니다.

  • 서비스마다 DB가 분리되어 데이터 조회가 어렵고 중복이 발생합니다.

  • 복잡도가 증가합니다.

profile
성실하게

0개의 댓글