Service Mesh란?

이진호·2024년 6월 11일
0

MSA

목록 보기
1/1

Service Mesh란?

Service Mesh란?

  • 애플리케이션의 다양한 부분들이 서로 데이터를 공유하는 하고, 인증 및 라우팅하는 것을 지원하는 기술.
  • 네트워크의 형태가 mesh형식으로 구성되는 경우가 많아 service mesh라고 명명됨.
  • 사용자가 구축한 실제 서비스(microservice)의 sidecar로 구성되어, 실제 서비스 어플리케이션 코드의 변경 없이 다양한 네트워크 구성(인증, 라우팅, 보안 등)을 적용할 수 있도록 함.

왜 Service Mesh 를 적용하는가?

  • MSA 환경의 확산에 따라 서비스(microservice)간의 통신이 복잡해지고, 관리 및 추적하기 어려운 상황이 자주 발생하게 됨.
    • 서비스 & Instance 의 증가
    • 서비스 간 통신
  • Service Mesh는 내부 네트워크의 복잡성을 Sidecar 패턴을 통해 단순화시켜 배포/운영이 쉽게 도와줌.

Service Mesh 기능

  • Service Discovery
  • Load Balancing
  • Dynamic Request Routing
  • Circuit Breaking
  • Retry and Timeout
  • TLS
  • Distributed Tracing
  • metrics 수집
  • 기타 등등

Service Mesh 구현

Service Mesh 구현

  • 보통 서비스의 앞단에 경량화 프록시를 사이드카 패턴으로 배치하여 서비스 간 통신을 제어하는 방법으로 구현.
  • 서비스 간 통신은 사이드카로 배치된 경량화 Proxy를 통해서 동작.

기본 API G/W와의 차이점.

API GatewayService Mesh
동작 위치외부망과 내부망 사이내부망
핵심 기능외부의 요청을 내부 서비스로 안전하게 전달내부 어플리케이션간 통신을 쉽고 안전하게 제공
장애발생API G/W에 모든 요청이 집중(SPOF, Single Point Of Failure)서비스별로 요청이 분산되어 쉽게 확장가능한 구조 (API G/W 처럼 외부에서 접속하는 부분의 확장 중요)
구현방식클러스터 앞단에 API G/W를 구현하여 적용원하는 어플리케이션들 간의 네트워크를 정의하여 배포

지원 오픈소스

  • Istio/Envoy
  • Conduit
  • Linkerd

출처

0개의 댓글