Simplifying Media Innovation at Netflix with Archer

Netflix Technology Blog
9 min readadvanced
--
View Original

Overview

The article discusses Archer, a platform developed by Netflix to simplify media processing and innovation. It highlights how Archer allows developers to focus on algorithm development without the complexities of cloud infrastructure and resource management.

What You'll Learn

1

How to use Archer to streamline media processing tasks

2

Why container-based environments enhance application portability

3

When to implement MapReduce functions in media processing

Prerequisites & Requirements

  • Understanding of distributed computing concepts
  • Familiarity with Docker and containerization(optional)

Key Questions Answered

What is Archer and how does it simplify media processing at Netflix?
Archer is a MapReduce style platform designed for media processing that abstracts away complexities like cloud infrastructure and resource management. It allows developers to focus on writing media processing algorithms by handling tasks like video frame management and resource scaling automatically.
How does Archer handle media formats and processing tasks?
Archer is built specifically for media processing and treats common media formats, such as ProRes, as first-class objects. It provides built-in functions for tasks like splitting video into shots and allows users to implement their own processing algorithms in any programming language.
What are the main components of the Archer architecture?
Archer's architecture includes a REST API for job requests, a workflow engine that manages MapReduce tasks, and a queue-aware scaler that dynamically allocates resources to ensure efficient processing of media jobs.
What innovative applications have been built using Archer?
Applications built on Archer include a dead pixel detector for cameras, a machine learning app for audio tagging, and automated quality control for subtitles. These innovations leverage Archer's capabilities to process large volumes of media efficiently.

Key Statistics & Figures

CPU hours leveraged by users
tens of millions
This statistic highlights the scale at which Archer is used for processing media applications at Netflix.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Containerization
Docker
Used for packaging applications with their OS-level dependencies, allowing for consistent deployment across environments.
Container Management
Titus
Netflix's container management platform used to run Archer applications at scale.

Key Actionable Insights

1
Utilize Archer's built-in functions to accelerate media processing tasks.
By leveraging the pre-built capabilities of Archer, developers can save time and focus on algorithm development rather than reinventing the wheel for common media processing tasks.
2
Adopt a container-based approach for application development to ensure consistency across environments.
Using Docker containers allows developers to create applications that can run seamlessly both locally and in the cloud, reducing the friction associated with environment discrepancies.
3
Implement MapReduce functions to efficiently handle large-scale media processing jobs.
Understanding how to break down tasks into split, map, and collect functions can greatly enhance the performance and scalability of media processing applications.

Common Pitfalls

1
Failing to properly manage dependencies in a containerized environment can lead to inconsistencies.
This often occurs when developers do not specify their OS-level dependencies correctly in Docker images, which can cause applications to behave differently in production compared to local development.

Related Concepts

Distributed Computing
Media Processing Frameworks
Containerization Best Practices