Centralized vs. Decentralized Service Oriented Architecture Michael - - PowerPoint PPT Presentation

centralized vs decentralized service oriented architecture
SMART_READER_LITE
LIVE PREVIEW

Centralized vs. Decentralized Service Oriented Architecture Michael - - PowerPoint PPT Presentation

Centralized vs. Decentralized Service Oriented Architecture Michael Keeling George Fairbanks IBM Google @michaelkeeling @GHFairbanks Agenda Modern Service Oriented Architecture Governance Concerns Discussion Wrap-up


slide-1
SLIDE 1

Centralized vs. Decentralized Service Oriented Architecture

George Fairbanks Google @GHFairbanks Michael Keeling IBM @michaelkeeling

slide-2
SLIDE 2

Agenda

  • “Modern” Service Oriented Architecture
  • Governance Concerns
  • Discussion
  • Wrap-up

2

slide-3
SLIDE 3

MODERN SOA

(Let’s make sure we’re all talking about the same things)

3

slide-4
SLIDE 4

What is Modern SOA?

Microservices!

4

slide-5
SLIDE 5

What are microservices? A loosely coupled SOA with bounded contexts.

via Adrian Cockcroft

5

slide-6
SLIDE 6

What are microservices? A loosely coupled SOA with bounded contexts.

Services are independently updateable

via Adrian Cockcroft

6

slide-7
SLIDE 7

What are microservices? A loosely coupled SOA with bounded contexts.

Services’ models are explicitly defined and apply within a specific context.

via Adrian Cockcroft

Services are independently updateable

7

slide-8
SLIDE 8

Loosely Coupled SOA

  • Communication via messages
  • Independently deployable, updateable units
  • Typically use REST and HTTP

8

slide-9
SLIDE 9

Bounded Context

  • Service is internally

consistent within context of a clearly defined boundary

  • Domain boundary as API
  • Inside the boundary is 100%

private to external services

9

slide-10
SLIDE 10

Bounded Context

http://martinfowler.com/bliki/BoundedContext.htm l

10

slide-11
SLIDE 11

How Big is a Microservice?

  • Size a function of
  • Team maturity, cost, desired agility, domain
  • Cockroft’s Rule of Thumb
  • Can complete a service in two weeks or less
  • Completed = coded, tested, and in production
  • Fits in “one or two developers’ heads”

11

slide-12
SLIDE 12

More on Microservices…

16

Paulo Merson, CMU

slide-13
SLIDE 13

MODERN SOA GOVERNANCE

(There’s more than one way to skin a cat.)

17

slide-14
SLIDE 14

18

https://twitter.com/philip_pfo/status/726173974376386560

slide-15
SLIDE 15

19

https://twitter.com/philip_pfo/status/726173974376386560

slide-16
SLIDE 16

Twitter

via Adrian Cockcroft

slide-17
SLIDE 17

Hail O

via Adrian Cockcroft

slide-18
SLIDE 18

Gilt

via Adrian Cockcroft

slide-19
SLIDE 19

23

“Microservices Architecture”

slide-20
SLIDE 20

24

“Microservices Architecture” A normal software architect’s reaction

slide-21
SLIDE 21

25

slide-22
SLIDE 22

Load Balancer API Proxy “Business” (microservices) Data Access Data Store (clustered) This is not the only pattern. Point:

  • 1. There are patterns.
  • 2. It’s useful to think at

different granularities of abstraction http://github.com/adrianco/spigo

slide-23
SLIDE 23

27

  • 1. to officially control and lead (a group of

people)

  • 2. to control the way that (something) is done
  • 3. to control or guide the actions of

(someone or something)

From Merriam Webster

slide-24
SLIDE 24

What is SOA Governance? The process of establishing the chain of responsibilities and communications, policies, measurements, and control mechanisms that allow people to carry

  • ut their responsibilities in SOA projects

28

  • B. Woolf, “Introduction to SOA Governance,” June 13, 2006.

http://www.ibm.com/developerworks/library/ar-servgov/index.html

slide-25
SLIDE 25

What is SOA Governance? The process of establishing the chain of responsibilities and communications, policies, measurements, and control mechanisms that allow people to carry

  • ut their responsibilities in SOA projects

29

  • B. Woolf, “Introduction to SOA Governance,” June 13, 2006.

http://www.ibm.com/developerworks/library/ar-servgov/index.html

slide-26
SLIDE 26

What is SOA Governance? The process of establishing the chain of responsibilities and communications, policies, measurements, and control mechanisms that allow people to carry

  • ut their responsibilities in SOA projects.

30

  • B. Woolf, “Introduction to SOA Governance,” June 13, 2006.

http://www.ibm.com/developerworks/library/ar-servgov/index.html

slide-27
SLIDE 27

Governance Promotes Desired Qualities

  • Security
  • Availability
  • Reusability
  • Agility
  • Satisfy service level agreements
  • Decrease implementation costs

31

  • Consistency
  • Predictability
  • Performance
  • Maintainability
slide-28
SLIDE 28

How fast can we go?

32

Number of Services Time / Cost to Deploy a Feature

slide-29
SLIDE 29

How fast can we go?

33

Number of Services Time / Cost to Deploy a Feature

slide-30
SLIDE 30

How fast can we go?

34

Number of Services Time / Cost to Deploy a Feature

slide-31
SLIDE 31

How fast can we go?

35

Number of Services Time / Cost to Deploy a Feature

slide-32
SLIDE 32

How fast can we go?

36

Number of Services Time / Cost to Deploy a Feature

The right governance approach:

  • Minimize coordination costs
  • Reduce system contention
slide-33
SLIDE 33

37

What knobs can we tune with governance?

slide-34
SLIDE 34

Process Culture

Key Enablers for Success

38

Tools

Delivery Speed Autonomy Responsibility Ownership Automation Quality Developer Led Self-service Low delivery friction Avoid accidental complexity

https://github.com/michaelkeeling/ SATURN2015-Microservices-Workshop

slide-35
SLIDE 35

Key Technology Concerns

39

Common Tooling Configuration Service Discovery Routing Observability Data Storage Operations Development

slide-36
SLIDE 36

Different choices, different properties

40

Common Tooling Animator Configuration Archius Service Discovery Eureka, Prana Routing Zuul, Netty, Ribbon Observability Hystrix, Pytheas Data Storage MemcacheD, Cassandra Operations Manual orchestration with Asgard, deployed on AWS Development JVM, Docker

slide-37
SLIDE 37

DISCUSSION

(The show you came here to see.)

41

slide-38
SLIDE 38

What kind of governance is needed to succeed with SOA?

42

slide-39
SLIDE 39

What approaches to governance would Alexander Hamilton and Thomas Jefferson take in a modern SOA system?

43

slide-40
SLIDE 40

Thomas Jefferson

US “Founding Father” Declaration of Independence Author Third president of the USA Louisiana Purchase VA Statute of Religious Freedom Inventor, philosopher, writer, archeologist, architect, …

49

slide-41
SLIDE 41

US “Founding Father” Federalist Papers author First Secretary of Treasury Established National Bank Father of the US Coast Guard First political sex scandal in US Killed by Aaron Burr in a duel

Alexander Hamilton

50

slide-42
SLIDE 42

Thomas Jefferson Alexander Hamilton

In the Ultimate SOA Showdown!

51

slide-43
SLIDE 43

Jefferson: George Fairbanks

Weaker SOA governance Pro developer choice Trust developers to have the discipline to do what is right “The most power should rest in the hands of those most affected by it.”

52

slide-44
SLIDE 44

Strong SOA Governance General distrust of developers’ abilities to make the right choice Seeks stability over general liberty (but not to the point of monarchy) “Liberty and freedom are so essential they cannot be left to the mob to decide.”

Hamilton: Michael Keeling

53

slide-45
SLIDE 45

54

You!

slide-46
SLIDE 46

Topics

  • Technology Choices
  • Availability and Reliability
  • Configuration Management
  • Service Reuse
  • Quality

55

slide-47
SLIDE 47

TECHNOLOGY CHOICES

56

slide-48
SLIDE 48

Technology Choices: Key concerns

Do you have a standard or let everything grow

  • rganically? How important is the choice? Who makes

the choices and when?

  • Runtimes and frameworks
  • Protocols
  • Programming languages
  • Interface definitions
  • Communication mechanisms

57

slide-49
SLIDE 49

AVAILABILITY AND RELIABILITY

58

slide-50
SLIDE 50

Availability and Reliability: Key Concerns

Who is responsible for promoting key qualities across the whole system?

  • Development practices
  • Defect prevention
  • Build pipelines
  • Deployment and rollback
  • Monitoring and detection

59

slide-51
SLIDE 51

CONFIGURATION MANAGEMENT

60

slide-52
SLIDE 52

Configuration Management: Key Concerns

What is the effect of service version changes? How do you maintain stability over time?

  • Version control
  • Versioning
  • Upgrades and backwards compatibility
  • Public vs. “Private”

61

slide-53
SLIDE 53

SERVICE REUSE

62

slide-54
SLIDE 54

Reuse: Key Concerns

A promise of SOA is service reuse. How can this be achieved vs lots of redundant and incompatible services?

  • Discovery
  • Packaging
  • Communication
  • Implementation responsibility
  • Awareness

63

slide-55
SLIDE 55

QUALITY

66

slide-56
SLIDE 56

Quality: Key Concerns

Is there a shared dev environment? Who ensures that it’s any good? What if it has junk data left behind from half-broken code? Who is responsible if an end-to-end test breaks?

  • Dev vs. Stage vs. Production
  • Who is responsible for quality?
  • API contracts and design standards
  • Unit vs. functional vs. end-to-end testing
  • Properties testing, monitoring, prediction

67

slide-57
SLIDE 57

CONCLUSIONS AND WRAP-UP

70

slide-58
SLIDE 58

71

Reduce contention?

  • r

Reduce coordination?

slide-59
SLIDE 59

Thomas Jefferson Alexander Hamilton

72

Focus on Contention Focus on Coordination

slide-60
SLIDE 60

73

Number of Services Time / Cost to Deploy a Feature

slide-61
SLIDE 61

74

Number of Services Time / Cost to Deploy a Feature

slide-62
SLIDE 62

75

Number of Services Time / Cost to Deploy a Feature

slide-63
SLIDE 63

76

Number of Services Time / Cost to Deploy a Feature

slide-64
SLIDE 64

Thank you!

Coming soon to the Pragmatic Bookshelf! Filled with hands-on exercises! A practical guide to software architecture design! Check out Michael’s book…

Michael Keeling @michaelkeeling neverletdown.net

http://bit.ly/swarch-design-book

George Fairbanks @GHFairbanks georgefairbanks.com