Conference:March 6-8, 2017
Workshops:March 9-10, 2017
Presentation: Scaling Facebook Live Videos to a Billion Users
Location:
- Fleming, 3rd flr.
Duration
Day of week:
- Tuesday
Level:
- Intermediate
Persona:
- Architect
Key Takeaways
- Understand how Facebook was able to go from prototype to a worldwide deployment of Live in four months.
- Learn considerations for architecting large systems that have high degrees of unpredictability and elasticity needs.
- Hear strategies to deal with bad connectivity and thundering herds that are common in systems like Facebook Live.
Abstract
Facebook Live is a live streaming platform available to all Facebook users (1 billion daily active people) from Facebook apps as well as an API. It enables citizen journalism, makes it easy to share everyday moments with your friends and allows celebrities to interact with their fans directly. Facebook Live has seen a tremendous growth in usage since being launched to the public.
Building a successful Live streaming platform requires live streams to have low latency and high quality. Broadcasting and viewing live streams has to work on a wide variety of devices across varying network capabilities. Interactivity during live streams is a key part of the overall experience. In this talk, we will talk about why Live matters, how Facebook Live was architected for these requirements and how it is setup to be flexible in adding features like multi-person live streaming.
Interview
I’m currently working on the backend for Facebook Live, Facebook Video, and Facebook Messenger. Most recently. I’ve been spending a lot of time on scaling the Facebook Live stack. Facebook Live let’s anybody broadcast across the world using just the camera in their pocket. What this means (in real terms) is the backend has to be able to scale to support billions of users, with little predictability. The scale we’re dealing with just keeps on increasing. So that’s really been my primary focus.
Ya, so Facebook has 1.23 Billion daily active people. So the viewing of live streams has to be able to scale to all those users.
I will answer questions like:
- What is Facebook Live?
- How did it come about?
- Why it is important?
- How did we architect it?
- What were some of the interesting challenges we had to solve?
- What's new with Facebook LIve
There will be things like where did we start, and how did we reach where we are. I’ll also focus on some of the interesting problems we had to solve along the way, and how we are planning for changes in the future. I will start at a high-level then drop into the guts of the infrastructure powering Facebook Live.
We divide the Facebook Live part into three aggregate components. The first one is the ingestion. This is where the broadcast stream comes into Facebook. Second is the server-side processing (or encoding). Finally, the third one is being able to send this out to billions of devices so people can start seeing the stream.
The problems in each of the these are fairly different. For example, on the ingestion side a huge problem we have to address is the network connectivity on the client’s phone. So if I’m trying to go live from a village in India, I likely don’t have enough connectivity. So how do we adjust the quality to the point we send the highest possible quality stream out. That becomes an interesting problem. Another example is on the other side (the distribution side) when we send the stream out to the CDN. Here there is a very real possibility of thundering herds. It is hard to figure out which stream is going to become viral. So we can’t really prepare for it ahead of time. It’s a spontaneous medium. These are a couple of examples of problems I will discuss.
I think that architects and tech leads will find the talk very interesting. Also I will talk about how we went from a prototype to a full production ready system launched to the entire world in four months. So people like leadership and program managers will also be interested in how we pulled that off. This portion will also give some insight into Facebook culture.
Similar Talks
Tracks
-
Architecting for Failure
Building fault tolerate systems that are truly resilient
-
Architectures You've Always Wondered about
QCon classic track. You know the names. Hear their lessons and challenges.
-
Modern Distributed Architectures
Migrating, deploying, and realizing modern cloud architecture.
-
Fast & Furious: Ad Serving, Finance, & Performance
Learn some of the tips and technicals of high speed, low latency systems in Ad Serving and Finance
-
Java - Performance, Patterns and Predictions
Skills embracing the evolution of Java (multi-core, cloud, modularity) and reenforcing core platform fundamentals (performance, concurrency, ubiquity).
-
Performance Mythbusting
Performance myths that need busting and the tools & techniques to get there
-
Dark Code: The Legacy/Tech Debt Dilemma
How do you evolve your code and modernize your architecture when you're stuck with part legacy code and technical debt? Lessons from the trenches.
-
Modern Learning Systems
Real world use of the latest machine learning technologies in production environments
-
Practical Cryptography & Blockchains: Beyond the Hype
Looking past the hype of blockchain technologies, alternate title: Weaselfree Cryptography & Blockchain
-
Applied JavaScript - Atomic Applications and APIs
Angular, React, Electron, Node: The hottest trends and techniques in the JavaScript space
-
Containers - State Of The Art
What is the state of the art, what's next, & other interesting questions on containers.
-
Observability Done Right: Automating Insight & Software Telemetry
Tools, practices, and methods to know what your system is doing
-
Data Engineering : Where the Rubber meets the Road in Data Science
Science does not imply engineering. Engineering tools and techniques for Data Scientists
-
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
-
Workhorse Languages, Not Called Java
Workhorse languages not called Java.
-
Security: Lessons Learned From Being Pwned
How Attackers Think. Penetration testing techniques, exploits, toolsets, and skills of software hackers
-
Engineering Culture @{{cool_company}}
Culture, Organization Structure, Modern Agile War Stories
-
Softskills: Essential Skills for Developers
Skills for the developer in the workplace