전자책 출간 알림 [마이크로서비스패턴 쉽게 개발하기]

티스토리 뷰

Cloud/istio

01. istio 란 ?

Happy@Cloud 2020. 2. 4. 23:54

istio란 Service간의 연결을 proxing이라는 방법으로 제어하는 오픈소스소프트웨어입니다. 

https://istio.io/docs/


1. WHY istio ? 

- Service의 Micro화로 인해 service의 양과 상호 연결의 복잡도가 증가하여 Service들을 효율적으로 관리할 필요가 발생

- Service Mesh란? Service를 발견->연결->모니터링하는것을 말합니다.

- istio의 탄생 배경

   -> netflix가 service mesh 오픈소스 공개하였으나 사용하기 매우 복잡

   -> java spring framework으로 추상화하여 사용하기 쉽게 만듬. 그러나 java만 적용 가능.

   -> Software계층이 아닌 infra계층에서 service mesh를 해결하려는 시도 
        즉, network layer에서 service간의 연결 문제를 해결함.  각 Service마다 proxy를 만들고 proxy를 통해 Service 연결 제어 

   -> Service가 많아 질수록 proxy에 연결 설정을 하는 것이 복잡해짐

   -> Control plane등장: proxy간의 구성설정을 저장하고 proxy에 전달하는 proxy 통제 그룹
        (Data plane: service간 트래픽 제어를 하는 proxy그룹)

- Data plane을 통제하여 service 탐색, 연결, 모니터링을 하는 OSS가 istio이다.

- Envoy proxy: istio가 사용하는 proxy S/W - https://arisu1000.tistory.com/27864
   - Lyft사가 개발한 cloud전용 L7 proxy
   - Architecture: 수신->처리->분배
      - Listener: Request 수신
      - Filter: Request 처리(압축, routing제어)
      - Cluster: 서비스 분배

 

2. Istio의 기능: Connect, Secure, Control, Observe services

 

Service간의 로드밸런싱 및  Traffic 제어

활용예)- A/B테스팅, Canary배포- Timeout, Circuit breaker, Retries

 

Service 인증 /권한 제어 및 통신암호화(TLS)  기본 제공

 

제반 정책 관리

활용예)

- 유량제어 

- 라우팅정책: 접근user, device등에 따른 service 연결 

 

로깅 및 메트릭 수집

 


3. Istio Architecture

 

 

 

- Data plain : service mesh의 수행 그룹

   - Envoy proxy: Service간 In/Outbound 트래픽을 중계하는 proxy
   - 각 Service마다 Envoy proxy가 1:1로 sidecar루 구성되어 트래픽을 제어함

 

Control plain : Data plain 제어
  - Mixer: 서비스 라우팅 정책 관리와 모니터링 수행
  - Pilot: End Point 관리, 로드밸런싱, 트래픽 제어
    - Service discovery: envoy에게 service endpoint(IP,PORT) 제공
    - 로드밸런싱(A/B테스팅, Canary배포): service 호출 경로 통제 제공
    - 트래픽제어:Service resiliency(타임아웃, circuit breaker, 재시도) 제공
  - Citadel: 인증/인가 및 인증서 관리
    - Authentication & Authorization
    - credential(인증서) 관리

 


### 용어참고
- envoy: 사절, 외교관->cloud용 proxy툴
- gRPC(google Remote Procedure Call): 구글이 만든 gRPC
- telemetry: 원격측정[법] -> Metric 집계 기능
- resiliency: 탄력, 회복력, 탄성 -> 안정적 Service 보장 기능
- citadel: 성,성채,거점
- credential: 신용정보

'Cloud > istio' 카테고리의 다른 글

05. Traffic Management: 서비스 Routing  (0) 2020.03.10
04. Getting started  (0) 2020.03.06
99. Trouble shooting  (0) 2020.03.03
03. istio sidecar injection  (0) 2020.03.03
02. istio 설치  (0) 2020.03.03
댓글

전자책 출간 알림 [마이크로서비스패턴 쉽게 개발하기]