서비스 메쉬 정리

영진·2023년 1월 14일
0

network

목록 보기
5/14

오늘은 서비스 메쉬에 대해 조사해보았다.


service math란?

서비스 메쉬(Service Mesh)란 오픈소스 프로젝트 istio처럼 애플리케이션의 다양한 부분들이 서로 데이터를 공유하는 방식을 제어하는 방법이다.

서비스 메쉬는 애플리케이션에 구축된 전용 인프라 계층이다.

인프라 계층

  1. 서로 다른 애플리케이션 부분이 얼마나 원활하게 상호작용하는지를 기록할 수 있다.
  2. 더 쉽게 커뮤니케이션을 최적화하고 애플리케이션 확장에 따른 다운 타임을 방지할 수 있다.
  3. 서비스는 사용자들이 원하는 기능을 제공해준다.

service math의 이점

서비스 메시의 이점은 다음과 같이 대표적으로 4가지로 분류 할 수 있다.

  1. 상호 운용성 향상: 서비스 메시는 웹, 모바일, SaaS 애플리케이션 코드를 지원하는 통합 마이크로 서비스 환경의 SDN 라우팅 기능을 확장한다.
  2. 마이크로 서비스 검색 기능 강화: 서비스 메시는 더 우수한 마이크로 서비스 검색을 통해 네트워크 구성 및 관리를 개선한다.
  3. 네트워크 활동에 대한 세부적인 실시간 모니터링 및 분석: 서비스 메시는 백엔드 프로세스와 웹 서버 하드웨어에 액세스할 수 있어 네트워크 활동을 더욱 상세하게 실시간으로 모니터링하고 분석한다.
  4. 웹 및 모바일 스크립트 자동화 향상: 개발자는 YAML 파일과 Vagrant, Jenkins, Puppet,
    Chef 등의 유틸리티를 통해 서비스 메시 기능의 스크립트를 작성하여 웹 및 모바일 스크립트의 강력한 자동화를 대규모로 구축할 수 있다. 서비스 메시는 클라우드에서 동시에 실행되는 수천 또는 수백만 개의 컨테이너를 조정한다.

API 게이트웨이와의 차이점


Service Mesh의 종류

Service mesh는 현재 크게 세가지 유형으로 구분할 수 있다.

1) PaaS (Platform as a Service)의 일부로 서비스 코드에 포함되는 유형
Microsoft Azure Service fabric, lagom, SENECA 등이 이 유형에 해당되며, 프레임워크 기반의
프로그래밍 모델이기 때문에, 서비스메쉬를 구현하는데에 특화된 코드가 필요하다. ( Mesh-native Code )

2) 라이브러리로 구현되어 API 호출을 통해 Service mesh에 결합되는 유형
Spring Cloud, Netflix OSS(Ribbon/Hystrix/Eureka/Archaius), finagle 등이 이
유형에 해당되며, 프레임워크 라이브러리를 사용하는 형태이다. 이중 Netfilix의 Prana는 sidecar 형태로 동작한다.

3) Side car proxy를 이용하여 Service mesh를 마이크로서비스에 주입하는 유형
Istio/Envoy, Consul, Linkerd 등이 이 유형에 해당되며, sidecar proxy 형태로 동작됩니다. 따라서 서비스메시와 무관하게 코드를 작성할 수 있다.


Sidecar pattern?

Sidecar pattern(컨테이너 배포방식의 경우)

모든 응용 프로그램 컨테이너에 추가로 sidecar 컨테이너가 배포된다.

Sidecar는 서비스에 들어오거나 나가는 모든 네트워크 트래픽을 처리하게 된다.

가장 큰 특징은, 비즈니스 로직이 포함된 실제 서비스와 sidecar이 병렬로 구성되어있기 때문에,

서비스 호출에서 서비스가 직접 서비스를 호출하는 것이 아니라 proxy 를 통해서 호출하게된다.

따라서, 대규모의 마이크로서비스 환경이라고 하여도 개발자가 별도의 작업 없이 서비스의 연결 뿐만 아니라, 로깅, 모니터링, 보안, 트래픽 제어와 같은 다양한 이점을 누릴 수 있다.

최근의 Service Mesh는 Sidecar pattern 유형이 recommended 되고 있는 추세이다.


Service Mesh의 주요 기능

일반적으로, Istio나 consul, Linkerd와 같은 Service Mesh 프레임워크들은 다음과 같은 기능들을 지원한다.

  • Service Discovery
  • Load balancing (지연시간 기반 / 대기열 기반 )
  • Dynamic Request Routing
  • Circuit Breaking
  • 암호화 (TLS)
  • 보안
  • Health check, Retry and Timeout
  • Metric 수집
profile
I'm good at cloud computing.

0개의 댓글