Netflix Stratum Media Processi... Заметка

Netflix Stratum Media Processing: Автоматическое изменение размера контейнеров

Stratum — это внутренняя бессерверная платформа обработки медиа от Netflix, имеющая решающее значение для обработки различных медиа-задач, таких как кодирование и упаковка. Инженеры определяют функции Stratum как OCI-образы, которые затем планируются как пакетные задания на вычислительной платформе Titus. Управляя сотнями тысяч контейнеров, Stratum нуждается в динамическом масштабировании для новых форматов контента, таких как подкасты и прямые трансляции. Запросы на ресурсы, указанные в YAML, часто избыточно выделяются из-за меняющейся инфраструктуры и изменений в приложениях, что приводит к неэффективности и увеличению операционных расходов.Для решения этой проблемы Netflix разработал Stratum Resource Tuner (SRT) — автоматизированную систему, предназначенную для правильного определения размеров ресурсов контейнеров в производственной среде. SRT нацелен на устранение ручной настройки ресурсов, первоначально фокусируясь на рабочих нагрузках с высокой пропускной способностью и нестрогими требованиями к задержке, которые составляют 70-80% использования ресурсов. Владельцы функций могут выбрать автоматическое определение оптимальных размеров для каждого типа ресурсов (ЦП, память, диск, сеть).Рабочий процесс SRT состоит из пяти этапов: сбор метрик использования ресурсов, генерация рекомендаций, проверка рекомендаций посредством экспериментов, применение или отклонение рекомендаций и мониторинг метрик после применения. Рекомендации проходят через состояния: CREATED (создано), EVALUATING (оценивается), APPLIED (применено), REJECTED (отклонено) и MONITORED (под наблюдением). Например, избыточно выделенная память и ЦП для функции VideoEncoder.encodeV1 были успешно оптимизированы.Сбор метрик надежен: сводки по выполнению хранятся в Elasticsearch для краткосрочного поиска, а необработанные метрики использования с высоким разрешением — в таблицах Iceberg для долгосрочного анализа тенденций. Ежедневно запускается рабочий процесс Conductor, который использует данные Iceberg за месяц для генерации рекомендаций для всех функций и типов ресурсов. Этот процесс включает фильтрацию рабочих нагрузок с высокой пропускной способностью, агрессивную настройку ЦП и сети (использование p99) и консервативную настройку памяти и диска (использование p99.9 с буфером безопасности).Предусмотрены меры предосторожности, такие как отбрасывание рекомендаций, если сокращение слишком мало, и ограничение максимального сокращения памяти и диска до 15% за цикл. Рекомендации создаются в состоянии CREATED и становятся неизменяемыми после продвижения за этот этап. Пример показывает, как рекомендации по ЦП сокращаются с 8 до 4, а по памяти — с 18000 МБ до 15300 МБ за один шаг, что иллюстрирует практическое применение SRT в оптимизации затрат.
CdXz5zHNQW_2pPMwVXJcD.png