서비스를 배포하면서 들어본 용어다. 정말 '쉽게' 정리해보려고 한다.
Istio는 마이크로서비스끼리 서로 잘 통신하게 도와주는 '트래픽 매니저' 임.
예를들어보면,
음식점(서비스)들이 모여 있는 음식 코너(MSA 환경)가 있음.
- 한 음식점 = 하나의 마이크로서비스
- 손님은 A 음식점에서 밥을 시킴 → A는 B에게 국을 주문하고 → B는 C에게 반찬을 주문해요
- 근데 음식이 늦게 오거나, 엉뚱한 데서 오거나, 안 오거나 하면 문제겠지?
과거에는?
- 각 음식점(서비스)에서 직접 배달, 주문, 실패 처리, 재시도 등 모든 걸 직접 구현해야 했음!
- 음식점 코드마다 try-catch, timeout, retry 같은 코드가 넘쳐나고 버그도 많았음.
이제 Istio를 쓰면?
Istio는 각 음식점에 ‘전문 배달 직원’(= Envoy Proxy) 을 붙여줌!!
모든 음식 주문은 배달 직원(프록시) 이 대신 처리함.
역할 설명
음식점 | 서비스 A, B, C |
손님 | 클라이언트 |
배달 직원 | Envoy Proxy (Istio가 자동으로 붙여줌) |
배달본부 | Istio Control Plane (설정 관리) |
[Service A]
↕
[Envoy A] ← A가 실제로 통신하는 대상
↔ ← Istio가 이 부분을 통제함! ( 배달 직원)
[Envoy B]
↕
[Service B]
- A가 B로 보내는 요청은 모두 Envoy → Envoy → B 순서로 감
- A와 B 코드는 수정 안 해도 됨!
- 설정 한 줄로 timeout, retry, fallback
- 로그, trace 자동 수집
- TLS 자동 적용
- 코드 수정 거의 없음
을 해주는 것!!
'TIL' 카테고리의 다른 글
DB 차이점 정리 (0) | 2025.06.29 |
---|---|
소켓에서 레디스를 왜 쓸까? (0) | 2025.06.29 |
Kafka 동시에 같은 이벤트 들어오는 경우 (0) | 2025.05.25 |
Spring 트랜잭션 RollbackFor (0) | 2025.05.22 |
Spring 트랜잭션 전파 레벨 (0) | 2025.05.22 |