In Southeast Asia alone, Netflix has over 14.5 million subscribers by the year of 2020. Can you imagine how much bigger the number is when we take into account their total subscribers worldwide?
How does Netflix maintain the quality of their service by providing high quality videos at minimal buffer time? How do they maintain consistency in giving their users the best user experience regardless of their geographic coordinates?
Let’s put it under a microscope.
First things first, as you may or may not have noticed already, Netflix doesn't rely on one-size-fits-all ratings from IMDb or Rotten Tomatoes. Instead, they focus on personalization for users.
To provide the best user experience, it is essential to understand that every user is different. Netflix builds its algorithm around your viewing history and ratings. To suit your preferences, It detects patterns in your activity and makes recommendations accordingly.
Netflix connects your preferences with other Netflix users. Collaborative filtering functions with the assumption that if two users have similar ratings on a number of shows and movies, they behave similarly.
How does this play out on the app? When you rate a movie highly, Netflix recommends that movie to other users who share similar preferences with you.
Unlike CF, Content Based Filtering (CB) isn’t based on data from other users, but the type of content users have shown interest in. The algorithm captures a user’s specific interests by detecting keywords used to describe the content they interact with.
For example, if a user completes a season of a spanish telenovela, Netflix will recommend other available spanish series. Or, if a user watches a horror film, Netflix will (you guessed it) recommend more of that genre.
User profiling is the process of collecting relevant data about the user — from a user’s geographical location and interests to behavioural statistical data like their active time on the app, time spent watching a movie, device, etc.
Taking the user’s information into account, Netflix suggests content that is compatible with the user profile.
More about personalization — not sure if you’ve noticed before, but there’s a high chance that the headers you see on your account differs from another person’s.
Netflix shows you cover images that would most likely catch your interest. As mentioned before, there are many factors that go into this algorithm. If your activity shows that you’ve frequented action movies, chances are, Netflix is going to show you cover images of high-action blockbusters.
If you’re subscribed, you probably know about Netflix Originals. It’s a no-brainer that Netflix would have full rights over Netflix Originals, but what about TV shows and movies that aren’t produced by Netflix?
To obtain broadcast rights for content from across the world, there are a few steps Netflix needs to take. First, Netflix would need to source the companies responsible for handling the distribution of a particular content. Oftentimes, a company might have signed a deal with different video services or TV channels at a specific location. When this happens, it’s one of two things — either Netflix won’t be able to obtain rights for the show, or they could, but on a different date.
Production houses and studios provide Netflix with high-quality cinema videos, which need to be processed before being made available to viewers on different devices. Considering that Netflix supports up to 2200 devices to this date, they need to take into account the varying video formats each device needs. How is this done?
This is where the magic of AWS servers come into play, by converting the original video into numbers of different formats and resolutions to support different screen sizes and devices.
Transcoding is a process by which Netflix breaks down the video into blocks, which with the help of AWS servers, will be converted into different formats across different resolutions like 4k, 1080p and etc. All these copies are then stored on Amazon S3. At the end of the day, one file will work exclusively on an iPhone, one on a Sony TV with Dolby sound, one on an Android tablet, and so on.
Interestingly, these files are also made with varying video qualities to suit different qualities of network connection. Netflix analyzes the quality and stability of a user’s internet connection and serves content accordingly, to ensure a smooth buffer regardless of network strength.
To prevent any piracy issues, a technological measure known as digital rights management is implemented, whereby a special code is added into these files to lock them from any possibilities of piracy. That’s why when you try to screenshot a movie you’re watching, you get an image of a black screen.
Monolithic architecture is a model by which all codes and services are run by one application. Using this architecture runs the risk of having to rewrite every other part of the application’s code if one part of it is changed, shutting the entire app down. This could destroy the experience for Netflix’s users.
To change the game, Netflix built a revolutionary architecture known as microservices. In contrast to monolithic, this architecture structures the application as a collection of services. This means that each application or microservices’ code and resources are its very own.
By part of which two applications need to interact with each other, they will use an Application Programming Interface (API) — a software intermediary that allows two applications to “talk” to each other. This way, developers can make changes to the application with ease.
There are an estimated amount of 700 microservices used by Netflix — one for storing the content you watch, one for deducting monthly fees from credit cards, and other miscellaneous services.
To conclude, microservices architecture is built around business logic and enables flexibility for different needs. If one learns that a system is facing a bottleneck, it can efficiently be altered for scaling and optimization without changing the resources configuration for other services.
With this huge number of microservices that stores hundreds and thousands of videos, Netflix needs reliable and scalable cloud networks and servers that would let them handle everything to their leverage. With the help of AWS EC2 and S3, Netflix can rapidly improve their services and keep the site stable.
First, let’s try to understand how the internet works.
When you visit a site that requires net access, a request is sent to your internet service provider, which is also known as ISP. This ISP will then forward the request to the dedicated servers that handle the particular website that you’re trying to access. Upon receiving the request, the server provides a response which is navigated back to your computer, enabling your access to the site.
For a high-volume site like Netflix, a much larger network of servers is needed to maintain its performance. This is made possible with Content Delivery Network (CDN).
Content Delivery Network is mostly used by giant media websites, like Facebook and Youtube. With CDN, the idea is to place servers as close as possible to users and optimize the network for speed and reliability.
For Netflix, CDN takes the original website and its content, and copies it across hundreds of servers all around the world. This increases speed as it reduces the gap between a request and a response, making loading content really fast regardless of where you are in the world.
With a rapidly growing user base, Netflix needed an alternative that will help in reducing cost while increasing quality and scalability. So they made a custom CDN, Open Connect, which is like a fast server assembled from numbers of hard disks and flash drives for storing videos.
Netflix places their open connect boxes with the data centres of ISPs all around the world. They struck a deal with these ISPs and in turn, provided them the fast server at no cost. It’s a win-win situation. ISPs get to install these along with their servers where they can download all of Netflix libraries for their region from the main servers in the United States.
In literal terms, they are like hard drives located around the world that store videos from Netflix. This way, Netflix gets all the benefits of a data centre without having the need to manage them. This strategy is (among other factors) what enables Netflix users to load content fast, as ISPs are located close to them.
ISPs can submit a request to improve their customer’s experience on Netflix through localizing Netflix traffic, by joining The Netflix Open Connect Program.
For media companies, having a media strategy that is consistently and constantly improving is essential. Be it in scaling, digitalization, or automation, Snappymob has experience boosting companies in the media industry like 988 FM, BFM Radio, Suria FM.
Let us take you higher in the digital atmosphere. Feel free to contact us to discuss your growth opportunities!
Snappymob is a passionate web and mobile app developer based in Kuala Lumpur, Malaysia. We have designed and developed awesome web and mobile applications for industries and companies around the globe.
We love our craft — the design, development, and the business of apps and this blog is our outlet for discussing what we think and sharing what we know with our community.