cloud Presentation
cloud Presentation
IUG
Understanding
System Design of
Netflix: Backend
Architecture and
Cloud Services
Team Members
Open Connect :-
Open connect or Netflix cdn(Content Delivery Network) is a
network of distributed servers spread across different
geographical locations. Different replicas of files of the same
movies are transferred to each and every open connect server.
Open connect is mainly responsible for video streaming in
Netflix. When you hit the play button, video is served to you
from the nearest open connect server which leads to faster and
better experience. It also increases the scalability of the whole
system. These servers are called open connect appliances(OCA).
Netflix cdn(Content Delivery
AWS:- Netflix uses AWS for almost everything except
video streaming. That includes online storage,
recommendation engine, video transcoding, databases,
and analytics.
Tier 1:- request from ELB first reaches this tier which is responsible
for balancing load in different zones. DNS based round robin
● ELB forwards this request to an API gateway. Netflix uses
ZUUL as its API gateway which runs on AWS EC2
instances. ZUUL is a library developed and used by
Netflix for dynamic routing, monitoring and security.
ZUUL provides routing based on query parameters, URL
and path.
● ZUUL is the front door for all requests from devices and
websites to the backend of the Netflix streaming
● Netflix architecture has a complex distributed structure. Besides having
many advantages , there are some dependencies too . For example, one
server working can be dependent upon output of another server.
Dependencies among these servers can create latency and can also lead to
a single point of failure if one of the servers stopped working.
● For the above problem Netflix uses the hystrix . Hystrix is a very powerful
library developed by Netflix that isolates every microservice from one
another to minimize the number of failures. Hystrix does this by isolating
points of access between the services. Hystrix is used for fail fast and rapidly
recovery, near real-time monitoring, alerting, and operational control, reduce
latency and failure from dependencies accessed (typically over the network)
via third-party client libraries, stop cascading failures in a complex
distributed system.
● User activities and history data is sent to stream processing pipeline which is
used to give movie recommendations later
● This data is also sent to big data processing tools like AWS, Hadoop ,
Netflix Database:-
1. MySQL
2. Cassandra
MySQL:-
For data like billing information, user information, and transaction
information Netflix uses MySQL because it needs ACID compliance.
Netflix has a master-master setup for MySQL and it is deployed on
Amazon large EC2 instances.
Netflix has set up the read replica for each and every node (local, as
well as cross-region). This ensures high availability and scalability.
Cassandra:-
Netflix uses Cassandra for its scalability and lack of single points of
failure and for cross-regional deployments. In effect, a single global
Cassandra cluster can simultaneously service applications and
asynchronously replicate data across multiple geographic locations.
Netflix uses Apache Kafka for its eventing, messaging and stream
processing needs.
Apache Kafka works on a publish/subscribe model. services in Netflix
publish their changes as events into a message bus, which are then
consumed by another service of interest that needs to adjust its state
of the world.
● https://medium.com/@nidhiupreti99/understanding-system-design-of-
netflix-backend-architecture-and-cloud-services-b077162e45bc
● https://aws.amazon.com/solutions/case-studies/netflix/
● https://dev.to/gbengelebs/netflix-system-design-backend-architecture-10i
3
● https://www.youtube.com/watch?v=DxSdSmzXIsU