microservices, apis and the @mamund autonomous web …microservices for functionality apis for...

90
Microservices, APIs and the Autonomous Web Mike Amundsen API Academy @mamund

Upload: others

Post on 22-May-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Microservices, APIs and the Autonomous Web

Mike AmundsenAPI Academy

@mamund

Page 2: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 3: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

apiacademy.co

Page 4: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

g.mamund.com/msabook

Page 5: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

A Look Ahead

● Programming the Network● Microservices● APIs● Autonomy● The Next Big Thing

Page 6: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

A Force to Reckon With

Page 7: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

2000

Page 8: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 9: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 10: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 11: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"REST emphasizes scalability of component interactions,

generality of interfaces,independent deployment of

components, and intermediary components."

-- Roy Fielding, 2000

Page 12: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 13: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 14: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 15: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"Salesforce.com is the first solution that truly leverages

the Internet to offer the functionality of enterprise class software at a mere

fraction of the cost."

-- Marc Benioff, 2000

Page 16: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Software-as-a-Service (SaaS)

Page 17: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"One of the most highly valued American cloud

computing companies with a market cap above $90

billion."

-- Wikipedia, 2018

Page 18: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

2006

Page 19: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 20: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

MuleSoft, Inc. is a software company that

provides integration software for connecting

applications, data and devices.

-- Wikipedia Ross Mason

Page 21: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

MULE opened NYSE at $24.25, sold 13 million

shares to raise up to $221 million.

-- MarketWatch, March 2017

Page 22: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Platform-as-a-Service (PaaS)

Page 23: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"Mulesoft … was acquired by Salesforce.com Inc. in a $6.5

billion deal."

-- Wall Street Journal, May 2018

Page 24: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 25: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Programming the Network

Page 26: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"Data on the Inside vs. Data on the Outside, Helland (2005) http://cidrdb.org/cidr2005/papers/P12.pdf

"There is no simultaneity at a distance."

-- Pat Helland (2005)

Programming the Network

Pat Helland

Page 27: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Programming the Network

● Sending Data Packets● Establishing a Network of Machines● Creating Solutions on the Network

Page 28: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 29: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"Be conservative in what you send, be liberal in what

you accept."

-- Robustness Principle

Jon Postel

TCP/IP : Packets

Page 30: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 31: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"HTTP is an application protocol for distributed,

collaborative, and hypermedia information

systems."

-- Wikipedia Tim Berners-Lee

HTTP: Messages

Page 32: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 33: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"HTML is the standard markup language for

creating web pages and web applications. "

-- WikipediaRobert Cailliau

HTML: Solutions

Page 34: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Three Levels of System Design

Page 35: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Three Levels of System Design

● Functionality● Intentionality● Autonomy

Page 36: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 37: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Loosely-coupled componentsrunning in a

Resilient, engineered system

Functionality : Microservices

Page 38: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

“Bugs will happen. They cannot be eliminated, so they

must be survived instead.”

-- Michael T. Nygard

Functionality : Microservices

Page 39: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 40: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Nygard Stability Patterns

● Timeout● Circuit Breaker● Bulkhead● Steady State● Fail Fast● Handshaking

● Caching : A capacity pattern referenced here, too

Page 41: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 42: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

APIabbreviation1. application programming interface

Page 43: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 44: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

APIs allow us to unlock hidden business value

▪Create New Applications▪Identify New Revenue Streams▪Initiate New Businesses

Page 45: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"The sign of a well-designed object is

when people who use it can do things with it that

the designer never imagined."

-- Donald Norman

Page 46: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 47: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 48: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Patterns for Autonomous APIsFour Design PatternsFour Basic PrinciplesFour Shared Agreements

Page 49: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Four Shared Agreements

Page 50: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 51: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 52: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Use RelatedServices SHOULD return a RELATED LINK that responds with ALL the possible actions for this context.

Page 53: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 54: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 55: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Use RelatedWhat problem does this solve?

Machines can now “look up” the available affordances.

Page 56: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 57: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 58: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Use NavigationServices SHOULD provide "next/previous" LINK to handle multi-step workflow with "cancel", "restart", & "done."

Page 59: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 60: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Use NavigationWhat problem does this solve?

Machines can now navigate through a long series of steps safely.

Page 61: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 62: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 63: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Partial SubmitServices SHOULD accept partially filled-in FORM and return a new FORM with the remaining fields.

Page 64: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 65: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Partial SubmitWhat problem does this solve?

Machines can now interact in small parts and not always be perfect.

Page 66: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 67: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 68: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 69: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

State WatchServices SHOULD allow clients to subscribe to WATCH VALUES so that clients can determine "done."

Page 70: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 71: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Use State WatchWhat problem does this solve?

Machines can now set their own goals and act accordingly.

Page 72: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Monetizing the Future

Page 73: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 74: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 75: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Closed System Focus

● Focus on what/who you can control● Create APIs that express your business● Build apps that understand your APIs (business)● Collect Customers and Profits

Page 76: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Most companies are focused on monetizing their own APIs

Page 77: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 78: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Open System Focus

● Focus on what you can offer● Create APIs that express your intentionality● Build apps that have autonomy● Collect Customers and Profits

Page 79: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

The next companies will focus on monetizing other people's APIs

Page 80: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming
Page 81: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

So...

Page 82: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Looking to the Future...

● Focus on Programming the Network● Microservices for Functionality● APIs for Intentionality● Patterns for Autonomy● Aim to Monetize Other People's APIs

Page 83: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Focus on programming the network

Page 84: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Build Microservices for Functionality

Loosely-coupled componentsrunning in a

Resilient, engineered system

Page 85: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Create APIs for Intentionality

Page 86: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Apply Patterns for Autonomy

Page 87: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Aim to monetize other people's APIs

Page 88: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

There's lots of opportunity ahead of us...

Page 89: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

"The Web as I envisaged it, we have not seen it yet. The future is still so much bigger

than the past."

-- Tim Berners-Lee

Page 90: Microservices, APIs and the @mamund Autonomous Web …Microservices for Functionality APIs for Intentionality Patterns for Autonomy Aim to Monetize Other People's APIs. Focus on programming

Microservices, APIs and the Autonomous Web

Mike AmundsenAPI Academy

@mamund

http://g.mamund.com/2018-05-qconsp