This presentation was from QCon SF 2011. In these slides I discuss various techniques that we use to scale the API. I also discuss in more detail our effort around redesigning the API.
APIs for Internal Audiences - Netflix - App Dev ConferenceDaniel Jacobson
API programs, typically thought of as a public program to see what public developer communities can build with a company's data, are becoming more and more critical to the success of mobile and device strategies. This presentation takes a look at Netflix's and NPR's strategies that lead to tremendous growth and discusses how Netflix plans to take this internal API strategy to the next level.
Revolutions have a common pattern in technology and this is no different for the API space. This presentation discusses that pattern and goes through various API revolutions. It also uses Netflix as an example of how some revolutions evolved and where things may be headed.
The term "scale" for engineering often is used to discuss systems and their ability to grow with the needs of its users. This is clearly an important aspect of scaling, but there are many other areas in which an engineering organization needs to scale to be successful in the long term. This presentation discusses some of those other areas and details how Netflix (and specifically the API team) addresses them.
The Netflix API was originally launched 3 years ago to expose Netflix metadata and services to developers and build applications. It now handles over 1 billion requests per day from over 20,000 developers and 13,000 applications. However, Netflix has undergone many business changes and the API needs to be redesigned to focus on its core streaming business and support international growth. The new design will build a scalable data distribution pipeline to deliver customized, optimized metadata and services to each streaming client and platform. It will use wrappers and response handlers to customize the response for each device and isolate problems. This will allow faster development and reduce the need for versioning across many client types and interfaces.
Set Your Content Free! : Case Studies from Netflix and NPRDaniel Jacobson
Last Friday (February 8th), I spoke at the Intelligent Content Conference 2013. When Scott Abel (aka The Content Wrangler) first contacted me to speak at the event, he asked me to speak about my content management and distribution experiences from both NPR and Netflix. The two experiences seemed to him to be an interesting blend for the conference. These are the slides from that presentation.
I have applied comments to every slide in this presentation to include the context that I otherwise provided verbally during the talk.
Netflix API: Keynote at Disney Tech ConferenceDaniel Jacobson
This document discusses the evolution of Netflix's API architecture over time. It begins by explaining Netflix's initial "one-size-fits-all" REST API model and how requests grew exponentially as more devices were supported. This led Netflix to move away from resource-based APIs to experience-based APIs tailored for specific devices and use cases. Key aspects of the new design included reducing "chattiness", handling variability across devices, and supporting innovation at different rates. The document also discusses Netflix's approach to versioning APIs and making them more resilient through techniques like circuit breakers and fallbacks.
The term "scale" for engineering often is used to discuss systems and their ability to grow with the needs of its users. This is clearly an important aspect of scaling, but there are many other areas in which an engineering organization needs to scale to be successful in the long term. This presentation discusses some of those other areas and details how Netflix (and specifically the API team) addresses them.
Maintaining the Netflix Front Door - Presentation at Intuit MeetupDaniel Jacobson
This presentation goes into detail on the key principles behind the Netflix API, including design, resiliency, scaling, and deployment. Among other things, I discuss our migration from our REST API to what we call our Experienced-Based API design. It also shares several of our open source efforts such as Zuul, Scryer, Hystrix, RxJava and the Simian Army.
This is a presentation that I gave to ESPN's Digital Media team about the trajectory of the Netflix API. I also discussed Netflix's device implementation strategy and how it enables rapid development and robust A/B testing.
I gave this presentation to the engineering team at PayPal. This presentation discusses the history and future of the Netflix API. It also goes into API design principles as well as concepts behind system scalability and resiliency.
This is my presentation from the Business of APIs Conference in SF, held by Mashery (http://www.apiconference.com).
This talk talks briefly about the history of the Netflix API, then goes into three main categories of scaling:
1. Using the cloud to scale in size and internationally
2. Using Webkit to scale application development in parallel to the flexibility afforded by the API
3. Redesigning the API to improve performance and to downscale the infrastructure as the system scales
When viewing these slides, please note that they are almost entirely image-based, so I have added notes for each slide to detail the talking points.
Scaling the Netflix API - From Atlassian Dev DenDaniel Jacobson
The term "scale" for engineering often is used to discuss systems and their ability to grow with the needs of its users. This is clearly an important aspect of scaling, but there are many other areas in which an engineering organization needs to scale to be successful in the long term. This presentation discusses some of those other areas and details how Netflix (and specifically the API team) addresses them.
Daniel Jacobson is the Director of Engineering at Netflix API. He discussed techniques for scaling the Netflix API, including moving from a resource-based API to an experience-based API model to improve efficiency. Netflix uses cloud deployment techniques like autoscaling and canary releases for development and testing. Resiliency is ensured through techniques like circuit breakers and fallbacks.
This presentation demonstrates the great successes of the Netflix API to date. After some introspection, however, there is an opportunity to better prepare the API for the future. This presentation also offers a few ideas on how the Netflix API architecture may change over time.
Top 10 Lessons Learned from the Netflix API - OSCON 2014Daniel Jacobson
The document discusses lessons learned from Netflix's API strategy over time. It notes that Netflix started with a focus on growing a community of public developers but now prioritizes ensuring subscribers can stream. It also discusses separating concerns between API providers and consumers, embracing differences in audiences, being pragmatic over dogmatic in API decisions, enabling fast iteration, planning for failures, and scaling infrastructure to match growth.
Most API providers focus on solving all three of the key challenges for APIs: data gathering, data formatting and data delivery. All three of these functions are critical for the success of an API, however, not all should be solved by the API provider. Rather, the API consumers have a strong, vested interest in the formatting and delivery. As a result, API design should be addressed based on the true separation of concerns between the needs of the API provider and the various API consumers.
This presentation goes into the separation of concerns. It also goes into depth in how Netflix has solved for this problem through a very different approach to API design.
This presentation was given at the following API Meetup in SF:
http://www.meetup.com/API-Meetup/events/171255242/
History and Future of the Netflix API - Mashery Evolution of DistributionDaniel Jacobson
Presentation on the history and future of the Netflix API. This presentation walks through how the API was formed, why it needs a redesign and some of the principles that will be applied in the redesign effort.
This presentation was given at the Mashery Evolution of Distribution session in San Francisco on June 2, 2011.
Talk about the Netflix API and how it serves as the front door for Netflix device UIs. Topics include: API design, resiliency patterns, scalability, and enabling fast dev/deploy cycles.
Many API programs get launched without a clear understanding as to WHY the API should exist. Rather, many are focused on WHAT the API consists of and HOW it should be targeted, implemented and leveraged. This presentation focuses on establishing the need for a clear WHY proposition behind the decision. The HOW and then WHAT will follow from that.
This presentation also uses the history of the Netflix API to demonstrate the power, utility and importance of knowing WHY you are building an API.
1. The document discusses running an API at scale and some of the challenges that arise. It notes that running a huge API product is different than running a web product.
2. Managing application developers and the relationships between their apps and users becomes more complex at scale. Techniques like OAuth and caching can help reduce load on APIs and internal systems.
3. As APIs and applications grow, aspects like chatty applications, application versioning, testing, and geo-distributed caching take on increased importance for managing scale and complexity. The key is to continually improve while avoiding getting stuck.
This document discusses trends in API design and when it may be appropriate to deviate from trends. It summarizes Netflix's case study in moving away from a RESTful, one-size-fits-all API and instead implementing device-specific APIs. The document also discusses trends around REST, JSON, OAuth, and API versioning and alternatives that may provide more flexibility depending on a system's needs and clients.
This document discusses trends in APIs to expect in 2012. It predicts that enterprise APIs will go mainstream, with 30% of enterprises implementing APIs and 60% considering them. It also suggests that APIs will become the default access point for backend systems, and that API-centric architecture will focus on integration with apps and developers rather than people or processes. Additionally, it proposes that data will be brokered through APIs using free and paid models, and that enterprises will enable their data through RESTful APIs.
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...CA API Management
This document discusses developer experience (DX) with APIs. It notes that DX is the sum of interactions between a developer and an API owner, as well as the emotive impact of API usage. Effective DX prioritizes usability and the overall experience for developers as users. The document advocates understanding target users and designing APIs with a user experience focus to improve DX.
Migrating Automation Tests to Postman Monitors and ROIPostman
In this presentation I will be covering BetterCloud's approach to creating and finding patterns for complex authentication and identifying key performance and correctness metrics for ensuring API stability. We'll take a deep dive into BetterCloud's cost benefit analysis for migrating automated tests to Postman monitors and go over the challenges and successes faced along the way.
This document discusses API facade patterns and composition specifically. It introduces the composition pattern as a way to establish a single connection and handle authentication, data formatting, etc for multiple backend services from a client. Benefits include fewer network calls, ability to switch services without changing client code, and opportunity for analytics and validation. Some considerations are parallel calls and chatty services.
This document provides an overview of a webinar series on API facades. The webinar series will discuss how API facades can provide a simple interface to complex backend systems over four episodes. Episode 1 will cover the goal of API facades, common problems they address, anti-patterns to avoid, how facades provide a solution, and how to implement them. Using an API facade can help mediate between the ideal API design and existing systems, while providing benefits like adapting to different use cases and keeping pace with developers.
This document summarizes the third episode of the API Facade webinar series on technology. It recaps common API facade patterns and then discusses various technologies that can be used to implement an API facade including DNS, cloud platforms, web servers, API gateways, routing, firewalls, caching, orchestration, transformations, compression, databases, and OAuth providers. It concludes by inviting questions on the discussed topics.
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)Apigee | Google Cloud
This document discusses converting a two-phase API to a single-phase API using an API facade. A two-phase API requires separate prepare and commit calls, which can be complex for clients. An API facade handles this conversion, exposing a single-phase API to clients while still using the existing two-phase backend services. Benefits include reusing backend systems, simplifying the client experience, and managing distributed transactions. Considerations include potential loss of transaction coordination capabilities.
OSCON Data 2011 -- NoSQL @ Netflix, Part 2Sid Anand
The document discusses translating concepts from relational databases to key-value stores. It covers normalizing data to avoid issues like data inconsistencies and loss. While key-value stores don't support relations, transactions, or SQL, the relationships can be composed in the application layer for smaller datasets. Picking the right data for key-value stores involves accessing data primarily by key lookups.
1. Netflix faced database corruption issues in August 2008 which highlighted the need for high availability.
2. Moving to the cloud eliminated accidental complexity around capacity forecasting, obsolete equipment, data center moves, and more. This found agility for developers and the business.
3. Netflix's culture of freedom and responsibility allowed engineering teams ownership over their deployments without single points of control, eliminating unnecessary process.
This is a presentation that I gave to ESPN's Digital Media team about the trajectory of the Netflix API. I also discussed Netflix's device implementation strategy and how it enables rapid development and robust A/B testing.
I gave this presentation to the engineering team at PayPal. This presentation discusses the history and future of the Netflix API. It also goes into API design principles as well as concepts behind system scalability and resiliency.
This is my presentation from the Business of APIs Conference in SF, held by Mashery (http://www.apiconference.com).
This talk talks briefly about the history of the Netflix API, then goes into three main categories of scaling:
1. Using the cloud to scale in size and internationally
2. Using Webkit to scale application development in parallel to the flexibility afforded by the API
3. Redesigning the API to improve performance and to downscale the infrastructure as the system scales
When viewing these slides, please note that they are almost entirely image-based, so I have added notes for each slide to detail the talking points.
Scaling the Netflix API - From Atlassian Dev DenDaniel Jacobson
The term "scale" for engineering often is used to discuss systems and their ability to grow with the needs of its users. This is clearly an important aspect of scaling, but there are many other areas in which an engineering organization needs to scale to be successful in the long term. This presentation discusses some of those other areas and details how Netflix (and specifically the API team) addresses them.
Daniel Jacobson is the Director of Engineering at Netflix API. He discussed techniques for scaling the Netflix API, including moving from a resource-based API to an experience-based API model to improve efficiency. Netflix uses cloud deployment techniques like autoscaling and canary releases for development and testing. Resiliency is ensured through techniques like circuit breakers and fallbacks.
This presentation demonstrates the great successes of the Netflix API to date. After some introspection, however, there is an opportunity to better prepare the API for the future. This presentation also offers a few ideas on how the Netflix API architecture may change over time.
Top 10 Lessons Learned from the Netflix API - OSCON 2014Daniel Jacobson
The document discusses lessons learned from Netflix's API strategy over time. It notes that Netflix started with a focus on growing a community of public developers but now prioritizes ensuring subscribers can stream. It also discusses separating concerns between API providers and consumers, embracing differences in audiences, being pragmatic over dogmatic in API decisions, enabling fast iteration, planning for failures, and scaling infrastructure to match growth.
Most API providers focus on solving all three of the key challenges for APIs: data gathering, data formatting and data delivery. All three of these functions are critical for the success of an API, however, not all should be solved by the API provider. Rather, the API consumers have a strong, vested interest in the formatting and delivery. As a result, API design should be addressed based on the true separation of concerns between the needs of the API provider and the various API consumers.
This presentation goes into the separation of concerns. It also goes into depth in how Netflix has solved for this problem through a very different approach to API design.
This presentation was given at the following API Meetup in SF:
http://www.meetup.com/API-Meetup/events/171255242/
History and Future of the Netflix API - Mashery Evolution of DistributionDaniel Jacobson
Presentation on the history and future of the Netflix API. This presentation walks through how the API was formed, why it needs a redesign and some of the principles that will be applied in the redesign effort.
This presentation was given at the Mashery Evolution of Distribution session in San Francisco on June 2, 2011.
Talk about the Netflix API and how it serves as the front door for Netflix device UIs. Topics include: API design, resiliency patterns, scalability, and enabling fast dev/deploy cycles.
Many API programs get launched without a clear understanding as to WHY the API should exist. Rather, many are focused on WHAT the API consists of and HOW it should be targeted, implemented and leveraged. This presentation focuses on establishing the need for a clear WHY proposition behind the decision. The HOW and then WHAT will follow from that.
This presentation also uses the history of the Netflix API to demonstrate the power, utility and importance of knowing WHY you are building an API.
1. The document discusses running an API at scale and some of the challenges that arise. It notes that running a huge API product is different than running a web product.
2. Managing application developers and the relationships between their apps and users becomes more complex at scale. Techniques like OAuth and caching can help reduce load on APIs and internal systems.
3. As APIs and applications grow, aspects like chatty applications, application versioning, testing, and geo-distributed caching take on increased importance for managing scale and complexity. The key is to continually improve while avoiding getting stuck.
This document discusses trends in API design and when it may be appropriate to deviate from trends. It summarizes Netflix's case study in moving away from a RESTful, one-size-fits-all API and instead implementing device-specific APIs. The document also discusses trends around REST, JSON, OAuth, and API versioning and alternatives that may provide more flexibility depending on a system's needs and clients.
This document discusses trends in APIs to expect in 2012. It predicts that enterprise APIs will go mainstream, with 30% of enterprises implementing APIs and 60% considering them. It also suggests that APIs will become the default access point for backend systems, and that API-centric architecture will focus on integration with apps and developers rather than people or processes. Additionally, it proposes that data will be brokered through APIs using free and paid models, and that enterprises will enable their data through RESTful APIs.
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...CA API Management
This document discusses developer experience (DX) with APIs. It notes that DX is the sum of interactions between a developer and an API owner, as well as the emotive impact of API usage. Effective DX prioritizes usability and the overall experience for developers as users. The document advocates understanding target users and designing APIs with a user experience focus to improve DX.
Migrating Automation Tests to Postman Monitors and ROIPostman
In this presentation I will be covering BetterCloud's approach to creating and finding patterns for complex authentication and identifying key performance and correctness metrics for ensuring API stability. We'll take a deep dive into BetterCloud's cost benefit analysis for migrating automated tests to Postman monitors and go over the challenges and successes faced along the way.
This document discusses API facade patterns and composition specifically. It introduces the composition pattern as a way to establish a single connection and handle authentication, data formatting, etc for multiple backend services from a client. Benefits include fewer network calls, ability to switch services without changing client code, and opportunity for analytics and validation. Some considerations are parallel calls and chatty services.
This document provides an overview of a webinar series on API facades. The webinar series will discuss how API facades can provide a simple interface to complex backend systems over four episodes. Episode 1 will cover the goal of API facades, common problems they address, anti-patterns to avoid, how facades provide a solution, and how to implement them. Using an API facade can help mediate between the ideal API design and existing systems, while providing benefits like adapting to different use cases and keeping pace with developers.
This document summarizes the third episode of the API Facade webinar series on technology. It recaps common API facade patterns and then discusses various technologies that can be used to implement an API facade including DNS, cloud platforms, web servers, API gateways, routing, firewalls, caching, orchestration, transformations, compression, databases, and OAuth providers. It concludes by inviting questions on the discussed topics.
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)Apigee | Google Cloud
This document discusses converting a two-phase API to a single-phase API using an API facade. A two-phase API requires separate prepare and commit calls, which can be complex for clients. An API facade handles this conversion, exposing a single-phase API to clients while still using the existing two-phase backend services. Benefits include reusing backend systems, simplifying the client experience, and managing distributed transactions. Considerations include potential loss of transaction coordination capabilities.
OSCON Data 2011 -- NoSQL @ Netflix, Part 2Sid Anand
The document discusses translating concepts from relational databases to key-value stores. It covers normalizing data to avoid issues like data inconsistencies and loss. While key-value stores don't support relations, transactions, or SQL, the relationships can be composed in the application layer for smaller datasets. Picking the right data for key-value stores involves accessing data primarily by key lookups.
1. Netflix faced database corruption issues in August 2008 which highlighted the need for high availability.
2. Moving to the cloud eliminated accidental complexity around capacity forecasting, obsolete equipment, data center moves, and more. This found agility for developers and the business.
3. Netflix's culture of freedom and responsibility allowed engineering teams ownership over their deployments without single points of control, eliminating unnecessary process.
Netflix started as a DVD rental service and later added streaming options. It faces challenges implementing new features like an improved recommendation algorithm and separating DVD rentals into Qwikster. Netflix overcame these issues by launching streaming, eliminating separate plans, improving its content selection and algorithms. Key to Netflix's success is providing affordable, convenient access to a wide variety of content through its streaming service and original programming.
At Netflix, we provide an API that supports the content discovery, sign-up, and playback experience on thousands of device types that millions use around the world every day. As our user base and traffic has grown by leaps and bounds, we are continuously evolving this API to be flexible, scalable, and resilient and enable the best experience for our users. In this talk, I gave an overview of how and why the Netflix API has evolved to where it is today and how we make it resilient against failures while keeping it flexible and nimble enough to support continuous A/B testing.
This document discusses canary analysis, which is a deployment process where a new change is gradually rolled out to production with checkpoints to examine the new systems versus the old systems and make go/no-go decisions. It proposes using canary analysis to test software releases by routing a small percentage of traffic to new servers and comparing metrics like error rates and requests per second between the new and old servers before fully deploying the new release. The document provides advice on automating canary analysis, focusing on relative metrics, ignoring outliers, balancing fidelity with customer impact, and letting application owners choose when differences are acceptable.
Netflix Edge Engineering Open House Presentations - June 9, 2016Daniel Jacobson
Netflix's Edge Engineering team is responsible for handling all device traffic for to support the user experience, including sign-up, discovery and the triggering of the playback experience. Developing and maintaining this set of massive scale services is no small task and its success is the difference between millions of happy streamers or millions of missed opportunities.
This video captures the presentations delivered at the first ever Edge Engineering Open House at Netflix. This video covers the primary aspects of our charter, including the evolution of our API and Playback services as well as building a robust developer experience for the internal consumers of our APIs.
Monografia: A prática da Leitura no Ensino de Lingua Inglesagleudivania
O documento discute a importância do ensino de línguas estrangeiras, com foco no inglês, e apresenta diferentes métodos históricos de ensino de línguas. No primeiro capítulo, destaca a importância do inglês no mundo globalizado e descreve métodos como o da gramática e tradução, direto, de leitura e audiolingual. No segundo capítulo, discute a priorização do ensino de leitura em inglês e suas estratégias.
This report summarizes an organizational study conducted at Lafarge India Pvt. Ltd in Jamshedpur. Lafarge India is a subsidiary of French building materials company Lafarge, with a total cement production capacity of 6.5 million tons across four plants in India. The report outlines Lafarge's mission, vision, products, organizational structure, departments, SWOT analysis, findings from the study, and suggestions. Key points include Lafarge's focus on leadership, growth, responsibility, quality, and equity in its mission, and its vision to be a leading cement company in India.
Maintaining the Front Door to Netflix : The Netflix APIDaniel Jacobson
This presentation was given to the engineering organization at Zendesk. In this presentation, I talk about the challenges that the Netflix API faces in supporting the 1000+ different device types, millions of users, and billions of transactions. The topics range from resiliency, scale, API design, failure injection, continuous delivery, and more.
Competition in indian cement industry a case of collusivepulsar5583
The Indian cement industry exhibits characteristics that could enable collusive pricing behaviors, including high concentration with a small number of major players controlling most production, high barriers to entry and exit, similar production costs, and the existence of an effective trade association. A 2010 case study found 11 cement manufacturers engaged in illegal cartelization and price fixing in violation of competition laws, for which they were fined over $1 billion total. Ongoing monitoring is needed to enforce regulations and prevent anti-competitive pricing behaviors in this important industry.
1. LinkedIn - As a B2B-focused platform, LinkedIn allows Lafarge to connect with industry professionals and highlight their innovations, expertise, and projects.
2. YouTube - Posting videos about Lafarge's products and sustainability efforts on YouTube can help increase their visibility and position them as a leader in these areas.
Netflix began as a DVD rental service but has transitioned to focus on online streaming. It has over 20 million subscribers and is the largest source of internet streaming traffic. Netflix uses a recommendation algorithm called CineMatch and a long tail business model to provide personalized movie suggestions to subscribers. While threats include competition and potential issues with internet service providers, Netflix is addressing these by expanding its streaming library, making agreements with content providers, and pushing into international markets.
This document discusses moving from traditional monolithic and SOA architectures to microservices architectures. It covers principles of microservices like high cohesion, low coupling, independent deployability and scaling of services. It also discusses organizational implications, noting that teams are typically organized around business capabilities rather than technical layers in a microservices structure. Key challenges of microservices like increased complexity and performance overhead are also outlined.
Surge 2014: From Clouds to Roots: root cause performance analysis at Netflix. Brendan Gregg.
At Netflix, high scale and fast deployment rule. The possibilities for failure are endless, and the environment excels at handling this, regularly tested and exercised by the simian army. But, when this environment automatically works around systemic issues that aren’t root-caused, they can grow over time. This talk describes the challenge of not just handling failures of scale on the Netflix cloud, but also new approaches and tools for quickly diagnosing their root cause in an ever changing environment.
MicroServices at Netflix - challenges of scaleSudhir Tonse
Microservices at Netflix have evolved over time from a single monolithic application to hundreds of fine-grained services. While this provides benefits like independent delivery, it also introduces complexity and challenges around operations, testing, and availability. Netflix addresses these challenges through tools like Hystrix for fault tolerance, Eureka for service discovery, Ribbon for load balancing, and RxNetty for asynchronous communication between services.
Lafarge is a French industrial company specialising in four major products: cement, construction aggregates, concrete and gypsum wallboard. The company is the world's largest cement manufacturer.
Lafarge was founded in 1833 by Joseph-Auguste Pavin de Lafarge in Le Teil (Ardèche), to exploit the limestone quarry in Mont Saint-Victor between Le Teil and Viviers. The limestone is white and argillaceous, and yielded an eminently hydraulic lime.
The document provides details about photographs selected and editing processes used for various ancillary music products, including a digipak and magazine cover, for an up-and-coming artist. Key photographs included images of the artist in front of a church door, which linked to lyrics in her song, as well as casual shots taken on set. Photographs were edited in Photoshop to enhance lighting and contrast, and create continuity across products while showing different sides of the artist. Time strips using various shots were chosen for the digipak interior to highlight the artist's fun personality. An everyday outfit and relaxed pose were used for the magazine cover to make the artist relatable while breaking into the industry.
La rápida evolución tecnológica hace que los equipos tengan una vida útil cada vez más corta. Las actualizaciones permiten hacer más cosas de forma más rápida y diferente, no solo por modas. El reciclaje de equipos viejos pero funcionales incluye donarlos, instalar Linux para mantenerlos actualizados, o usarlos como cafeterías de internet o routers.
This document discusses evaluating and testing web APIs. It covers several topics:
- The importance of API quality for customers who rely on APIs for their applications and business needs. High-quality APIs must be available, consistent, transparent, secure, performant, reliable and usable.
- Different approaches to testing APIs, including functional automation testing at different stages of the development process from continuous integration to production monitoring.
- Key aspects of API quality that should be tested, such as expected results and behaviors, error handling, internationalization, security, performance, and usability.
- The presentation aims to convey that thorough evaluation and testing of APIs is necessary to ensure they meet customers' needs and expectations.
The document discusses using Google App Engine to power native Android applications. It provides an overview of App Engine, including what it is, the infrastructure and services it provides like Python and Java runtimes, and its scalable architecture. It explains why developers might use App Engine due to its ease of setup and ability to automatically scale applications. It also includes a demo and overview of the App Engine datastore.
Netflix receives 2 billion requests per day to its API from users and makes 12 billion outbound requests from its personalization engine to power recommendations. The personalization engine uses data on users, movies, ratings, reviews, and similar movies to conduct A/B tests and has experienced 30 times growth over two years. The document requests feedback on the presentation and conference.
Immutable Server generation: The new App DeploymentAxel Fontaine
From JavaZone 2014
Video: https://vimeo.com/105851488
Abstract:
App deployment and server setup are complex, error-prone and time-consuming. They require OS installers, package managers, configuration recipes, install and deployment scripts, server tuning, hardening and more. But... Is this really necessary? Are we trapped in a mindset of doing things this way just because that's how they've always done?
What if we could start over and radically simplify all this? What if, within seconds, and with a single command, we could wrap our application into the bare minimal machine required to run it? What if this machine could then be transported and run unchanged on our laptop and in the cloud? How do the various tools like Docker and Boxfuse fit into this picture? What are their strengths and weaknesses? When should you use them?
This talk is for developers and architects wishing to radically improve and simplify how they deploy their applications. It takes Continuous Delivery to a level far beyond what you've seen today. Welcome to Immutable Server generation. This is the new black.
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...SmartBear
API virtualization allows for faster development, testing, and delivery of APIs. It involves simulating API responses without accessing the actual implementation through techniques like static mocking, dynamic mocking, and runtime simulation. This allows isolating components, enabling early development and testing, and providing sandboxes. Virtualization can be done by generating responses from API definitions, capturing real traffic, or refining with dedicated tooling. It is particularly useful for complex systems with many interdependent components and external dependencies.
A Service-Based Architecture for Multi-domain Search on the WebAlessandro Bozzon
This document proposes an architecture for multi-domain search across the web using search services. It describes a motivation for going beyond simple keyword search to support more complex queries. An example complex query is provided. The architecture supports splitting complex queries into subproblems, using available search services, and integrating results. Key aspects include ranking, handling of chunked/distributed results, and novel user interactions. Experimental results demonstrate feasibility and opportunities for improvements like smart control strategies and efficient pre-fetching.
What's even better than mocking? API Virtualization. This presentation will show you how.
With API Virtualization, quickly and easily create mocks to validate the APIs you depend on, then pump them up with some serious juice for more powerful application testing. In your own API sandbox, simulate API failure conditions to make sure your application can gracefully handle error responses.
Building a Great Web API - Evan Cooke - QCON 2011Twilio Inc
This presentation explores how fast signup, a clear value proposition, efficient quick starts, concise documentation, easy authentication and debugability are common attributes of many successful web APIs. The Twilio API is used as an example of how a focus on developer experience helps drive API adoption.
Sign up for our beta today! http://datadipity.com/register
Datadipity reduces time to launch by promoting the “Virtualized API stack” with a set of APIs in place, there is no need to architect complex distributed systems. 3rd party APIs are leveraged so that the architecture can be reduced to one code base. This reduces development time. Usability is much easier to maintain during beta release and user acceptance changes are easier to apply.
今までデスクトップアプリや Web アプリケーションだった社内システムの開発は、クラウド化と働き方改革という二つのキーワードと共に現場の情シスを悩ませてきました。
今や社内業務アプリにも、場所を問わずアクセスできるようなスマートフォンやタブレット対応のアーキテクチャが求められる時代です。
本セッションでは、そのようなモダンなエンタープライズ向け社内業務アプリを API バックエンドで開発する方法と、その開発現場で戦い続ける情シスの声、そして開発を加速する Azure の様々な API 向けサービスの活用方法を解説します。
This document discusses the differences between the traditional IT model and the emerging app economy model. It outlines 10 steps that can help enterprises transition from traditional IT approaches to embrace app-centric approaches like APIs, mobile apps, and external developers. These steps include viewing existing software through an "app lens", cultivating internal and external entrepreneurs, prioritizing rapid iteration over large waterfall projects, and connecting people through APIs and developer platforms. The document advocates that enterprises evolve their software distribution and monetization to be more like online app stores and embrace new forms of authorization at API boundaries.
This document discusses API readiness and provides strategies for visualizing, validating, virtualizing, and monitoring APIs. It emphasizes the importance of visualizing APIs to understand them better. It also recommends validating APIs through functional, load, and security testing. Virtualizing APIs is suggested to enable parallel development and testing by simulating external systems. Finally, the document stresses monitoring APIs during development, testing, and production to ensure stability and prevent issues.
API First Workflow: How could we have better API Docs through DevOps pipelinePronovix
API Documentation plays an important role in improving the customer’s experience with APIs, which is always a struggle for most of the company. The way to accomplish this is to transition API development culture from “Code First” to “Design First”, here in SAS we call it “API First”. For better API designing and documentation, we have built an API First CI/CD workflow which brings many open-sourced API tools together and involves developers, product managers, documentation writers, and testers to synchronously work together to develop APIs in a “Design First” approach, the industry standard.
In the talk, we will discuss how the API-first Workflow could enable better collaboration between teams which could help in many aspects especially writing the openAPI documentation, keeping it up to date and sync with your code. We will take a deep look at one example, the Linting tool from API First workflow, which helps to make sure the API documentation follows the company standard from the start. With openSource linting tools like Spectral, it’s easy for teams to define their own linting rules which includes company standards. When your API specifications go through the linter in the CI/CD pipeline, the linter will throw errors and warnings as you write your spec. This will help ensure your specification is following proper guidelines and that’s all automatic.
Applying AI to API Testing across the lifecycle - Integration Tuesdays -Final...jparra9
The document discusses applying AI/automation to API testing across the lifecycle. It introduces Auto Test Assist, which improves developer productivity by automatically generating, scheduling, and testing APIs during creation without writing test cases. It uses "biased random" request generation to validate and test APIs with just the OpenAPI document. The document also discusses using production data and AI insights to continuously learn and improve test coverage by identifying gaps and recommending new tests. Integrating tests into the DevOps process allows testing across the lifecycle from development to production.
An edge gateway is an essential piece of infrastructure for large scale cloud based services. This presentation details the purpose, benefits and use cases for an edge gateway to provide security, traffic management and cloud cross region resiliency. How a gateway can be used to enhance continuous deployment, and help testing of new service versions and get service insights and more are discussed. Philosophical and architectural approaches to what belongs in a gateway vs what should be in services will be discussed. Real examples of how gateway services are used in front of nearly all of Netflix's consumer facing traffic will show how gateway infrastructure is used in real highly available, massive scale services.
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...Kin Lane
Note: This webinar is the second in Postman's three-part webinar series on implementing an API-first strategy in enterprise e-commerce. The series, hosted by Postman Chief Evangelist Kin Lane, will walk you through key topics and how-to content via a hypothetical e-commerce enterprise, Union Fashion (see it on GitHub).
Continuing with our series, the second webinar will dive into actually deploying and monitoring an API using the Postman platform. We will take the API we developed as part of our previous API-first webinar, and actually bring it to life by focusing on the following areas:
- Versions
- Monitors
- Mocks
- Environment
- Documentation
- Feedback Loops
The full video for this session can be found at: https://www.youtube.com/watch?v=jO2M_kqb-jo&t=1659s
The document discusses K9, a recommender system that helps developers find relevant open source applications by analyzing API documentation rather than source code or project descriptions. K9 uses help documents to identify relevant API calls for a user's query, then checks that the calls are logically connected based on the query concepts. This approach aims to more accurately link high-level user intents to implementation details. Future work includes automating more of the application analysis and expanding K9's scope beyond Java projects.
What’s behind a high quality web API? Ensure your APIs are more than just a ...Kim Clark
Web APIs have now become as important as websites for some enterprises. Dreaming up an attractive set of data resources to expose to your consumers is a critical step, but it's just the beginning. In the world of APIs, standards are rare, so common conventions are everything. Which should you choose, and how do you apply them to your data model? What architecture will ensure your APIs are robust, scalable, and secure? How do you ensure data integrity in an environment without transactionality? How will you prepare for huge changes in scale? How do you join your API world with your existing enterprise integration and SOA? Attendees will learn design practices to ensure their APIs are both attractive and consumable.
This document discusses the emerging pattern of networked applications, where applications are built with a more distributed architecture between the client and server compared to traditional web applications. With networked applications, more processing is done on the client side in JavaScript to reduce server load and bandwidth usage. This allows for improved performance, mobility as applications are not tied to specific servers, and less dependency on browser limitations. The document explores different technologies for building such applications like JavaScript widget kits, Google Web Toolkit, Flex, and others.
NPR: Digital Distribution Strategy: OSCON2010Daniel Jacobson
When launching the API at OSCON in 2008, NPR targeted four audiences: the open source community; NPR member stations; NPR partners and vendors; and finally our internal developers and product managers. In its short two-year life, the NPR API has grown tremendously, from only a few hundred thousand requests per month to more than 60M. The API, furthermore, has enabled tremendous growth for NPR in the mobile space while facilitating more than 100% growth in total page views in the last year.
NPR's Digital Distribution and Mobile StrategyDaniel Jacobson
The NPR API has been the great enabler to achieve rapid development in the mobile space. That is, because we have our rich and powerful API, our mobile team is free to pursue the development of their mobile products without being encumbered by limited internal development resources. The touch-point between the mobile product and our content is fixed which means the mobile team can focus on design and usability for the specific platform.
These slides demonstrate some of the usage and metrics of the NPR API. In addition to the flow of an NPR story from creation to distribution, I also tried to provide a reasonable sampling of the more popular or interesting implementations.
These slides are from the OpenID UX Summit at Sears in Chicago. We discuss the newly formed Adoption Committee for OpenID, NPR's identity sharing strategy, Sears' OpenID case study, PBS' case study, and the goal towards a federated public media identity.
This presentation shows the same NPR story displayed in a wide range of platforms. The content, through the principles of COPE, is pushed out to all of these destinations through the NPR API. Each destination, meanwhile, uses the appropriate content for that presentation layer.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
2. Techniques for Scaling the Netflix API
Agenda
• History of the Netflix API
• The Cloud
• Development and Testing
• Resiliency
• Future of the Netflix API
3. Techniques for Scaling the Netflix API
Agenda
• History of the Netflix API
• The Cloud
• Development and Testing
• Resiliency
• Future of the Netflix API
12. Techniques for Scaling the Netflix API
Agenda
• History of the Netflix API
• The Cloud
• Development and Testing
• Resiliency
• Future of the Netflix API
27. Techniques for Scaling the Netflix API
Agenda
• History of the Netflix API
• The Cloud
• Development and Testing
• Resiliency
• Future of the Netflix API
29. That Doesn’t Mean We Don’t Test
• Unit tests
• Functional tests
• Regression scripts
• Continuous integration
• Capacity planning
• Load / Performance tests
30. Development Contiuous
Run Unit Tests
(Feature & Test) Integration
Perform
Deploy to Run Functional
Integration
Staging Env Tests
Tests
Deploy to
Customers
32. API Requests from
the Internet
Problem!
Current Code
In Production
Single Canary Instance
To Test New Code with Production Traffic
(typically around 1-5% of traffic)
41. Development Continuous
Run Unit Tests
(Feature & Test) Integration
Run
Deploy to Run Functional
Integration
Staging Env Tests
Tests
Perform
Deploy Canary
Canary
Instance(s)
Analysis
Deploy to Perform Black Deploy Black
Customers Analysis Instances
42. Techniques for Scaling the Netflix API
Agenda
• History of the Netflix API
• The Cloud
• Development and Testing
• Resiliency
• Future of the Netflix API
43. API
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
44. API
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
45. API
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
46. API
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
61. API
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
62. API
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
63. API
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
64. API
Fallback
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
65. API
Fallback
Personaliz
Movie Movie Similar A/B Test
ation User Info Reviews
Engine
Metadata Ratings Movies Engine
66. Techniques for Scaling the Netflix API
Agenda
• History of the Netflix API
• The Cloud
• Development and Testing
• Resiliency
• Future of the Netflix API
76. Improve Efficiency of API Requests
Could it have been 5 billion requests per month? Or less?
(Assuming everything else remained the same)
77. Netflix API : Requests Per Month
35
30
25
Request in Billions
20
15
10
5
0
78. Netflix API : Requests Per Month
35
30
25
Request in Billions
20
15
10
5
0
79. API Billionaires Club
13 billion API calls / day (May 2011)
Over 260 billion objects stored in S3 (January 2011)
5 billion API calls / day (April 2010)
5 billion API calls / day (October 2009)
1 billion API calls / day (October 2011)
8 billion API calls / month (Q3 2009)
3.2 billion API-delivered stories / month (October
2011)
3 billion API calls / month (March 2009)
Courtesy of John Musser, ProgrammableWeb
80. API Billionaires Club
13 billion API calls / day (May 2011)
Over 260 billion objects stored in S3 (January 2011)
5 billion API calls / day (April 2010)
5 billion API calls / day (October 2009)
1 billion API calls / day (October 2011)
8 billion API calls / month (Q3 2009)
3.2 billion API-delivered stories / month (October
2011)
3 billion API calls / month (March 2009)
Courtesy of John Musser, ProgrammableWeb
81. Two Major Objective for
API Redesign
• Improve performance for devices
– Minimize network traffic (one API call, if possible)
– Only deliver bytes that are needed
• Improve ability for device teams to rapidly
innovate
– Customized request/response patterns per device
– Deployment is independent from API schedules
82. Current Client / Server Interaction
CLIENT APPS API SERVER
AUTH
SETUP
TIME
QUEUE
LISTS
LIST ( i )
TITLES
83. Future Client / Server Interaction
CLIENT APPS API SERVER
CUSTOM SCRIPTING TIER
GENERIC API
84. Custom Scripting Tier Interaction
CLIENT APPS API SERVER
AUTH
CUSTOM
SCRIPTING SETUP
TIER
TIME
PS3
HOME QUEUE
SCREEN
CUSTOM LISTS
ENDPOINT
LIST ( i )
Owned and operated
by the UI teams TITLES
90. Generic API Interaction
CLIENT APP API SERVER
AUTH
GENERIC CONFIG
SCRIPT
TIME
SIMPLE QUEUE
CATALOG
REQUEST
TO API LISTS
LIST ( i )
Owned and operated
by the API team TITLES
91. Technologies
AUTH
CONFIG
TIME
GROOVY
SIMPLE
CLIENT COMPILED
CATALOG JAVAQUEUE
REQUEST
LANGUAGE INTO
TO API LOLOMO
LISTS
JVM
LIST ( i )
TITLES
93. Active
1
2
3
4
5
SCRIPT
REPOSITORY 6
(DYNAMIC
DEPLOYMENT)
API SERVER
APPLICATION CODE
(REQUIRES API CODE PUSHES)
94. Active
1
2
3
4
5
SCRIPT
REPOSITORY 6
(DYNAMIC
7
DEPLOYMENT)
API SERVER
APPLICATION CODE
(REQUIRES API CODE PUSHES)
95. 1
2
3
4
Active
5
SCRIPT
REPOSITORY 6
(DYNAMIC
7
DEPLOYMENT)
API SERVER
APPLICATION CODE
(REQUIRES API CODE PUSHES)
98. If you are interested in helping us solve these
problems, please contact me at:
Daniel Jacobson
[email protected]
@daniel_jacobson
http://www.linkedin.com/in/danieljacobson
http://www.slideshare.net/danieljacobson
Editor's Notes
#5: When the Netflix API launched three years ago, it was to “let 1,000 flowers bloom”. Today, that API still exists with almost 23,000 flowers.
#6: At that time, it was exclusively a public API.
#7: Some of the apps developed by the 1,000 flowers.
#8: Then streaming started taking off for Netflix, first with computer-based streaming… At that time, it was still experimental and did not draw from the API.
#9: But over time, as we added more devices, they started drawing their metadata from the API. Today, almost all of our devices are powered by the API.
#10: As a result, today’s consumption is almost entirely from private APIs that service the devices. The Netflix devices account for 99.7% of the API traffic while the public API represents only about .3%.
#11: The Netflix API represents the iceberg model for APIs. That is, public APIs represent a relatively small percentage of the value for the company, but they are typically the most visible part of the API program. They equate to the small part of the iceberg that is above water, in open sight. Conversely, the private APIs that drive web sites, mobile phones, device implementations, etc. account for the vast majority of the value for many companies, although people outside of the company often are not aware of them. These APIs equate to the large, hard to see mass of ice underwater. In the API space, most companies get attracted to the tip of the iceberg because that is what they are aware of. As a result, many companies seek to pursue a public API program. Over time, however, after more inspection into the value propositions of APIs, it becomes clear to many that the greatest value is in the private APIs.
#12: As a result, the current emphasis for the Netflix API is on the majority case… supporting the Netflix
#14: There are basically two types of interactions between Netflix customers and our streaming application… Discovery and Streaming.
#15: Discovery is basically any event with a title other than streaming it. That includes browsing titles, looking for something watch, etc.
#16: It also includes actions such as rating the title, adding it to your instant queue, etc.
#17: Once the customer has identified a title to watch through the Discovery experience, the user can then play that title. Once the Play button is selected, the customer is sent to a different internal service that focuses on handling the streaming. That streaming service also interacts with our CDNs to actually deliver the streaming bits to the device for playback.
#18: The API powers the Discovery experience. The rest of these slides will only focus on Discovery, not Streaming.
#19: As Discovery events grow, so does the growth of the Netflix API. Discovery continues to grow for a variety of reasons, including more devices, more customers, richer UI experiences, etc.
#20: As API traffic grows, so do the infrastructural needs. The more requests, the more servers we need, the more time spent supporting those servers, the higher the costs associated with this support, etc.
#21: And our international expansion will only add complexity and more scaling issues.
#22: The traditional model is to have systems administrators go into server rooms like this one to build out new servers, etc.
#23: Rather than relying on data centers, we have moved everything to the cloud! Enables rapid scaling with relative ease. Adding new servers, in new locations, take minutes. And this is critical when the service needs to grow from 1B requests a month to 1B requests a day in a year.
#24: Instead of going into server rooms, we go into a web page like this one. Within minutes, we can spin up new servers to support growing demands.
#25: Throughautoscaling in the cloud, we can also dynamically grow our server farm in concert with the traffic that we receive.
#26: So, instead of buying new servers based on projected spikes in traffic and having systems administrators add them to the farm, the cloud can dynamically and automatically add and remove servers based on need.
#27: And as we continue to expand internationally, we can easily scale up in new regions, closer to the customer base that we are trying to serve, as long as Amazon has a location near there.
#29: As a general practice, Netflix focuses on getting code into production as quickly as possible to expose features to new audiences.
#30: That said, we do spend a lot of time testing. We have just adopted some new techniques to help us learn more about what the new code will look like in production.
#31: Prior to these new changes, our flow looked something like this…
#32: That flow has changed with the addition of new techniques, such as canary deployments and what we call red/black deployments.
#33: The canary deployments are comparable to canaries in coal mines. We have many servers in production running the current codebase. We will then introduce a single (or perhaps a few) new servers into production running new code. Monitoring the canary servers will show what the new code will look like in production.
#34: If the canary shows errors, we pull it/them down, re-evaluate the new code, debug it, etc. We will then repeat the process until the analysis of canary servers look good.
#35: If the new code looks good in the canary, we can then use a technique that we call Red/Black Deployments to launch the code. Start with Red, where production code is running. Fire up a new set of servers (Black) equal to the count in Red with the new code.
#36: Then switch the pointer to have external requests draw from the Black servers.
#37: If a problem is encountered from the Black servers, it is easy to rollback quickly by switching the pointer back to Red. We will then re-evaluate the new code, debug it, etc.
#38: Once we have debugged the code, we will put another canary up to evaluate the new changes in production.
#39: If the new code looks good in the canary, we can then bring up another set of servers with the new code.
#40: Then we will switch production traffic to the new code.
#41: Then switch the pointer to have external requests draw from the Black servers. If everything still looks good, we disable the Red servers and the new code becomes the new red servers.
#42: So, the development and testing flow now looks more like this…
#44: At Netflix, we have a range of engineering teams who focus on specific problem sets. Some teams focus on creating rich presentation layers on various devices. Others focus on metadata and algorithms. For the streaming application to work, the metadata from the services needs to make it to the devices. That is where the API comes in. The API essentially acts as a broken, moving the metadata from inside the Netflix system to the devices.
#45: Given the position of the API within the overall system, the API depends on a large number of underlying systems (only some of which are represented here). Moreover, a large number of devices depend on the API (only some of which are represented here). Sometimes, one of these underlying systems experiences an outage.
#46: In the past, such an outage could result in an outage in the API.
#47: And if that outage cascades to the API, it is likely to have some kind of substantive impact on the devices. The challenge for the API team is to be resilient against dependency outages, to ultimately insulate Netflix customers from low level system problems.
#48: To achieve this, we implemented a series of circuit breakers for each library that we depend on. Each circuit breaker controls the interaction between the API and that dependency. This image is a view of the dependency monitor that allows us to view the health and activity of each dependency. This dashboard is designed to give a real-time view of what is happening with these dependencies (over the last two minutes). We have other dashboards that provide insight into longer-term trends, day-over-day views, etc.
#50: This circle represents the call volume and health of the dependency over the last 10 seconds. This circle is meant to be a visual indicator for health. The circle is green for healthy, yellow for borderline, and red for unhealthy. Moreover, the size of the circle represents the call volumes, where bigger circles mean more traffic.
#51: The blue line represents the traffic trends over the last two minutes for this dependency.
#52: The green number shows the number of successful calls to this dependency over the last two minutes.
#53: The yellow number shows the number of latent calls into the dependency. These calls ultimately return successful responses, but slower than expected.
#54: The blue number shows the number of calls that were handled by the short-circuited fallback mechanisms. That is, if the circuit gets tripped, the blue number will start to go up.
#55: The orange number shows the number of calls that have timed out, resulting in fallback responses.
#56: The purple number shows the number of calls that fail due to queuing issues, resulting in fallback responses.
#57: The red number shows the number of exceptions, resulting in fallback responses.
#58: The error rate is calculated from the total number of error and fallback responses divided by the total number calls handled.
#59: If the error rate exceeds a certain number, the circuit to the fallback scenario is automatically opened. When it returns below that threshold, the circuit is closed again.
#60: The dashboard also shows host and cluster information for the dependency.
#66: Keeping our customers happy, even if the experience may be slightly degraded. It is important to note that different dependency libraries have different fallback scenarios. And some are more resilient than others. But the overall sentiment here is accurate at a high level.
#68: As discussed earlier, the API was originally built for the 1,000 flowers. Accordingly, today’s API design is very much grounded in the same principles for that same audience.
#69: But the audience of the API today is dramatically different.
#70: With the emphasis of the API program being on the large mass underwater – the private API.
#71: As a result, the current API is no longer the right tool for the job. We need a new API, designed for the present and the future. The following slides talk more about the redesign of the Netflix API to better meet the needs of the key audiences.
#72: We already talked about the tremendous growth in API requests…
#73: Metrics like 30B requests per month sound great, don’t they? The reality is that this number is concerning…
#74: For web sites, like NPR, where page views create ad impressions and ad impressions generate revenue, 30B requests would be amazing.
#75: But for systems that yield output that looks like this...
#76: Or this… Ad impressions are not part of the game. As a result, the increase in requests don’t translate into more revenue. In fact, they translate into more expenses. That is, to handle more requests requires more servers, more systems-admins, a potentially different application architecture, etc.
#77: We are challenging ourselves to redesign the API to see if those same 30B requests could have been 5 billion or perhaps even less. Through more targeted API designs based on what we have learned through our metrics, we will be able to reduce our API traffic as Netflix’ overall traffic grows.
#78: Given the same growth charts in the API, it would be great to imagine the traffic patterns being the blue bars instead of the red ones (assuming the customer usage and user experiences remain the same).
#79: Similarly, with lower traffic levels for the same user experience, server and administration complexity and costs go down as well.
#80: To state the goal another way, John Musser maintains a list of the API Billionaires. Netflix has a pretty lofty position in that club.
#81: We aspire to no longer be in that exclusive company. That is one of the things the redesign strives for.
#83: Today, the devices call back to the API in a mostly synchronous way to retrieve granular metadata needed to start up the client UI. That model requires a large number of network transactions which are the most expensive part of the overall interaction.
#84: We want to break the interaction model into two types of interactions. Custom calls and generic calls.
#85: For highly complex or critical interfaces, we want the device to make a single call to the API to a custom endpoint. Behind that endpoint will be a script that the UI teams maintain. That script is the traffic cop for gathering and formatting the metadata needed for that UI. The script will call to backend services to get metadata, but in this model, much of this will be concurrent and progressively rendered to the devices.
#86: One way to think of it is to imagine a full grid of movies/TV shows as part of a Netflix UI. The red box represents the viewable area of the grid when the screen loads. In today’s REST-ful resource model, the device needs to make calls for the individual lists, then populate the individual titles with distinct calls for each title. Granted, in today’s model, the are some asynchronous calls and some of them are also performed in bulk. But this still demonstrates the chatty nature of this REST-ful API design.
#87: Alternatively, we believe that the custom script could easily return the desiredviewables for each list in one payload much more efficiently.
#88: Moreover, this model can return any payload, filling out any portions of the grid structure, in that single response. Now, we are not likely going to want to populate a grid in this way, but it is possible given the highly customizable nature of this model.
#89: But once we populate the complex start-up screens through the custom scripting tier, the interactions become much more predictable and device-agnostic. If you want to extend the movies in a given row, you don’t need a custom script. That is why we are exposing the Generic API as well.
#90: To populate the grid with more titles for more rows, it is a simple call to get more titles.
#91: The call pattern looks like this for the Generic API. Notice, there is no need for some of the session-start requests when using the Generic API.
#92: For this model, the technology stack is pretty simple. The client apps have their own languages designed for that particular device. The overall API server codebase is Java. And the custom scripts will be written in Groovy and compiled into the same JVM as the backend API code. This should help with overall performance and library sharing for more complex scripting operations.
#93: To publish new scripts to the system, UI engineers will publish the script to Perforce for code management. Then it will be pushed up to a Cassandra cluster in AWS, which acts as a script repository and management system. Every 30 seconds or so, a job will scan the Cassandra cluster looking for new scripts. For all new scripts, they will be pushed to the full farm of API servers to be compiled into the JVM.
#94: From the device perspective, there could be many scripts for a given endpoint, only one of which is active at a given time. In this case, the iPad is running off of script #2.
#95: New scripts can be dynamically added at any time by any team (most often by the UI engineers). The new script (script 7) will arrive in an inactive state. At that time, the script can be tested from a production server before running the device off of it.
#96: When the script looks good and is ready to go live, a configuration change is made and script 7 becomes active immediately across the full server farm.
#97: All of these changes in our redesign effort are designed to help the apps and the UI engineers run faster.
#98: And achieving those goals will help us keep our customers happy.