Netflix's new video processing platform, Cosmos, uses microservices to modernize media processing pipelines. Video Encoding Service (VES) is a key microservice that encodes mezzanine content into video streams suitable for streaming or studio use.
VES supports multiple codecs, resolutions, and quality levels, and employs chunked encoding for low latency. Its API layer, Optimus, ensures a stable interface for external users.
The workflow layer, Plato, orchestrates encoding steps using a directed acyclic graph (DAG) with MapReduce parallelism. Resource-intensive tasks are delegated to the computing layer, Stratum, which uses Stratum Functions packaged in Docker images.
VES uses multiple Stratum Functions for different codec formats to enable independent releases and encoder upgrades. The platform provides abstractions for media access patterns, simplifying Stratum Function code.
Resource requirements are determined through benchmarking, and "container shaping" allocates resources based on codec format and resolution. Continuous release is enabled through automated release pipelines and extensive testing.
Production metrics and logs are used for monitoring and alerting, including automatic service rollback if metrics deviate significantly. Lessons learned from building VES have guided subsequent design choices in the team's microservice development.
netflixtechblog.com
netflixtechblog.com
Create attached notes ...
