cloud native 기술이란?
- 현대적이고 동적인 환경에서 확장 가능한 애플리케이션 개발 실행 도와줌
- 클라우드 환경에 맞춰 구축 → 클라우드 힘 발휘 최적화 상태
- 클라우드 기술이 지닌 가치,이점 최대한 활용 가능 구조
- 컨테이너, msa, devops, ci/cd → 클라우드 동작 위해 필요함
- 서비스 분산 → 서비스 간 통신 복잡성 증가
서비스 메시
- 사이드카 프록시 → 각 팟에 프록시를 주입, 프록시를 control plane 통해 조작
- 트래픽 세부적 조작, 관찰 강화
사이드카
- 동반자 컨테이너, 주 컨테이너와 동작하는 작은 부가적인 컨테이너, 메인 컨테이너 지원
ISTIO
- 대표적인 서비스 메시 툴 중 하나, 마이크로서비스 간의 통신과 관리 담당
- 쿠버네티스의 복잡성 감소
- 쿠버네티스 보조 도구
데이터 플레인
- 사이드카로 배포된 프록시(ENVOY)
- 워커 노드
컨트롤 플레인
- 트래픽을 라우팅하도록 프록시를 구성하고 관리
- 마스터 노드(데이터 플레인을 컨트롤,관리함)
장점
- 트래픽 통제
- 서비스 간 안정성 제공(PILOT을 통해 트래픽 통제)
- 관찰 가능성(모든 통신에 대한 텔레메트리 생성 → 시스템 현재 상태 측정)
- observability → 모니터링 + 분석, 에러 발생지 찾기
- 종류: grafana,prometheus, loki, datadog(기능 좋고 많지만 비쌈), Jaeger(분산 추적), kiali(istio를 위한 툴)
사용 전 고려 사항
- 자원 소비(커넥션 풀의 개수가 증가 → 트러블 슈팅 구간, 운영 비용 증가) → Ambient Mesh(사이드카 패턴을 띄운 것처럼 보이게 만듬, zero trust 터널로 통신(보안))
- 복잡성(자율도가 높음 = 설정해야 할 것이 많음)
서비스 메시 부연 설명
종류
- ISTIO(구글)
- App Mesh
- 테라폼 사에서 만든 것도 있음
특징
MSA에서만 돌아감 → 큰 기업에서만 돌아감(무신사, 토스)
L7에서 app이 돌아감. 그 앞단에 인프라를 구성해서 개발자가 신경 쓰지 않도록 하게 함.
사이드카 : 패턴
정리
클라우드 최적화된 환경 ← 컨테이너
컨테이너 관리 ← 쿠버네티스
쿠버네티스 관리 ← ISTIO
ISTIO는 트래픽 통제 및 안정성 제공, 관찰을 할 수 있으며 복잡하다.
참고 사이트
https://landscape.cncf.io/
참고 강의
https://www.youtube.com/watch?v=ZGUZVkbzOwg
https://www.youtube.com/watch?v=ftFHZwyUN38
https://www.youtube.com/watch?v=4sJd6PIkP_s