#Backend

사일로에서 서비스 토폴로지로: 넷플릭스가 실시간 서비스 맵을 구축한 이유

사일로에서 서비스 토폴로지로: 넷플릭스가 실시간 서비스 맵을 구축한 이유
01

Summary

넷플릭스 장애 대응의 핵심 무기: 1,000개 이상의 마이크로서비스를 한눈에 파악하는 '살아있는 지도'

eBPF와 그래프 DB로 구현한 실시간 서비스 토폴로지가 복잡한 분산 시스템의 가시성을 해결하는 방법

본 아티클은 넷플릭스가 파편화된 관측 지표들을 어떻게 하나의 통합된 서비스 맵으로 진화시켰는지에 대한 기술적 여정을 다룹니다. 네트워크 계층부터 애플리케이션 계층까지 아우르는 3중 데이터 전략을 통해, 수천 개의 서비스가 얽힌 복잡한 환경에서도 엔지니어가 단 몇 초 만에 의존성을 파악할 수 있는 아키텍처를 소개합니다.

  • 01eBPF, IPC 메트릭, 분산 트레이싱을 결합한 3계층 데이터 소스 전략
  • 02로드 밸런서 등 중간 네트워크 홉을 제거하고 실제 앱 간 연결을 재구성하는 해결 로직
  • 03대규모 트래픽 처리를 위한 Apache Pekko Streams 기반의 3단계 집계 파이프라인
  • 04과거 특정 시점의 아키텍처 상태를 복원하는 'Time Travel' 쿼리 기능
  • 05장애 발생 시 영향도를 자동 계산하여 대응 우선순위를 결정하는 Blast Radius 분석

RECOMMENDATION

마이크로서비스 아키텍처(MSA)를 운영하며 서비스 간 복잡한 의존성 때문에 장애 복구 시간이 길어지는 팀에게 강력히 추천합니다. 특히 eBPF를 활용한 비침습적 관측과 그래프 데이터베이스를 활용한 관계 모델링 기법은 인프라 엔지니어들에게 실무적인 영감을 줄 것입니다.

The Problem

넷플릭스의 수천 개 마이크로서비스 환경에서 장애 발생 시 서비스 간 의존성, 장애 영향도(Blast Radius), 근본 원인을 파악하는 데 기존의 메트릭과 로그만으로는 한계가 있었습니다. 특히 실시간 데이터가 아닌 정적인 다이어그램은 급변하는 인프라 상태를 반영하지 못해 엔지니어들이 수동으로 정보를 조합해야 하는 어려움이 있었습니다.

The Solution

eBPF 기반 네트워크 흐름(Network Layer), IPC 메트릭(Application Layer), 분산 트레이싱(Request Layer)의 세 가지 데이터 소스를 통합한 실시간 '서비스 토폴로지' 시스템을 구축했습니다. Apache Pekko Streams를 활용한 3단계 분산 처리 파이프라인을 통해 부하 분산 장치 등 중간 노드를 식별하여 실제 앱 간의 관계를 재구성하고, 고성능 그래프 데이터베이스에 저장했습니다.

The Result

수천 개의 노드가 포함된 복잡한 호출 그래프에서도 1초 미만의 응답 속도로 쿼리가 가능해졌으며, 과거 시점의 토폴로지를 확인하는 '타임 트래블' 기능을 구현했습니다. 이를 통해 장애 대응 시 상/하위 의존성을 즉각 파악하고 유지보수 전 영향도를 정확히 계산할 수 있는 환경을 마련했습니다.

Trade-off

트레이싱 데이터의 경우 성능 영향을 최소화하기 위해 샘플링 방식을 사용하므로 드물게 발생하는 코드 경로가 누락될 수 있으며, IPC 메트릭은 라이브러리가 주입된 서비스에만 국한된다는 한계가 있습니다. 또한 실시간성과 저장 비용의 균형을 맞추기 위해 시간 윈도우 집계(Time-window aggregation) 방식을 채택하여 미세한 시간 단위의 데이터 정밀도는 일부 희생되었습니다.

03

Key Concepts

Concept · 01

eBPF (Extended Berkeley Packet Filter)

커널 소스 코드를 수정하지 않고도 운영체제 커널 내에서 샌드박스화된 프로그램을 실행할 수 있게 해주는 기술입니다.

  • 애플리케이션의 수정 없이 커널 수준에서 네트워크 흐름(Flow) 데이터를 수집하여 실시간 네트워크 가시성을 확보하는 데 사용되었습니다.
Concept · 02

Service Topology

분산 시스템 내에서 마이크로서비스 간의 연결 관계와 의존성을 시각화하고 데이터화한 구조적 지도입니다.

  • 단순한 정적 다이어그램을 넘어 실시간 트래픽 데이터를 기반으로 업데이트되는 '살아있는 지도' 형태로 구현되었습니다.
Concept · 03

Inter-Process Communication (IPC) Metrics

서로 다른 프로세스나 서비스 간에 통신할 때 발생하는 프로토콜, 엔드포인트, 에러율 등의 세부 메트릭입니다.

  • 네트워크 흐름 데이터가 제공하지 못하는 구체적인 API 경로(/api/v1/...)와 호출 성격에 대한 애플리케이션 맥락을 제공합니다.