Netflix started out as a mail-order DVD rental company running on Oracle systems in the 1990s. Now this nearly 20-year-old company has transformed itself into one of the most admired companies, one that leverages its own user-generated data to create more value. It has shifted from primarily using the US Postal Service to deliver discs to streaming entertainment over the internet.
That's probably why this much admired company attracted a standing-room crowd during September's Strata + Hadoop event in New York. Netflix Director, Data Platform, Kurt Brown, provided an inside view during the session of the company's data operations, technologies, and ongoing plans to evolve.
Brown told the audience that the Netflix Data Platform is a large-scale infrastructure storing what's now about 60 petabytes of data in the Amazon Web Service cloud. That large volume of data is not just about the growth of Netflix, according to Brown. The company retains more data with a purpose in mind.
"We want more data for more rich analysis so we can improve the experience for our users," he said.
AWS and S3
To do that, Netflix has put AWS's S3 at the middle of its data infrastructure as the "central source of truth." Brown said that Netflix performs all the ETL up-front and loads the results into S3. Then, all the other systems that the company's internal analysts use -- Teradata, Redshift, Druid, and others -- get fed from the S3 source of central truth.
"Some people call it a data lake, but it's more reasoned than that," Brown said. "You put your business logic in before you store the data in S3."
Yet, at 60 petabytes of data, Netflix is running into a scalability issue with its S3 store. To help alleviate this issue, Netflix has created an S3 deletion service, designed to delete data in a manageable, paced-out way, that lets the company track who owns the data and who actually deleted data. The service also provides for a way to recover data that is mistakenly deleted.
"Each of those systems [is] very different," Brown said. But sometimes Netflix wants to add to metadata, for example, indicating the owner or capturing partition information, and then allow all the metadata across various data stores to be searched, without loading everything into a single system. That's what Metacat is designed to do.
Netflix continues to build onto this tool and is currently developing canonical data types -- a common set of data types that is independent of any data store.
Big Data Portal
Netflix's data platform team developed a query interface they call Big Data Portal that can hit Redshift, Teradata, and the company's other data warehouse platforms.
"This was the first thing we did to get people interested," Brown said. As time went on, Brown's team continued to layer more richness into the interface. For instance, now the interface gives users a view into data dependencies dependencies, providing a way to see all the jobs downstream and upstream. Users can subscribe to auto notifications.
[Amazon's cloud is just 10 years old, but what a difference those years have made. Read Amazon Cloud Turns 10: How It's Changed.]
"We started small, and this became a place that people wanted to go," Brown said. "Because we keep making it better, people keep wanting to go to it."
Future features will provide data workers with a way to analyze jobs and clusters.
For instance, they'll be able to ask, "What are the most expensive jobs on the cluster, so I can figure out whether to optimize them or not?" Brown said. "They'll be able to show all the jobs and sort by cost." Developers may also be able to use this feature to analyze why a job is running slowly. The system will provide visibility on whether someone else just added a huge job to a cluster or whether the user's own data volume had increased significantly.
Netflix has been a user of Apache Pig, but started using Apache Spark a few years ago, according to Brown, who said it was "more like a toy, then. But over the last year or two, it's pretty obvious that Spark is a strong engine." So the company has been going through a slow, steady, and non-mandatory transition from Pig to Spark.
Pig still offers benefits that Spark doesn't, according to Brown. For instance, it's a lot more stable. But Spark offers significantly more innovation and a big community.
Currently about one-fifth of production jobs are running on Spark and the rest are Hive or Pig for ETL, Brown said.
Brown recommends the hands-off approach he has taken to the transition.
"Don't push people," he said. "If it's not 100% ready, don't make them go there. They will just resent you for it. Let the early adopters do it."
Netflix has also added Notebooks to the services provided to the company's data users, specifically Jupyter Notebook.
"It's been a super powerful concept. Just a few lines of code and I've created a visualization," Brown said.
Notebooks are useful because they fit a spot in the ecosystem that didn't exist a few years ago -- creating visualizations that include documentation, according to Brown.
"They let people collaborate better," he said.