Top Banner
APIs for an Internal Audience By Daniel Jacobson @daniel_jacobson [email protected] From the App Dev Conferen Santa Clara, CA October 27, 2011
34

APIs for Internal Audiences - Netflix - App Dev Conference

Jan 15, 2015

Download

Technology

Daniel 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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: APIs for Internal Audiences - Netflix - App Dev Conference

APIs for an Internal AudienceBy Daniel Jacobson@daniel_jacobson

[email protected]

From the App Dev ConferenceSanta Clara, CAOctober 27, 2011

Page 2: APIs for Internal Audiences - Netflix - App Dev Conference

NPR API Requests by Audience

Page 3: APIs for Internal Audiences - Netflix - App Dev Conference
Page 4: APIs for Internal Audiences - Netflix - App Dev Conference

The NPR API Powered Products

Page 5: APIs for Internal Audiences - Netflix - App Dev Conference

Netflix API Requests by Audience

Page 6: APIs for Internal Audiences - Netflix - App Dev Conference

Netflix API

Page 7: APIs for Internal Audiences - Netflix - App Dev Conference

Netflix API

Page 8: APIs for Internal Audiences - Netflix - App Dev Conference

How does this translate into value?

Page 9: APIs for Internal Audiences - Netflix - App Dev Conference

NPR API : Page View Growth

Page 10: APIs for Internal Audiences - Netflix - App Dev Conference

Netflix API : Requests Per Month

Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11 -

5

10

15

20

25

30

35

Requ

ests

in B

illio

ns

Page 11: APIs for Internal Audiences - Netflix - App Dev Conference

What does all of this mean?

Page 12: APIs for Internal Audiences - Netflix - App Dev Conference

Public APIs

Private APIs

Page 13: APIs for Internal Audiences - Netflix - App Dev Conference
Page 14: APIs for Internal Audiences - Netflix - App Dev Conference

Netflix API Requests by Audience

Page 15: APIs for Internal Audiences - Netflix - App Dev Conference
Page 16: APIs for Internal Audiences - Netflix - App Dev Conference

Personalization

EngineUser Info Movie

MetadataMovie Ratings

Similar Movies Reviews A/B Test

Engine

Page 17: APIs for Internal Audiences - Netflix - App Dev Conference

Personalization

EngineUser Info Movie

MetadataMovie Ratings

Similar Movies

API

Reviews A/B Test Engine

Page 18: APIs for Internal Audiences - Netflix - App Dev Conference

Personalization

EngineUser Info Movie

MetadataMovie Ratings

Similar Movies

API

Reviews A/B Test Engine

Page 19: APIs for Internal Audiences - Netflix - App Dev Conference

Netflix API

Page 20: APIs for Internal Audiences - Netflix - App Dev Conference

Redesigning the Netflix API

Page 21: APIs for Internal Audiences - Netflix - App Dev Conference

Key Goals of API Redesign

• Improve performance of devices– Reduce API transactions– Reduce payload size

• Improve ability to rapidly innovate on devices– Put the API in the hands of the UI teams

Page 22: APIs for Internal Audiences - Netflix - App Dev Conference

Netflix API : Requests Per Month

Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11 -

5

10

15

20

25

30

35

Requ

ests

in B

illio

ns

Page 23: APIs for Internal Audiences - Netflix - App Dev Conference

Growth of the Netflix API

Over 1 Billion requests per day(Peaks at about 20,000 requests per second)

Page 24: APIs for Internal Audiences - Netflix - App Dev Conference
Page 25: APIs for Internal Audiences - Netflix - App Dev Conference

<catalog_titles> <number_of_results>1140</number_of_results> <start_index>0</start_index> <results_per_page>10</results_per_page> <catalog_title> <id>http://api.netflix.com/catalog/titles/movies/60021896</id><title short="Star" regular="Star"></title> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/60021896.jpg"

medium="http://alien2.netflix.com/us/boxshots/small/60021896.jpg" large="http://alien2.netflix.com/us/boxshots/large/60021896.jpg"></box_art>

<link href="http://api.netflix.com/catalog/titles/movies/60021896/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link>

<release_year>2001</release_year> <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="NR"></category> <category scheme="http://api.netflix.com/categories/genres" label="Foreign"></category> <link href="http://api.netflix.com/catalog/titles/movies/60021896/cast"

rel="http://schemas.netflix.com/catalog/people.cast" title="cast"></link><link href="http://api.netflix.com/catalog/titles/movies/60021896/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen formats"></link <link href="http://api.netflix.com/catalog/titles/movies/60021896/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio" title="languages and audio"></link> <average_rating>1.9</average_rating> <link href="http://api.netflix.com/catalog/titles/movies/60021896/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link> <link href="http://www.netflix.com/Movie/Star/60021896" rel="alternate" title="webpage"></link> </catalog_title> <catalog_title> <id>http://api.netflix.com/catalog/titles/movies/17985448</id><title short="Lone Star" regular="Lone Star"></title> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/17985448.jpg" medium="http://alien2.netflix.com/us/boxshots/small/17985448.jpg" large=""></box_art> <link href="http://api.netflix.com/catalog/titles/movies/17985448/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link> <release_year>1996</release_year> <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="R"></category> <category scheme="http://api.netflix.com/categories/genres" label="Drama"></category><link href="http://api.netflix.com/catalog/titles/movies/17985448/awards" rel="http://schemas.netflix.com/catalog/titles/awards" title="awards"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/format_availability" rel="http://schemas.netflix.com/catalog/titles/format_availability" title="formats"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen formats"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio" title="languages and audio"></link> <average_rating>3.7</average_rating> <link href="http://api.netflix.com/catalog/titles/movies/17985448/previews" rel="http://schemas.netflix.com/catalog/titles/previews" title="previews"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link> <link href="http://www.netflix.com/Movie/Lone_Star/17985448" rel="alternate" title="webpage"></link> </catalog_title></catalog_titles>

Page 26: APIs for Internal Audiences - Netflix - App Dev Conference

{"catalog_title":{"id":"http://api.netflix.com/catalog/titles/movies/60034967","title":{"title_short":"Rosencrantz and Guildenstern Are Dead","regular":"Rosencrantz and Guildenstern Are Dead"},"maturity_level":60,"release_year":"1990","average_rating":3.7,"box_art":{"284pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/ghd/60034967.jpg","110pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/large/60034967.jpg","38pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/tiny/60034967.jpg","64pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/small/60034967.jpg","150pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/150/60034967.jpg","88pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/88/60034967.jpg","124pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/124/60034967.jpg"},"language":"en","web_page":"http://www.netflix.com/Movie/Rosencrantz_and_Guildenstern_Are_Dead/60034967","tiny_url":"http://movi.es/ApUP9"},"meta":{"expand":["@directors","@bonus_materials","@cast","@awards","@short_synopsis","@synopsis","@box_art","@screen_formats","@"links":{"id":"http://api.netflix.com/catalog/titles/movies/60034967","languages_and_audio":"http://api.netflix.com/catalog/titles/movies/60034967/languages_and_audio","title":"http://api.netflix.com/catalog/titles/movies/60034967/title","screen_formats":"http://api.netflix.com/catalog/titles/movies/60034967/screen_formats","cast":"http://api.netflix.com/catalog/titles/movies/60034967/cast","awards":"http://api.netflix.com/catalog/titles/movies/60034967/awards","short_synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/short_synopsis","box_art":"http://api.netflix.com/catalog/titles/movies/60034967/box_art","synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/synopsis","directors":"http://api.netflix.com/catalog/titles/movies/60034967/directors","similars":"http://api.netflix.com/catalog/titles/movies/60034967/similars","format_availability":"http://api.netflix.com/catalog/titles/movies/60034967/format_availability"}}}

Page 27: APIs for Internal Audiences - Netflix - App Dev Conference

Improve Efficiency of API Requests

Could it have been 100 million requests per day? Or less?(Assuming everything else remained the same)

Page 28: APIs for Internal Audiences - Netflix - App Dev Conference

AUTH

DEVICE SETUP

TIME SERVICE

INSTANT QUEUE

LISTS

LIST ( i )

TITLES

LOGGING

CLIENT APPS API SERVER

Page 29: APIs for Internal Audiences - Netflix - App Dev Conference

CUSTOMENDPOINT

PER DEVICE

CLIENT APPS API SERVER

APISCRIPTING

TIER

AUTH

DEVICE SETUP

TIME SERVICE

INSTANT QUEUE

LISTS

LIST ( i )

TITLES

LOGGING

Page 30: APIs for Internal Audiences - Netflix - App Dev Conference

Courtesy of John Musser, ProgrammableWeb

API Billionaires Club

5 billion API calls / day (April 2010)

3.2 billion API-delivered stories / month (October

2011)

5 billion API calls / day (October 2009)

8 billion API calls / month (Q3 2009)

3 billion API calls / month (March 2009)

13 billion API calls / day (May 2011)

Over 260 billion objects stored in S3 (January 2011)

1 billion API calls / day (October 2011)

Page 31: APIs for Internal Audiences - Netflix - App Dev Conference

Courtesy of John Musser, ProgrammableWeb

API Billionaires Club

5 billion API calls / day (April 2010)

3.2 billion API-delivered stories / month (October

2011)

5 billion API calls / day (October 2009)

8 billion API calls / month (Q3 2009)

3 billion API calls / month (March 2009)

13 billion API calls / day (May 2011)

Over 260 billion objects stored in S3 (January 2011)

1 billion API calls / day (October 2011)

Page 32: APIs for Internal Audiences - Netflix - App Dev Conference
Page 33: APIs for Internal Audiences - Netflix - App Dev Conference
Page 34: APIs for Internal Audiences - Netflix - App Dev Conference

If you are interested in helping us solve these problems, please contact me at:

Daniel [email protected]

@daniel_jacobsonhttp://www.linkedin.com/in/danieljacobsonhttp://www.slideshare.net/danieljacobson