45
API Zen For Developers Steven Willmott 3scale Inc @3scale - http://www.3scale.net

API Zen for Developers

  • Upload
    3scale

  • View
    1.118

  • Download
    5

Embed Size (px)

Citation preview

Page 1: API Zen for Developers

API Zen For Developers

Steven Willmott3scale Inc

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

Page 2: API Zen for Developers

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

me: @njyx on twitter

Powering 450 APIsBillions API Calls / Month

Page 3: API Zen for Developers

Chicago 24-26th Septemberhttp://www.apistrategyconference.com

Page 4: API Zen for Developers

To the Content…

Page 5: API Zen for Developers

“Software is Eating the World”

Marc Andreessen – WSJ / August 2011

Page 6: API Zen for Developers

“APIs are Eating Software”

API Days San Francisco 2013

Page 7: API Zen for Developers

Almost every major industry is becoming software driven

MusicRetail Video Telephony

Meaning:

Page 8: API Zen for Developers

Examples

Lytro: “Software Defined Cameras”

Philips Hue: “Software ControlledLighting”

Amazon: “Software Driven Retail”

Pixar: “Software powered animation”

Page 9: API Zen for Developers

APIs Are Changing the Way we Write Software

But also:

Page 10: API Zen for Developers

API Based App Development

How are APIs Changing Application Development?

Page 11: API Zen for Developers

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 12: API Zen for Developers

Download & Add to Classpath

Became

Find and Integrate

Page 13: API Zen for Developers

Speed (Time to Market)

e.g. + Devops Borat

e.g.(Top Mashup on

Progr Web)

Page 14: API Zen for Developers

Richness / Functionality

e.g.

e.g.

Page 15: API Zen for Developers

Offboarding

e.g.

e.g.

(Rich Photo EffectsFor Mobile by SDK)

(Monitoring System in the Cloud)

Page 16: API Zen for Developers

Reliability

e.g.

e.g.

(Email by API)

(Amazon S3)

Page 17: API Zen for Developers

Mobile & Non Mobile

Page 18: API Zen for Developers

Single Page Apps

Page 19: API Zen for Developers

Buddhist Principles

Page 20: API Zen for Developers

Four Noble Truths

1. To live means to suffer.

2. The origin of suffering is attachment.

3. The cessation of suffering is attainable.

4. The path to the cessation of suffering.

Page 21: API Zen for Developers

To live means to suffer

Human beings are not perfect. Likewise, the world inhabited by them is also

ridden with imperfections.

Page 22: API Zen for Developers

The origin of suffering is attachment

the attachment to the desire to have (craving) and the desire not to have

(aversion)

Page 23: API Zen for Developers

The cessation of suffering is attainable

This liberation from attachment and sorrow frees the mind of all troubles

and worries.

Page 24: API Zen for Developers

The path to the cessation of suffering

Lead a Balanced life by following the Eightfold path which is a 'gradual

path of self-improvement'

Page 25: API Zen for Developers

Four Noble Truths of (Modern) App Development

1. There will be suffering – APIs and Tools are imperfect, likewise the world created by them.

2. Suffering is attachment – Dependencies create pain, breakages, frustration, as do unmet expectations.

3. The cessation of suffering is attainable – liberation from hard dependencies, graceful failure, alternatives, .

4. The path to the cessation of suffering – Wisdom in what is going to happen, Good Behaviour , putting your efforts into the right things.

Page 26: API Zen for Developers

APIs Inside…

Page 27: API Zen for Developers

The Eightfold Path is Zen

Page 28: API Zen for Developers

The Eightfold Path

• The right view

• The right thought

• The right speech

• The right action

• The right Livelyhood

• The right Effort

• The right Mindfullness

• The right Concentration

}

}}

Wisdom

Ethical Conduct

Concentration

Page 29: API Zen for Developers

Back to the Real World

Recognize the opportunity and Chaos of API Powered APP Development

Page 30: API Zen for Developers

The Imperfect World

Software Before 1995 Software 1995 – 2010 Software 2010 -

Page 31: API Zen for Developers

APIs are NOT Like Libs…

They Change & Break

Page 32: API Zen for Developers

Beware of the Type of API & App

VIEW = FORM

MODEL = DATA

CONTROLLER = BUSINESS LOGIC

Model

View Controller

Page 33: API Zen for Developers

How Attached are you…?

Page 34: API Zen for Developers

To Live means to suffer

Page 35: API Zen for Developers

Apps Tend to be Complex

Page 36: API Zen for Developers

10 Hard Things About Attachment…

• 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 37: API Zen for Developers

But Wait…

It’s even harder than that …

Page 38: API Zen for Developers

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 39: API Zen for Developers

Most of these problems are completely unaddressed

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

Page 40: API Zen for Developers

Progress Today

R&D / Experimental

• Distributed Verification

• Distributed Systems Contracts

• Semantic Web Ontologies

• Service Descriptions?

Tools

• API Science, API Metrics

• APITools, Runscope

• API-Hub

• Swagger

• Pingdom et. al.

Lots of Interesting Problems to be Solved!

Page 41: API Zen for Developers

Stuff We Do

Make APIs Better…

• http://3scale.net

• Onboarding, Docs, Version Management, Communications, …

Help Developers…

• http://apitools.com

• Track & manipulate traffic, alert, cache, analyze, …

Page 42: API Zen for Developers

Strategies to Avoid Headaches

API Provider

• Publish Specifications

• Handle Versioning Carefully

• Provision for Scale & Rate Limit

• Code Libraries

• Buffers, Queues, Webhooksand Asychronous Responses

• Multiple Data Centers

Tools

• Monitoring

• Caching

• Mocks for Testing

• Buffers & Queues

• Failover Services

• Graceful Failure Modes

• Assume Failure Will happen

Page 43: API Zen for Developers

Conclusions

Page 44: API Zen for Developers

Take Away’s

1

2

API Driven Development is an Awesome new Frontier

But it’s incredibly hard if you get attached

=>Take a deep breath and find the Zen path to distributed systems..

Page 45: API Zen for Developers

Keep Building!

[email protected]

@njyx, @3scale

We make awesome API management tools:

http://www.3scale.net/