Introduction to Netflix and its cloud computing technology
Netflix are an entertainment service company in the United States of America, providing Online Video streaming and Video-on-demand services, established in 1997, and located in Los Gatos, California. They were initially a DVD distributor. Their sale form was delivering DVDs to customers via email (DVD Emailing). On 25 February 2007, the Netflix distributed the 1,000,000,000th DVD. Also, in that year, the Netflix reinvented their entire business. Although their successful DVD emailing, they also found that it would be supplanted by video streaming over the internet sooner or later; therefore, they decided to make an innovation.
Exactly one year before the Netflix intended to reinvent, in 2006, in other place Amazon, an eCommerce company, declared their big project, not related to the field traded by them, which was "cloud computing". They used a lot of money to invest in the server infrastructure and hired it as services.
The service that is later named Amazon S3 (Amazon Simple Storage Service) allows users to save their data in cloud servers and access anytime and anywhere.
The Netflix found that the Amazon was the partner that they needed. Instead of investing a lot of money in servers and storage machines, they used the Amazon's infrastructure. At that time, transmitting vast data such as video over the Internet was still something not secured surely for many reasons, including bandwidth quality; therefore, servers were needed locating near the regions, where many customers used the service, while the Amazon was investing in a lot of server regions across the United States of America.
Currently, the Netflix are the largest online film watching and video-on-demand service company in the world. In October, 2017 the Netflix had 109.25 million subscribers across the world, including 52.77 million in the United States. They appears in 40 countries and are trespassing in 130 other countries.
After officially using the Amazon's services, the Netflix started to become a software technology pioneer for cloud computing, doing the things that no one had done before. Most of their things ran on the Amazon Web Service (AWS), which was essentially a server infrastructure. At that time, the AWS did not really care about the software components. No one did; therefore, they had to invent a necessary software technology so that their applications worked well in the cloud environment.
Interestingly, cloud-based software technologies did not come from traditional IT companies that you are probably thinking of such as Oracle, Microsoft, IBM, or other companies, but they were invented by the companies actually working, including Netflix, Amazone, and then Facebook.
Most the Netflix's resources are implemented on the Amazon Web Service (AWS). Below is their system architecture image.
The API system of the Netflix is developed in many years and almost performed on the AWS.
As a developer, you are sure to ask a question that what they have done for the community developing cloud applications.
The Netflix decided that many of their innovations are useful systems and their general purposes may be different ones. Therefore, they have decided to open source this technology to allow other people to be able to reach it. Surely, the technologies that are directly related to Video Streaming are still kept secret, while general technologies are opened.
Immediately after the Netflix open source their technology, which is promptly paid attention to by the development group of the Spring, that are always forward. They study Netflix OSS (Netflix Open Source Software) at once in order to evaluate whether it should be invented or not and find that it is very good and needs making any progress.
However, something needs to be done to make it easier for consumers (developers), because the Netflix OSS is anyway a product developed for the Netflix's own purposes; therefore, the Spring development group has focuses on making it easier for programmers to use the Netflix's libraries. In many cases, all such necessary things are added dependencies and annotations.