49
How APIs are changing Application Development Steven Willmott 3scale Inc @3scale - http://www.3scale.net

How APIs are Changing Software Development

  • Upload
    3scale

  • View
    7.807

  • Download
    0

Embed Size (px)

DESCRIPTION

Talk from the API Management Meeting, San Francisco, 9/11/2013. Covering how APIs change the way be build applications. Also covers why the API Economy will be a complex distributed system.

Citation preview

Page 1: How APIs are Changing Software Development

How APIs are changing Application Development

Steven Willmott 3scale Inc

@3scale - http://www.3scale.net

Page 2: How APIs are Changing Software Development

On Demand API Infrastructure: http://3scale.net @3scale

me: @njyx on twitter

Powering 250 APIsBillions API Calls / Month

Page 3: How APIs are Changing Software Development

San Francisco 23-25th Octoberhttp://www.apistrategyconference.com

Page 4: How APIs are Changing Software Development

To the Content…

Page 5: How APIs are Changing Software Development

“Software is Eating the World”

Marc Andreessen – WSJ / August 2011

Page 6: How APIs are Changing Software Development

“APIs are Eating Software”

API Days San Francisco 2013

Page 7: How APIs are Changing Software Development

Almost every major industry is becoming software driven

MusicRetail Video Telephony

Meaning:

Page 8: How APIs are Changing Software Development

Examples

Lytro: “Software Defined Cameras”

Philips Hue: “Software ControlledLighting”

Amazon: “Software Driven Retail”

Pixar: “Software powered animation”

Page 9: How APIs are Changing Software Development

APIs are Eating Software

Page 10: How APIs are Changing Software Development

Meaning:

1

2

APIs are the key glue that make this software remotely addressable

APIs provide a myriad of new external building blocks to speed up and enrich software development

3 If you do these things together special things happen

Page 11: How APIs are Changing Software Development

Outside-In

More and More APIs are Proliferating

Page 12: How APIs are Changing Software Development

APIs Make Software Remotely Addressable

Page 13: How APIs are Changing Software Development

Wide Diversity of APIs out there

London Transport: Open Data

Evernote: “Platformization”

Netflix: “Massive Distribution”

JCI: “Software Controlled Buildings”

ThousandsOf Devices

Page 14: How APIs are Changing Software Development

Software multiplies in value many fold if you can talk to it

Page 15: How APIs are Changing Software Development

But, What about “Inside-Out”?

How are APIs Changing Application Development?

Page 16: How APIs are Changing Software Development

APIs are the new Libs

“In computer science, a library is a collection of implementations of behavior, written in terms of a language, that has a well-defined interface by which the behavior is invoked”

Credit: Wikipedia

Page 17: How APIs are Changing Software Development

Download & Add to Classpath

Became

Find and Integrate

Page 18: How APIs are Changing Software Development

Speed (Time to Market)

e.g. + Devops Borat

e.g.(Top Mashup on

Progr Web)

Page 19: How APIs are Changing Software Development

Richness / Functionality

e.g.

e.g.

Page 20: How APIs are Changing Software Development

Offboarding

e.g.

e.g.

(Rich Photo EffectsFor Mobile by SDK)

(Monitoring System in the Cloud)

Page 21: How APIs are Changing Software Development

Reliability

e.g.

e.g.

(Email by API)

(Amazon S3)

Page 22: How APIs are Changing Software Development

The Sum of the Two

Makes Interesting Things Happen

Page 23: How APIs are Changing Software Development

Software Development over Time

Software Before 1995 Software 1995 – 2010 Software 2010 -

Page 24: How APIs are Changing Software Development

Enables specialization, focus, much wider distribution

Page 25: How APIs are Changing Software Development

APIs enable componentization across organizational boundaries

Page 26: How APIs are Changing Software Development

I: New Type of Software Development

Page 27: How APIs are Changing Software Development

Software as Model-View-Controller

VIEW = FORM

MODEL = DATA

CONTROLLER = BUSINESS LOGIC

Model

View Controller

Page 28: How APIs are Changing Software Development

Now it can done at the company / organization level

Page 29: How APIs are Changing Software Development

Example “Models”

Model

Data Anywhere in any form

(copyrights / respective owners)

Page 30: How APIs are Changing Software Development

Example: Views

View

Many Delivery Channels

(copyrights / respective owners)

Page 31: How APIs are Changing Software Development

Example: Controllers

Controller

Many Delivery Channels

(copyrights / respective owners)

Page 32: How APIs are Changing Software Development

APIs Enable Separation & Focus

Model View Controller

Data Anywhere in any form

Many Delivery Channels

Third parties operating on data

Distributed Applications

Page 33: How APIs are Changing Software Development

Software + APIs allow Businesses to co-evolve

much faster

Page 34: How APIs are Changing Software Development

Fundamentally Different Model of Developing

Software

(MVC is only one model – the point is: componentization is possible)

Page 35: How APIs are Changing Software Development

II: But it’s extremely Hard

Page 36: How APIs are Changing Software Development

Downsides to Opening APIs…

• Security is key• Scalability needs to be

built in• It requires long term

support• New type of business

interaction

• Vendors can Help• In many cases some

of the work is already done

Page 37: How APIs are Changing Software Development

Downsides to using external APIs…

• Latency?• Availability?• Security?• SLAs?• Cost• Service Continuity?

• In most cases there are no other ways to solve the problem

• Tools are emerging

Page 38: How APIs are Changing Software Development

This is Distributed Systems Engineering

Page 39: How APIs are Changing Software Development

10 Hard Things About Building Distributed Systems

• Interface Definition & Consistency

• Latency• Slow or Dead?• Distributed State

Synchronization• Remote Clock Problems

• Error Detection• Change Management• Static & Dynamic

Testing • Code Validation /

Verification• Frame Problems

Page 40: How APIs are Changing Software Development

But Wait…

It’s even harder than that …

Page 41: How APIs are Changing Software Development

Distributed Across Organizational Boundaries

• No access to source code

• No knowledge of Server Environment

• Security and Access Permissions Everywhere

• Identity Problems

• Shared Semantics are much harder to achieve

• Unknown / Mismatched Scale Issues

• Danger of Much Wider Interdependencies –Frame problem is worse!)

Page 42: How APIs are Changing Software Development

Most of these problems are completely unaddressed

Need to be if we are to reach 100’s of thousands of APIs

Page 43: How APIs are Changing Software Development

Progress Today

R&D / Experimental

• Distributed Verification• Distributed Systems

Contracts• Semantic Web Ontologies• Service Descriptions?

Tools

• Neustar Webmetrics• Runscope & others• API-Hub• Swagger Tools• Pingdom et. al.

Lots of Interesting Problems to be Solved!

Page 44: How APIs are Changing Software Development

Strategies to Avoid Headaches

API Provider

• Publish Specifications• Handle Versioning Carefully• Provision for Scale & Rate

Limit• Code Libraries• Buffers, Queues, Webhooks

and Asychronous Responses• Multiple Data Centers

Tools

• Monitoring• Caching• Mocks for Testing• Buffers & Queues• Failover Services• Graceful Failure Modes • Assume Failure Will happen

Page 45: How APIs are Changing Software Development

These are a good Start

But the overall problem will get harder and harder

Page 46: How APIs are Changing Software Development

Conclusions

Page 47: How APIs are Changing Software Development

Take Away’s

1

2

The World will get Software & API EnabledRadical impact on the Software we write and what is possible

=>These new systems are complex and hard to build

The “API Economy” will be way more complex than today’s Web

Page 48: How APIs are Changing Software Development

I.e.

The “API Economy” as a global system will be way more complex than today’s Web

Page 49: How APIs are Changing Software Development

Keep Building!

[email protected]@njyx, @3scale

We make Awesome API Management Tools:http://www.3scale.net/