MSA(Microservice Architecture)

mil nil·2023년 3월 29일
0

MSA(Microservice Architecture)란?

마이크로 서비스라는 이름에서 알 수 있는 것처럼 작은 단위의 서비스가 독립적으로 기능 및 배포가 가능한 구조를 의미한다. 독립적으로 배포 뿐만이 아니라 서로 다른 기술 스택 사용도 가능하다.

Monolithic Architecture

기존에 모든 요소가 한 프로젝트에 포함되어 개발 및 배포되는 방식을 모놀리틱 아키텍처라고 하며 작은 규모의 개발에서는 적용이 가능하나 큰 규모의 프로젝트에서는 한계점이 있다.

Monolithic Architecture의 한계

  • 부분의 문제가 전체 시스템에 영향을 준다.
  • 여러 서버(scale-out)로의 처리가 힘들다.
  • 전체 테스트 등으로 인한 배포가 오래 걸린다.
  • Framework나 특정 언어에 종속적이다.

MSA의 장점

  • 모듈화 된 RPC 또는 message-driven API등을 이용하여 통신하여 개발 및 유지보수가 쉬워진다.
  • 서비스별로 scale-out이 가능하다.
  • 서비스별로 독립적으로 배포가 가능함으로 모놀로식에 비해 가볍게 진행할 수 있다.
  • 다른 기술 스택과 함께 적용이 가능하다.

MSA의 단점

  • 모놀리식에 비해 복잡하다는 단점이 있다. 분산된 서비스 내의 내부 통신을 어떻게 처리할지 정해야한다.
  • 트랜젝션 유지가 어렵다.
  • 통합 테스트가 어렵다.
  • 각 서비스들의 연계 확인이 어렵다.

[MSA] MSA란 무엇인가? 개념 이해하기

profile
자바 배우는 사람

0개의 댓글