요즘 떠오르는 MSA 에서의 시스템 내부 통신이 Mesh 네트워크의 형태를 띄는것처럼 보인다.
MSA와 Mesh 네트워크에 대해서는 아래 참고 포스팅을 참고 바란다.
MSA 내부에서 서비스들끼리 서로 Mesh네트워크 형태처럼 서비스를 주고 받는것을 Service Mesh라고 한다.
아래 그림을 참고하면
각 MS에서 필요한 서비스를 Proxy를 통해 호출하고 받고 상호작용을 한다.
Service Mesh 적용 이유
Service Mesh를 적용하는 이유는
MicroService Architecture는 Monolitic Architecture의 단점 극복과 Cloud 환경에서 시스템을 운영할 때의 이점을 극대화하기 위해 많이 사용되고 있다.
이를 통해 많은 문제들이 해결되었지만, 또다른 문제점도 발생했는데 바로 시스템의 런타임 복잡성 이다.
위해서는 아키텍쳐를 잘 잡아줘야한다.
Service Mesh 기능
Service Mesh 기능은 아래와 같다. (MSA 의 요구사항이자 Service Mesh의 기능)
- Service Discovery
- Load Balancing
- Dynamic Request Routing
- Circuit Breaking
- Retry and Timeout
- TLS
- Distributed Tracing
- metrics 수집
- 기타 등등
Service Mesh 구현
Service Mesh Architecture의 구현은 보통 서비스의 앞단에 경량화 프록시를 사이드카 패턴으로 배치하여 서비스 간 통신을 제어하는 방법으로 구현한다.
사이드카 패턴은 아래 참고포스팅 참고 바란다.
Service Mesh 장단점
장점
- 기능을 어플리케이션 외부에 구현하며 재사용 가능하다.
- MicroService Architecture를 도입하면서 발생한 런타임 복잡성 이슈를 해결한다.
- 어플리케이션 개발시 언어와 미들웨어 등에 종속성을 제거한다.
단점
- 시스템의 런타임 인스턴스 수가 크게 증가한다. (최소 2배수)
- 서비스 간 통신에 네트워크 레이어가 추가된다.
- 신기술이다. 구현체가 Release 될 때까지 시간이 필요하다.
참고 포스팅
https://thenicesj.tistory.com/96
https://thenicesj.tistory.com/804
https://thenicesj.tistory.com/805
'IT > Knowledge' 카테고리의 다른 글
SPA / MPA 에 대해서 (23) | 2024.01.16 |
---|---|
HTTP Method (종류 및 상태코드) (24) | 2024.01.12 |
[kubernetes] 사이드카 패턴 (21) | 2024.01.08 |
메시 네트워크(Mesh network) (25) | 2024.01.07 |
바이너리(binary) 파일이란? (29) | 2023.12.23 |
댓글