Free Lines Arrow
본문 바로가기
Architecture/MSA

[MSA] 개념

by skahn1215 2021. 9. 29.
728x90
반응형

MSA 

  • Micro Service Architecture 이다.
  • 서비스지향 아키텍처이다.
  • 프로그램을 독립적인 작은 서비스로 나누어 구축하는 방법이다.
    - 다시 말해 작은 서비스 들로 구축하는 방법이다.
  • 하나의 작은 서비스들은 독립적인 모놀리식 아키텍처이다.
  • 경량통신 또는 메시징프로토콜을 사용한다.
     - 경량통신 프로토콜(HTTP, REST)
      - 메시지 프로토콜(JMS 또는 AMQP)

 

 

MSA 의 등장배경

  • 기존 모놀리식의 단점을 해결하려고 등장했다.
  • 모놀리식은 소프트웨어의 모든 요소가 한프로젝트에 통합되어있다.
  • 그렇기 때문에 몸집이 점점커지게 되면 다음과 같은 단점을 가진다.
    - 빌드, 배포, 구동 시간이 길어진다.
    - 조금의 수정이 있어도 전체를 다시 빌드해야 된다.
    - 기능별로 기술, 언어를 분리하지 못한다

 

 

MSA 특징

  • 각 컴포넌트는 작은 책임 영역을 담당하고 상호 독립적으로 배포된다.
  • 애플리케이션에서 재사용 될수 있어야 한다.
  • 마이크로 서비스를 사용해 명확히 정의된 책임영역을 담당하는 소규모 팀을 보유할수 있다.

 

 

MSA 목적

  • MSA 는 독립적으로 구성될수 있어야 한다.
  • 상호독립적으로 구축 및 운영될수 있다.
  • 특정 서비스만 집중할 수 있고, 코드 규모가 작아 유지보수가 쉽다.
  • API 통신을 통해 효과적인 상호 연계가 가능하다.
  • 독립적인 서비스 단위확장(scale-out)을 지원하기 때문에 효율족인 시스템 자원을 활용한다.

 

 

Monolithic 와 MSA 의 구성도

 

 

 

 

MSA의 이점

  • 그렇다면 MSA 를 도입했을때 어떠한 이점이 있을까?

 

독립적인 배포가 가능해진다.

  • 각각의 서비스가 독립적이기 때문에 서비스에 따라 독립적인 배포를 할수 있다.
  • 수정이 발생 했을경우 전체빌드가 아닌 해당 서비스만 빌드 하면된다.

 

서비스는 각기 다른 언어, DB, HW, SW 를 이용할 수 있다.

  • MSA 에서 서비스들은 각각 독립적이기 때문에 알맞게 언어나 DB 를 따로 이용할수 있다.

 

장애관점

  • 하나의 장애가 전체서비스에 영향을 미칠 가능성이 적어진다.
  • 독립적인 서비스 이기 때문이다.

 

 

MSA의 단점

  • 물론 MSA 의 단점도 있을 것이다 다음과 같은 단점들이 존재한다.

추가비용이든다.

  • API 로 통신하기 때문에 통신을 위한 추가 비용이 든다.
  • Latency 가 증가한다. 

 

테스트가 어렵다.

  • 여러 서비스에 의존하는 기능이라면 테스트가 어려워 질수 밖에 없다.

서비스들이 너무 많아질수 있다.

  • 서비스들을 독립적으로 만들다 보면 너무 많은 서비스들이 생겨날수 있다.

 

트랜잭션 처리가 어렵다.

  • 예를 들어 두개의 서비스가 MSA 로 분리 되어 있을때 하나라도 실패하면 롤백을 해야하는데
    이것을 구현하는것은 쉽지 않다.

 

 

 

 

참고:

https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4

 

마이크로서비스 - 위키백과, 우리 모두의 백과사전

마이크로서비스(microservice)는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법이다. 마이크로서비스 아키텍처

ko.wikipedia.org

 

https://www.egovframe.go.kr/home/ntt/nttRead.do?menuNo=76&bbsId=171&nttId=1809 

 

관련참고문서 | 표준프레임워크 포털 eGovFrame

처리중입니다. 잠시만 기다려주십시오.

www.egovframe.go.kr

 

728x90
반응형

'Architecture > MSA' 카테고리의 다른 글

[MSA] Transaction  (0) 2023.03.04
[MSA] Service Mesh  (0) 2021.09.30

댓글