Modernizing the Netflix TV UI Deployment Process

Motivation

First of all, what is an ESN?

Illustration of 2 TVs — each has a unique ESN

How do ESN-based canaries work?

Example Device buckets

Problems with ESN-based canaries

Example resulting device bucket after hashing algorithm is applied to ESN
Legacy TV UI deployment workflow

The Journey

What is Murphy?

Murphy Framework

How do we leverage Murphy?

Interactions between Murphy Plugins and Murphy TVUI Action Server
Sample Murphy plugin handler request and response

Deployment Workflow Improvements

Sample Deployment Rollout Slack Message
Sample Deployment Slack Thread

What about A/B-test-based canaries?

ACA report showed canary build had an elevated Javascript Exception count than the baseline
ACA report showed canary build had an elevated App Memory usage than the baseline

The Future

--

--

--

Learn more about how Netflix designs, builds, and operates our systems and engineering organizations

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Scaling Time Series Data Storage — Part I

InfluxDB: The Good, the Bad, and the Ugly

TiDB Operator: Your TiDB Operations Expert in Kubernetes

Converting your Android App to Jetpack

A non-semantics-preserving LLVM pass for KLEE symbolic execution

How to Use launchd to Run Services in macOS

Migrating a Retrofit-Based Android App to the Apollo SDK

Photo of a distant airplane flying in a dusky sky

A Journey from Software to Machine Learning Engineer at iZettle

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Netflix Technology Blog

Netflix Technology Blog

Learn more about how Netflix designs, builds, and operates our systems and engineering organizations

More from Medium

Fixing Performance Regressions Before they Happen

Retrieve performance metrics from public API

A day selling lechugas (as backend engineer)

Design Patterns and Principles That Support Large Scale Systems