soa & apis: fearless lessons from the field

74
1 SOA and APIs: Fearless Lessons from the Field Mike Amundsen Principal API Architect @mamund

Upload: ca-api-management

Post on 20-Aug-2015

1.192 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: SOA & APIs: Fearless Lessons from the Field

1

SOA and APIs:

Fearless Lessons from the Field Mike Amundsen

Principal API Architect

@mamund

Page 2: SOA & APIs: Fearless Lessons from the Field

2

Fearless

Page 3: SOA & APIs: Fearless Lessons from the Field

3

Fearless

Page 4: SOA & APIs: Fearless Lessons from the Field

4

Fearless

Page 5: SOA & APIs: Fearless Lessons from the Field

5

Mike Amundsen

Architect, Developer, Presenter

Hypermedia Junkie

Principal API Architect for Layer 7

“Help people build great APIs for the Web”

Personal Mission

“Improve the quality and usability of information on the Web.”

Page 6: SOA & APIs: Fearless Lessons from the Field

6

THE CHALLENGE

Page 7: SOA & APIs: Fearless Lessons from the Field

7

More Devices

Page 8: SOA & APIs: Fearless Lessons from the Field

8

More Apps

Page 9: SOA & APIs: Fearless Lessons from the Field

9

More APIs

Page 10: SOA & APIs: Fearless Lessons from the Field

10

The Challenge

Mobility

Page 11: SOA & APIs: Fearless Lessons from the Field

11

The Challenge

Agility

Page 12: SOA & APIs: Fearless Lessons from the Field

12

The Challenge

Mobility = Agility

Page 13: SOA & APIs: Fearless Lessons from the Field

13

The Challenge

Increase Agility

Page 14: SOA & APIs: Fearless Lessons from the Field

14

The Challenge

Maintain Stability

Page 15: SOA & APIs: Fearless Lessons from the Field

15

Lessons from the field

Models and tools

REST and Hypermedia

Broad Experience

SOAP, CRUD, and Hypermedia

High-level View

The USE Paradigm

Page 16: SOA & APIs: Fearless Lessons from the Field

16

REST AND HYPERMEDIA

Page 17: SOA & APIs: Fearless Lessons from the Field

17

REST and Hypermedia

REST is an architectural model for

widely distributed systems

Page 18: SOA & APIs: Fearless Lessons from the Field

18

REST and Hypermedia - Space

http://www.flickr.com/photos/jram23/3088003105/

Page 19: SOA & APIs: Fearless Lessons from the Field

19

REST and Hypermedia - Time

http://www.flickr.com/photos/alancleaver/2661425133/

Page 20: SOA & APIs: Fearless Lessons from the Field

20

REST and Hypermedia - Model

http://www.flickr.com/photos/usnationalarchives/5476286211/

Page 21: SOA & APIs: Fearless Lessons from the Field

21

REST and Hypermedia - Tools

http://http://www.flickr.com/photos/36247316@N00/3108399560/

Page 22: SOA & APIs: Fearless Lessons from the Field

22

REST and Hypermedia

Hypermedia is a tool for

implementing remote, evolvable

systems

Page 23: SOA & APIs: Fearless Lessons from the Field

23

REST and Hypermedia - Space

http://www.flickr.com/photos/jram23/3088003105/

Page 24: SOA & APIs: Fearless Lessons from the Field

24

REST and Hypermedia - Time

http://www.flickr.com/photos/alancleaver/2661425133/

Page 25: SOA & APIs: Fearless Lessons from the Field

25

REST and Hypermedia – Evolvable

http://www.flickr.com/photos/isherwoodchris/5811756295/

Page 26: SOA & APIs: Fearless Lessons from the Field

26

REST and Hypermedia – Evolvable

http://http://www.flickr.com/photos/ecbiosheron/4139220163/

Page 27: SOA & APIs: Fearless Lessons from the Field

27

REST and Hypermedia – Evolvable

http://http://http://www.flickr.com/photos/nrg07/4735858552/

Page 28: SOA & APIs: Fearless Lessons from the Field

28

REST and Hypermedia – Real World

http://www.flickr.com/photos/smaku/233763545/

Page 29: SOA & APIs: Fearless Lessons from the Field

29

SOAP, CRUD, AND HYPERMEDIA

Page 30: SOA & APIs: Fearless Lessons from the Field

30

SOAP is for Components

http://www.flickr.com/photos/amberwalker/5755325926/

Page 31: SOA & APIs: Fearless Lessons from the Field

31

SOAP is for Components

Page 32: SOA & APIs: Fearless Lessons from the Field

32

SOAP is for Components

Strong on XML, Weak on HTTP

Page 33: SOA & APIs: Fearless Lessons from the Field

33

CRUD is for Objects

http://www.flickr.com/photos/topekalibrary/4294393624/

Page 34: SOA & APIs: Fearless Lessons from the Field

34

CRUD is for Objects

Page 35: SOA & APIs: Fearless Lessons from the Field

35

CRUD is for Objects

Strong on HTTP, Weak on Workflow

Page 36: SOA & APIs: Fearless Lessons from the Field

36

Hypermedia is for Messages

Page 37: SOA & APIs: Fearless Lessons from the Field

37

Hypermedia is for Messages

Page 38: SOA & APIs: Fearless Lessons from the Field

38

Hypermedia is for Messages

Strong on HTTP, Strong on Workflow

Page 39: SOA & APIs: Fearless Lessons from the Field

39

SOAP, CRUD, Hypermedia

Moving away from SOAP

Page 40: SOA & APIs: Fearless Lessons from the Field

40

SOAP, CRUD, Hypermedia

Implementing CRUD

Page 41: SOA & APIs: Fearless Lessons from the Field

41

SOAP, CRUD, Hypermedia

Heading toward Hypermedia

Page 42: SOA & APIs: Fearless Lessons from the Field

42

THE USE PARADIGM

Page 43: SOA & APIs: Fearless Lessons from the Field

43

Usable

Usability is the ease of use and learnability of

a human-made object.

Page 44: SOA & APIs: Fearless Lessons from the Field

44

Usable – Action Life Cycle

Page 45: SOA & APIs: Fearless Lessons from the Field

45

Usable – Focus on tasks

http://www.flickr.com/photos/somoamsterdam/4833837888/

Page 46: SOA & APIs: Fearless Lessons from the Field

46

Usable – Employ empirical measurement

Page 47: SOA & APIs: Fearless Lessons from the Field

47

Usable – Iterative design

http://www.flickr.com/photos/aajbutler/5448088057/

Page 48: SOA & APIs: Fearless Lessons from the Field

48

Usable

Focus

Page 49: SOA & APIs: Fearless Lessons from the Field

49

Usable

Measure

Page 50: SOA & APIs: Fearless Lessons from the Field

50

Usable

Iterate

Page 51: SOA & APIs: Fearless Lessons from the Field

51

Scalable

Scalability is the ability of a system, network,

or process, to handle a growing amount of

work in a capable manner.

Page 52: SOA & APIs: Fearless Lessons from the Field

52

Scalable – Out vs. Up

Page 53: SOA & APIs: Fearless Lessons from the Field

53

Scalable

http://www.flickr.com/photos/27976837@N00/4347462236/

Page 54: SOA & APIs: Fearless Lessons from the Field

54

Scalable – DevOps

http://www.flickr.com/photos/friendlydragon/3864150771/

Page 55: SOA & APIs: Fearless Lessons from the Field

55

Scalable – Where it counts

Page 56: SOA & APIs: Fearless Lessons from the Field

56

Scalable

Scale Out

Page 57: SOA & APIs: Fearless Lessons from the Field

57

Scalable

Automate

Page 58: SOA & APIs: Fearless Lessons from the Field

58

Scalable

Where it counts

Page 59: SOA & APIs: Fearless Lessons from the Field

59

Evolvable

Evolvability is defined as the capacity of a

system for adaptive change.

Page 60: SOA & APIs: Fearless Lessons from the Field

60

Evolvable

Page 61: SOA & APIs: Fearless Lessons from the Field

61

Evolvable (pandere – to stretch)

http://www.flickr.com/photos/kenjonbro/6277623578/

Page 62: SOA & APIs: Fearless Lessons from the Field

62

Evolvable (vertere – to turn)

http://www.flickr.com/photos/erdero/2274374743/

Page 63: SOA & APIs: Fearless Lessons from the Field

63

Evolvable

Versions “break”, extensions don’t.

Page 64: SOA & APIs: Fearless Lessons from the Field

64

SUMMARY

Page 65: SOA & APIs: Fearless Lessons from the Field

65

Summary - Challenge

Mobility

Agility

Stability

Page 66: SOA & APIs: Fearless Lessons from the Field

66

Summary – Models

http://www.flickr.com/photos/usnationalarchives/5476286211/

Page 67: SOA & APIs: Fearless Lessons from the Field

67

Summary – Tools

http://http://www.flickr.com/photos/36247316@N00/3108399560/

Page 68: SOA & APIs: Fearless Lessons from the Field

68

Summary – Components

http://http://www.flickr.com/photos/36247316@N00/3108399560/

Page 69: SOA & APIs: Fearless Lessons from the Field

69

Summary – Objects

http://www.flickr.com/photos/topekalibrary/4294393624/

Page 70: SOA & APIs: Fearless Lessons from the Field

70

Summary – Messages

Page 71: SOA & APIs: Fearless Lessons from the Field

71

Summary – Usable

Page 72: SOA & APIs: Fearless Lessons from the Field

72

Summary – Scalable

Page 73: SOA & APIs: Fearless Lessons from the Field

73

Summary – Evolvable

Page 74: SOA & APIs: Fearless Lessons from the Field

74

SOA and APIs:

Fearless Lessons from the Field Mike Amundsen

Principal API Architect

@mamund