Hardly anybody remains indifferent about the phenomenon of Netflix. This giant of the entertainment industry focuses on providing live and on demand video streaming, DVD rental services, and film production. As the world’s main Internet television network, it is available in more than 190 countries and has more than 83 million subscribers, who receive around 10 billion hours of media content from Netflix every month. Furthermore, Netflix is claimed to be the biggest provider of downstream traffic in North America, according to the report conducted by Sandvine in 2013. All these facts make other companies interested in constant improvements of Netflix and keep track of the technologies it uses.
Netflix often uses open source technologies. Its high priority lies in providing great video streaming solutions for every user who has an appropriate Internet connection. As far as the main aspect of corporate workflow at Netflix is reliability, they constantly work on improving and implementing new technologies for media data streaming. Besides, they devote a lot of attention to the big data analytics which vividly demonstrates the ways for improvement. In order to deal with the amount of data which constantly increases, growing demand for analytics, more and more users Netflix needs a scalable platform and technology stack that won’t let down. Let’s see what technology stack is the basis for Netflix’s success.
Application and Data
To begin with, let’s review the programming languages which are mainly used at Netflix. On the backend, they use Java and Python and JavaScript – on the front-end. As for the frameworks, they prefer Node.js.
Front-end
Except for Node.js, React and RxJS are actively used by Netflix engineers with the aim of building variable client applications suitable for different devices. Their final goal remains to provide an impeccable experience that will satisfy their customers and amuse with flawless performance. This goal encourages Netflix in constant improving its product and developing its own technologies. They also use Falcor – a JavaScript library developed by Netflix in order to achieve productive data fetching. Falcor enables representation of all remote sources of data as a domain pattern by means of a graph. Besides, Netflix assists in the implementations of Restify for scaling Node.js apps with total monitoring. Netflix’s contribution into building an improved version of RxJS should be also taken into account.
Databases
The databases used at Netflix are MySQL, PostgreSQL, Cassandra, Oracle. As for database tools, the preferable one is Atlas-DB. This tool was created by Netflix for the purpose of controlling dimensional time series of data. Atlas has in-memory data storage which enables the tool to collect and report on a huge amount of aspects in the shortest time possible. Netflix widely uses Amazon services such as Amazon RDS and Amazon DynamoDB.
Netflix on Amazon
As far as Netflix has already completed its migration to the cloud, now many of its servers and petabytes of data are on Amazon. Amazon EC2 is used as cloud hosting for the infrastructure of Netflix and Amazon S3 – as cloud storage. The company even manages its CDN from Amazon. Despite the fact that storage boxes with videos for streaming are still kept in ISPs’ data centers, the data and the applications necessary for managing customers’ activities, related to streaming, perform in the cloud.
Big Data Tools
Data is a priceless thing which makes services provided by Netflix upscale for its customers. Obviously, they strive for using the most efficient tools in order to make the most of the big data. For this purpose, such open source technologies as Hadoop, Parquet, Pig, Presto, Spark and many others are often used at Netflix. Furthermore, they’ve implemented a set of extra tools and services which aim at improving their data platform. For example, Genie is an engine created by Netflix for providing RESTful APIs to execute different big data jobs and to manage the variety of cluster configurations as well as commands and apps which are based on them. To some extent, it even resembles Hadoop, Hive, Pig etc. Another tool which is actively used at Netflix is Inviso, which enables search for Hadoop jobs, monitoring their performance and cluster usage. They also use Lipstick aimed at clear displaying of Pig workflow and information regarding the jobs execution.
Streaming technologies
Anyway, the most intriguing part of Netflix implementations belongs to streaming technologies, as the amount of media data this company streams is impressive. Obviously, it makes average users wonder how all that movies have got into their screens. One of the keys to efficient video streaming provided by Netflix is Open Connect. Open Connect, Netflix’s own CDN, stores servers that cache media content near to the location where it will be used. By means of the local caching, bandwidth costs are reduced considerably and it is easier to spread the service over a large area. Moreover, Netflix has personal storage hardware specially designed for video streaming. They use two kinds of a server: the first one stores data on hard disk drives and the second one – on flash drives. The common feature of those servers is that they are adapted to low power and high-density usage. In most cases, they are based on open source software: Nginx server, FreeBSD operating system, Bird routing software. Annually, Netflix’s hardware is upgraded with most recent drives and low powered processors. As far as Netflix’s media content library exceeds petabyte, during quiet hours the servers are filled with the content that will be presumably in-demand in prime time. In such a way, it reduces the bandwidth use in peak time. While using its own CDN, Netflix has many advantages. First of all, it ensures total control of the network and provides more options for system optimization. Furthermore, it deals with efficient mapping in the system, which is crucial for defining a perfect location for streaming each part of video content. Besides, by means of its CDN Netflix has a direct connection with Internet service providers.
For the purpose of providing the best streaming experience, Netflix uses adaptive bitrate streaming technologies, which implies dealing with a big number of codec and bitrate patterns. By means of these technologies, a user’s video client application is able to adjust the quality of a stream according to available bandwidth speed. In such a way customers can enjoy the top-quality video without any playback pauses. Apart from that, users can also select a preferable video quality on Netflix website. Netflix is well optimized so you can watch it on the variety of devices connected to the Internet. They might include smart TVs, which have Netflix installed by default, DVD and Blu-ray players, home theater systems, set-top boxes, consoles, smartphones, tablets and finally PCs or laptops.
Want your business to be as successful as Netflix? Consider integrating video streaming technologies into your business and contact us today!
Very informative article thanks for your contribution.