054. Service Mesh — 서비스 간 통신을 인프라 레이어에서 제어하기
마이크로서비스가 많아지면 서비스 간 통신 관리가 복잡해진다. 재시도, 타임아웃, 서킷 브레이커, mTLS, 분산 추적을 각 서비스 코드에 중복 구현하게 된다. Service Mesh는 이 공통 기능을 sidecar proxy로 분리해 인프라 레이어에서 처리한다. Istio와 Envoy의 구조, 주요 기능, 그리고 오버헤드를 설명한다.
마이크로서비스가 많아지면 서비스 간 통신 관리가 복잡해진다. 재시도, 타임아웃, 서킷 브레이커, mTLS, 분산 추적을 각 서비스 코드에 중복 구현하게 된다. Service Mesh는 이 공통 기능을 sidecar proxy로 분리해 인프라 레이어에서 처리한다. Istio와 Envoy의 구조, 주요 기능, 그리고 오버헤드를 설명한다.
eBPF(extended Berkeley Packet Filter)는 리눅스 커널 안에서 사용자 정의 프로그램을 안전하게 실행하는 기술이다. Cilium은 eBPF 기반의 k8s CNI 플러그인으로, iptables를 대체하고 고성능 네트워킹, NetworkPolicy 구현, 서비스 메시 기능, 실시간 관찰 가능성을 커널 레벨에서 제공한다.
k8s에서 서비스를 운영하려면 무슨 일이 일어나는지 볼 수 있어야 한다. 관측성의 세 기둥인 메트릭·트레이스·로그가 k8s에서 어떻게 구성되는지, TPS를 어떻게 측정하는지, 분산 추적이 어떻게 여러 서비스를 하나의 흐름으로 잇는지, 로그는 어떻게 중앙에서 수집하는지를 설명한다.
마이크로서비스에서는 요청 하나가 여러 서비스를 거쳐 처리된다. 이 흐름을 끝에서 끝까지 추적하려면 서비스 경계를 넘어 추적 정보를 전달해야 한다. W3C Trace Context가 무엇인지, traceparent와 tracestate 헤더가 어떻게 생겼는지, 전파(propagation)가 어떻게 일어나는지, 그리고 이 표준이 왜 OpenTelemetry의 토대가 됐는지를 설명한다.