728x90
반응형
Service Mesh
프록시를 사용하여 서비스 또는 마이크로 서비스 간의 서비스 간 통신을 촉진하기 위한 전용 인프라 계층
서비스 메시는 서비스 간의 통신을 제어하고 표시하고 관리할 수 있도록 하는 데 특화된 마이크로 서비스를 위한 인프라 계층이다.
서비스 메쉬에서의 호출은 자체 인프라 계층의 proxy를 통해 이루어지게 된다.
마이크로 서비스와 서비스 메쉬
마이크로서비스 아키텍처에 구축된 클라우드 네이티브 애플리케이션의 경우에는 서비스 메쉬 방식으로 대량의 개별 서비스를 정상 애플리케이션으로 구성한다.
기본적으로 마이크로서비스는 독립적으로 구축되고 서로 커뮤니케이션하며, 장애가 개별적으로 발생하므로 애플리케이션 전체의 운영 중단으로 확대되지 않는다.
서비스 간 커뮤니케이션이 바로 마이크로서비스를 가능하게 하는 핵심이다. 커뮤니케이션을 통제하는 로직은 서비스 메쉬 레이어 없이 각 서비스에 코딩될 수 있다. 그러나 커뮤니케이션이 복잡해질수록 개발자들이 비즈니스 로직에 집중하지 못하고 커뮤니케이션 통제 로직에 집중하게 된다.
또한 서비스 간 커뮤니케이션을 통제하는 로직이 각 서비스 내부에 숨겨져 있기 때문에 커뮤니케이션 장애를 진단하기가 더 어려워진다.
Mesh Network
service mess에서는 요청이 자체 인프라 계층의 프록시를 통해 마이크로서비스 간에 라우팅된다.
service mesh를 구성하는 개별 proxy는 서비스 내부가 아니라 각 서비스와 함께 실행되므로 sidecar라고도 한다.
각 서비스에서 분리된 sidecar proxy들이 모여 mesh network를 형성한다.
Service Mesh 이점
- 개발자들이 서비스를 연결하는 대신 비즈니스 가치를 추가하는 일에 집중할 수 있습니다.
- Jaeger를 통해 분산된 요청 추적은 서비스와 함께 가시적인 인프라 계층을 형성하므로 문제를 손쉽게 인식하고 진단할 수 있습니다.
- 서비스 메쉬는 장애가 발생한 서비스로부터 요청을 재라우팅할 수 있기 때문에 다운 타임 발생 시 애플리케이션 복구 능력이 향상됩니다.
- 시스템 성능 메트릭을 통해 실행(runtime) 환경에서 커뮤니케이션 최적화 방법을 제안할 수 있습니다.
Service Mesh 주요 기능
- 요청 라우팅 제어
- 계단식 장애 방지 (서킷브레이크)
- 부하 분산 알고리즘 (로드밸런싱)
- 보안 기능 (TLS, 암호화, 인증 및 권한 부여)
- 서비스 간 계층에서 계측 정보를 제공하는 메트릭
References
- https://www.redhat.com/ko/topics/microservices/what-is-a-service-mesh
- https://daddyprogrammer.org/post/13700/service-mesh/
728x90
반응형
'Cloud & DevOps > Distributed System & Kubernetes' 카테고리의 다른 글
[Serverless] Knative (0) | 2022.06.20 |
---|---|
Kafka (0) | 2022.06.20 |
[Tracing] Jaeger (0) | 2022.06.20 |
[Service Mesh] Istio (0) | 2022.06.20 |
Red Hat OpenShift Terms (0) | 2022.06.13 |