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
https://www.egovframe.go.kr/home/ntt/nttRead.do?menuNo=76&bbsId=171&nttId=1809
728x90
반응형
'Architecture > MSA' 카테고리의 다른 글
[MSA] Transaction (0) | 2023.03.04 |
---|---|
[MSA] Service Mesh (0) | 2021.09.30 |
댓글