Cloud & DevOps/Distributed System & Kubernetes

[MSA] Service Mesh

데이터 세상 2022. 6. 20. 16:04

Service Mesh

프록시를 사용하여 서비스 또는 마이크로 서비스 간의 서비스 간 통신을 촉진하기 위한 전용 인프라 계층

서비스 메시는 서비스 간의 통신을 제어하고 표시하고 관리할 수 있도록 하는 데 특화된 마이크로 서비스를 위한 인프라 계층이다.

서비스 메쉬에서의 호출은 자체 인프라 계층의 proxy를 통해 이루어지게 된다.

 

마이크로 서비스와 서비스 메쉬

출처: https://www.redhat.com/ko/topics/microservices/what-is-a-service-mesh

마이크로서비스 아키텍처에 구축된 클라우드 네이티브 애플리케이션의 경우에는 서비스 메쉬 방식으로 대량의 개별 서비스를 정상 애플리케이션으로 구성한다.

 

기본적으로 마이크로서비스는 독립적으로 구축되고 서로 커뮤니케이션하며, 장애가 개별적으로 발생하므로 애플리케이션 전체의 운영 중단으로 확대되지 않는다.

서비스 간 커뮤니케이션이 바로 마이크로서비스를 가능하게 하는 핵심이다. 커뮤니케이션을 통제하는 로직은 서비스 메쉬 레이어 없이 각 서비스에 코딩될 수 있다. 그러나 커뮤니케이션이 복잡해질수록 개발자들이 비즈니스 로직에 집중하지 못하고 커뮤니케이션 통제 로직에 집중하게 된다.

또한 서비스 간 커뮤니케이션을 통제하는 로직이 각 서비스 내부에 숨겨져 있기 때문에 커뮤니케이션 장애를 진단하기가 더 어려워진다.

 

Mesh Network

service mess에서는 요청이 자체 인프라 계층의 프록시를 통해 마이크로서비스 간에 라우팅된다.

service mesh를 구성하는 개별 proxy는 서비스 내부가 아니라 각 서비스와 함께 실행되므로 sidecar라고도 한다.

각 서비스에서 분리된 sidecar proxy들이 모여 mesh network를 형성한다.

출처: https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh

 

Service Mesh 이점

 

Service Mesh 주요 기능

  • 요청 라우팅 제어
  • 계단식 장애 방지 (서킷브레이크)
  • 부하 분산 알고리즘 (로드밸런싱)
  • 보안 기능 (TLS, 암호화, 인증 및 권한 부여)
  • 서비스 간 계층에서 계측 정보를 제공하는 메트릭

 


References

 

반응형

'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