Millions of users worldwide enjoy Netflix on over 1,000 types of devices, and Netflix’s goal is to provide the best possible entertainment experience to each and every one of them. One of the ways Netflix does this is by allowing device client application developers to customize the API that client applications call into. This API is based on a dynamic scripting platform that provides a FaaS or serverless-like experience for client developers to develop and operate custom route handler functions (or endpoints) for Netflix device applications.
Netflix has seen tremendous growth in its subscriber base, levels of user engagement, and the size of its engineering teams since this system went live a few years ago. This growth has challenged some of the assumptions built into the original architecture, imposed new requirements on it, and exposed some areas that were not given adequate consideration in the beginning (for instance, how to allow reuse of shared code, how to make deployment SLAs predictable, what to do if a group of functions needs to be updated atomically, and how to provide built-in support for canary testing). Many of these requirements are relevant to serverless architectures as well, and commercial offerings will need to provide robust solutions for them if they are to succeed at their goals of improving the developer experience and minimizing operational concerns.
Sangeeta Narayanan shares lessons learned operating and scaling the platform over the years and Netflix’s approaches to some of the challenges it faced and explains how they are influencing the next generation of the system.
Sangeeta Narayanan leads the Edge Developer Experience team at Netflix, which focuses on creating solutions that increase development velocity and provide operational insight into system health and behavior. Sangeeta has held various roles in her career in fields such as test engineering, sales engineering, and engineering management. Throughout all those experiences, the common theme has been her passion for simplifying the process of developing and operating software.
©2017, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org