Netlfix is a big company, and a big cloud user. With 38 million members across 40 countries, it streams a billion hours of content per month.
Almost all of the Netflix's customer-facing services like a massive database that creates personalized content recommendations based on prior viewing history are run in Amazon Web Service's public cloud.
[ Stay on top of the cloud with the "Cloud Computing Deep Dive" special report. Download it today! | From Amazon to Windows Azure, see how the elite 8 public clouds compare in InfoWorld's review. | For a quick, smart take on the news you'll be talking about, check out InfoWorld TechBrief -- subscribe today. ]
The company has a content-delivery platform named Open Connect that it manages with partnering ISPs to actually stream movies to users.
As one of the biggest cloud users in the world, the company has gleaned lessons from its operations. Below are three takeaways of how the company approaches using the cloud from Ariel Tseitlin, director of cloud solutions for Netflix, who spoke at the Massachusetts Technology Leadership's Cloud Summit on Tuesday.
1. Create micro-services
One Netflix goal is to create the smallest level of abstraction as possible for each application to minimize the effect of any downtime or service failure in the cloud. If this is done successfully, it drastically reduces the "blast radius" of any cloud outage, says Tseitlin, who's responsible for building out the company's cloud and ensuring its reliability.
For example, if Netflix's personalization service goes down, then the company defaults to a more generic recommended movies list that will suggest the most popular titles, but not necessarily those personalized to the user. That minimizes the snowball effect of one service bringing down others.
2. Build in redundancy
It's one thing to have functionality of applications and services deployed to the cloud at granular levels, it's another to scale it and ensure it works all the time. That's why Netflix has horizontally scaled its service across the globe. Each service is deployed to at least three Availability Zones (AZ), which are isolated locations within Amazon's cloud. AWS recommends deploying to at least two AZs for its service-level agreement (SLA) to kick in. Not only are Netflix services deployed to three AZs, but they are each scaled independently so that if an AZ fails then load balancers migrate traffic to the healthy AZ.
In addition to scaling to multiple AZs, the entire Netflix service is replicated across two regions within Amazon's cloud both U.S. East and EU West and replicated asynchronously. The idea is that if an entire region in Amazon's cloud were to fail then the service would still be available.