모델 서빙의 라우팅 현황 (새 탭에서 열림)
넷플릭스는 대규모 개인화 경험을 제공하기 위해 수백 개의 모델과 초당 100만 건의 요청을 처리하는 중앙 집중식 머신러닝(ML) 모델 서빙 플랫폼을 운영하고 있습니다. 이 플랫폼은 'Switchboard'라는 라우팅 계층을 통해 클라이언트 마이크로서비스와 복잡한 ML 모델 인프라를 분리하여, 클라이언트의 수정 없이도 새로운 모델을 신속하게 실험하고 배포할 수 있는 환경을 구축했습니다. 이를 통해 넷플릭스는 모델 추론뿐만 아니라 데이터 전처리 및 특징 추출을 포함한 전체 워크플로우를 표준화된 API로 추상화하여 혁신의 속도를 높이고 있습니다. ### 넷플릭스의 워크플로우 중심 모델 정의 * 넷플릭스에서 모델은 단순한 추론 함수(`score(features)`)를 넘어, 입력 데이터 변환, 특징(feature) 계산, 추론, 후처리를 모두 포함하는 독립적인 '워크플로우'로 정의됩니다. * 클라이언트는 사용자 ID나 국가와 같은 최소한의 컨텍스트만 제공하며, 모델 서빙 플랫폼이 필요한 데이터를 다른 마이크로서비스에서 가져와 직접 특징을 계산합니다. * 이러한 구조 덕분에 클라이언트는 모델의 내부 로직이나 데이터 의존성을 알 필요가 없으며, 모델의 아키텍처가 변하더라도 클라이언트 코드를 수정할 필요가 없습니다. ### 중앙 집중형 라우팅 엔진, Switchboard * 넷플릭스는 표준 API 게이트웨이나 서비스 메시가 제공하지 못하는 실험 플랫폼과의 통합, gRPC 지원, 도메인 특화 라우팅을 구현하기 위해 자체 프록시 서비스인 'Switchboard'를 개발했습니다. * Switchboard는 클라이언트 요청을 적절한 모델 인스턴스와 클러스터 샤드로 전달하는 역할을 수행하며, 초당 100만 건 이상의 요청을 처리하면서도 높은 가용성을 유지합니다. * 모델 배포 시 섀도 모드(Shadow mode), 카나리 배포(Canary), 롤백 등을 클라이언트 모르게 수행할 수 있어 안전한 운영이 가능합니다. ### 인프라 복잡성을 감추는 모델 샤딩 분리 * 모델은 트래픽 패턴, SLA, CPU/메모리 요구사항에 따라 여러 연산 클러스터 샤드(VIP 주소)에 분산 배치됩니다. * 서빙 플랫폼은 이러한 물리적 배치 상태를 클라이언트로부터 은폐하여, 인프라의 변경이나 모델의 샤드 이동이 클라이언트 서비스에 영향을 주지 않도록 설계되었습니다. * 이를 통해 ML 연구자는 인프라 제약 없이 자유롭게 실험을 설계하고 모델을 배포할 수 있습니다. ### 'Objective' 기반의 추상화 계층 * 플랫폼은 'Objective'라는 열거형(Enum) 단위를 통해 모든 요청을 관리하며, 이는 비즈니스 목적(예: 콘텐츠 추천, 결제 사기 탐지)을 나타냅니다. * Objective는 요청이 전달될 특정 서빙 클러스터와 모델 유형/버전을 결정하는 기준이 됩니다. * 또한, 각 Objective는 고유한 API 규격을 정의하여 서로 다른 도메인의 클라이언트가 동일한 방식으로 플랫폼과 통신할 수 있도록 표준화합니다. 성공적인 대규모 ML 시스템을 구축하려면 모델의 생명주기를 클라이언트 애플리케이션으로부터 완전히 격리해야 합니다. 넷플릭스의 사례처럼 워크플로우 단위의 모델 정의와 'Objective' 중심의 라우팅 추상화를 도입함으로써, 인프라의 복잡성을 관리하면서도 머신러닝 혁신의 속도를 극대화할 수 있습니다.