반응형

MSA란 무엇인가?

  • MSA

    • 하나의 서비스를 만들때 도메인별로 서비스를 쪼개어 독립적으로 서비스하고, 디플로이할 수 있도록 구성하는 아키텍쳐
    • 모놀리식(monolithic) 아키텍처와 대비되는 성격의 아키텍처이다.
    • 애플리케이션 로직을 각자 책임이 명확한 도메인별로 분리하여 이를 조합해 솔루션을 제공한다.
    • 각 컴포넌트(도메인)는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포된다. 마이크로 서비스는 비지니스 영역의 한 부분에서의 책임만을 담당하고, 여러 어플리케이션에서 재사용할 수 있어야한다.
    • 어플리케이션은 항상 기술 중립적 프로토콜을 사용해 통신하기때문에 서비스 구현기술과 무관하다. 이는 한 서비스를 구축하할때 개발언어 및 기술에 종속되지 않고 다양한 언어와 기술을 사용할 수 있다는 장점이있다.
  • Monolithic

    • 모듈이 서비스 내부의 Product 현태로 종속되어있으며, 서비스에만 집중할 수 있는 구조
    • 장점
      • 개발 초기에는 단순한 아키텍처 구조와 개발의 용이함이 큰 잠점.
    • 단점
      • 규모가 커짐에따라 복잡도의 증가가 심해진다.
  • MSA의 장점

    • 각 도메인별로 서비스를 배포하고 운용하기때문에 결합도(coupling)이 낮아지는 장점이있다.
    • 배포가 유연하다.
    • 재사용성 및 확장성이 크다.
    • 서비스별 기술의 도입 및 확장이 자유롭다.
    • 하나의 서비스에 문제가생겨도 연관되지 않은 다른 도메인은 지속적으로 서비스가 가능하다.
  • MSA의 단점

    • 장애추적, 모니터링, 매시징이 어렵다(?? 이게 어렵나?)
    • 어려 도메인에 걸친 기능의 경우 트랙잭션을 다루기 어렵다.
    • 도매인간 의존성이 있는경우 릴리즈가 어렵다. <=> 도매인간 roll-out계획 마련 및 명확한 의존성 관리

** 참고 자료 https://waspro.tistory.com/429

반응형

+ Recent posts