How APIs are Changing Software Development
-
Upload
3scale -
Category
Technology
-
view
7.805 -
download
0
description
Transcript of How APIs are Changing Software Development
![Page 1: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/1.jpg)
How APIs are changing Application Development
Steven Willmott 3scale Inc
@3scale - http://www.3scale.net
![Page 2: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/3.jpg)
San Francisco 23-25th Octoberhttp://www.apistrategyconference.com
![Page 4: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/4.jpg)
To the Content…
![Page 5: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/5.jpg)
“Software is Eating the World”
Marc Andreessen – WSJ / August 2011
![Page 6: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/6.jpg)
“APIs are Eating Software”
API Days San Francisco 2013
![Page 7: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/7.jpg)
Almost every major industry is becoming software driven
MusicRetail Video Telephony
Meaning:
…
![Page 8: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/9.jpg)
APIs are Eating Software
![Page 10: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/11.jpg)
Outside-In
More and More APIs are Proliferating
![Page 12: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/12.jpg)
APIs Make Software Remotely Addressable
![Page 13: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/14.jpg)
Software multiplies in value many fold if you can talk to it
![Page 15: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/15.jpg)
But, What about “Inside-Out”?
How are APIs Changing Application Development?
![Page 16: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/17.jpg)
Download & Add to Classpath
Became
Find and Integrate
![Page 18: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/18.jpg)
Speed (Time to Market)
e.g. + Devops Borat
e.g.(Top Mashup on
Progr Web)
![Page 19: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/19.jpg)
Richness / Functionality
e.g.
e.g.
![Page 20: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/20.jpg)
Offboarding
e.g.
e.g.
(Rich Photo EffectsFor Mobile by SDK)
(Monitoring System in the Cloud)
![Page 21: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/21.jpg)
Reliability
e.g.
e.g.
(Email by API)
(Amazon S3)
![Page 22: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/22.jpg)
The Sum of the Two
Makes Interesting Things Happen
![Page 23: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/23.jpg)
Software Development over Time
Software Before 1995 Software 1995 – 2010 Software 2010 -
![Page 24: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/24.jpg)
Enables specialization, focus, much wider distribution
![Page 25: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/25.jpg)
APIs enable componentization across organizational boundaries
![Page 26: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/26.jpg)
I: New Type of Software Development
![Page 27: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/27.jpg)
Software as Model-View-Controller
VIEW = FORM
MODEL = DATA
CONTROLLER = BUSINESS LOGIC
Model
View Controller
![Page 28: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/28.jpg)
Now it can done at the company / organization level
![Page 29: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/29.jpg)
Example “Models”
Model
Data Anywhere in any form
(copyrights / respective owners)
![Page 30: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/30.jpg)
Example: Views
View
Many Delivery Channels
(copyrights / respective owners)
![Page 31: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/31.jpg)
Example: Controllers
Controller
Many Delivery Channels
(copyrights / respective owners)
![Page 32: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/32.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/33.jpg)
Software + APIs allow Businesses to co-evolve
much faster
![Page 34: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/34.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/35.jpg)
II: But it’s extremely Hard
![Page 36: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/36.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/37.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/38.jpg)
This is Distributed Systems Engineering
![Page 39: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/39.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/40.jpg)
But Wait…
It’s even harder than that …
![Page 41: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/41.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/42.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/43.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/44.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/45.jpg)
These are a good Start
But the overall problem will get harder and harder
![Page 46: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/46.jpg)
Conclusions
![Page 47: How APIs are Changing Software Development](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/47.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/48.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022070313/554bb465b4c90594278b477c/html5/thumbnails/49.jpg)
Keep Building!
[email protected]@njyx, @3scale
We make Awesome API Management Tools:http://www.3scale.net/