Netflix Stratum Media Processing: 자동화된 컨테이너 최적화
Stratum은 Netflix의 내부 서버리스 미디어 처리 플랫폼으로, 인코딩 및 패키징과 같은 다양한 미디어 워크로드를 처리하는 데 필수적입니다. 엔지니어는 Stratum 함수를 OCI 이미지로 정의하며, 이는 Titus 컴퓨팅 플랫폼에서 배치 작업으로 예약됩니다. 수십만 개의 컨테이너를 관리하는 Stratum은 팟캐스트 및 라이브 이벤트와 같은 새로운 콘텐츠 형식에 대한 동적 확장이 필요합니다. YAML로 지정된 리소스 요청은 인프라 및 애플리케이션 변경 사항의 진화로 인해 종종 과도하게 프로비저닝되어 비효율성과 운영 비용 증가를 초래합니다.이를 해결하기 위해 Netflix는 프로덕션에서 컨테이너 리소스를 올바르게 조정하도록 설계된 자동화 시스템인 Stratum Resource Tuner(SRT)를 개발했습니다. SRT는 리소스 사용량의 70-80%를 차지하는 지연 시간 요구 사항이 완화된 고처리량 워크로드에 초점을 맞춰 수동 리소스 구성을 제거하는 것을 목표로 합니다. 함수 소유자는 리소스 유형(CPU, 메모리, 디스크, 네트워크)별 자동 조정 기능을 선택할 수 있습니다.SRT 워크플로우는 리소스 사용량 메트릭 수집, 권장 사항 생성, 실험을 통한 권장 사항 검증, 권장 사항 적용 또는 거부, 적용 후 메트릭 모니터링의 다섯 단계로 구성됩니다. 권장 사항은 CREATED, EVALUATING, APPLIED, REJECTED, MONITORED 상태를 거칩니다. 예를 들어, VideoEncoder.encodeV1 함수의 과도하게 프로비저닝된 메모리와 CPU는 성공적으로 조정되었습니다.메트릭 수집은 강력하며, 단기 조회를 위해 Elasticsearch에 실행 수준 요약이 저장되고 장기 추세 분석을 위해 Iceberg 테이블에 고해상도 원시 사용량 메트릭이 저장됩니다. Conductor 워크플로우는 매일 실행되며, 한 달간의 Iceberg 데이터를 사용하여 모든 함수 및 리소스 유형에 대한 권장 사항을 생성합니다. 이 프로세스에는 고처리량 워크로드 필터링, CPU 및 네트워크(p99 사용량)의 공격적인 조정, 메모리 및 디스크(안전 버퍼가 있는 p99.9 사용량)의 보수적인 조정이 포함됩니다.권장 사항이 너무 작으면 폐기하고, 메모리 및 디스크의 최대 감소를 주기당 15%로 제한하는 등 안전 장치가 마련되어 있습니다. 권장 사항은 CREATED 상태로 생성되며 이 단계를 지나면 변경할 수 없습니다. 예시는 단일 단계에서 CPU 권장 사항이 8에서 4로, 메모리가 18000MB에서 15300MB로 감소하는 것을 보여주며, 이는 비용 최적화에서 SRT의 실제 적용을 보여줍니다.