BUILDING SYSTEMS THAT PIVOT Sam Newman Zhamak Dehghani @zhamakd - - PowerPoint PPT Presentation

building systems that pivot
SMART_READER_LITE
LIVE PREVIEW

BUILDING SYSTEMS THAT PIVOT Sam Newman Zhamak Dehghani @zhamakd - - PowerPoint PPT Presentation

BUILDING SYSTEMS THAT PIVOT Sam Newman Zhamak Dehghani @zhamakd @samnewman DO YOU HAVE AN ARCHITECTURE PROBLEM? < 30% DO YOU HAVE AN ARCHITECTURE PROBLEM? Overhead of releasing a large software < 30% DO YOU HAVE AN ARCHITECTURE


slide-1
SLIDE 1

BUILDING SYSTEMS THAT PIVOT

Zhamak Dehghani @zhamakd Sam Newman ¡ @samnewman

slide-2
SLIDE 2

DO YOU HAVE AN ARCHITECTURE PROBLEM?

< 30%

slide-3
SLIDE 3

DO YOU HAVE AN ARCHITECTURE PROBLEM?

< 30%

Overhead of releasing a large software

slide-4
SLIDE 4

DO YOU HAVE AN ARCHITECTURE PROBLEM?

< 30%

Large software release Infrequent releases when orchestrating many dependent teams

slide-5
SLIDE 5

DO YOU HAVE AN ARCHITECTURE PROBLEM?

< 30%

Large software release Multiple teams

  • rchestration

High risk release with untested dependencies

slide-6
SLIDE 6

DO YOU HAVE AN ARCHITECTURE PROBLEM?

< 30%

Large software release Multiple teams

  • rchestration

Untested system dependencies

ARCHITECTURE PROBLEM!

slide-7
SLIDE 7

A LONG AND BROKEN DIALOGUE

< 30%

slide-8
SLIDE 8

A LONG AND BROKEN DIALOGUE

< 30%

>50%

6 Months

slide-9
SLIDE 9

A LONG AND BROKEN DIALOGUE

< 30%

>50% <30%

6 Months

slide-10
SLIDE 10

ELEMENTS OF ARCHITECTURE

Integration

Off-the-shelf Bespoke Off-the-shelf Bespoke

Integration Integration Integration

  • What is Microservices Architecture
  • benefits ¡
  • How to implement a Microservices architecture ¡
  • How to operate a Microservices architecture

AGENDA

slide-11
SLIDE 11

CONTINUOUS DELIVERY AS AN ENABLER

slide-12
SLIDE 12

CONTINUOUS DELIVERY AS AN ENABLER

  • automated build
slide-13
SLIDE 13

CONTINUOUS DELIVERY AS AN ENABLER

  • automated build
  • automated deployment
slide-14
SLIDE 14

CONTINUOUS DELIVERY AS AN ENABLER

  • automated build
  • automated deployment
  • automated environment provisioning
slide-15
SLIDE 15

CONTINUOUS DELIVERY AS AN ENABLER

  • automated build
  • automated deployment
  • automated environment provisioning
  • automated testing
slide-16
SLIDE 16

CONTINUOUS DELIVERY AS AN ENABLER

  • automated build
  • automated deployment
  • automated environment provisioning
  • automated testing

S P E E D O F D E L I V E R Y C D M AT U R I T Y L E V E L

Threshold without changing architecture

slide-17
SLIDE 17

ARCHITECTURE

slide-18
SLIDE 18

MONOLITHIC SYSTEM

slide-19
SLIDE 19

MONOLITHIC SYSTEM

slide-20
SLIDE 20

User Interface Channels ¡ Application Business Logic & Rules Middleware ¡ Services platform Database Systems of Record

LAYERED/TIERED ARCHITECTURE

slide-21
SLIDE 21

User Interface Channels ¡ Application Business Logic & Rules Middleware ¡ Services platform Database Systems of Record

LAYERED/TIERED ARCHITECTURE

slide-22
SLIDE 22

CHALLENGES OF THE TIERED ARCHITECTURE

slide-23
SLIDE 23

CHALLENGES OF THE TIERED ARCHITECTURE

Compromised quality to satisfy the user

slide-24
SLIDE 24

CHALLENGES OF THE TIERED ARCHITECTURE

Compromised quality to satisfy the user

slide-25
SLIDE 25

CHALLENGES OF THE TIERED ARCHITECTURE

Compromised quality to satisfy the user

slide-26
SLIDE 26

CHALLENGES OF THE TIERED ARCHITECTURE

Compromised quality to satisfy the user Longer release cycle

slide-27
SLIDE 27

FINE-GRAINED ARCHITECTURE

slide-28
SLIDE 28

Broken down based

  • n vertical

business functions

FINE-GRAINED ARCHITECTURE

slide-29
SLIDE 29

Technology layers are encapsulated Inside each service

FINE-GRAINED ARCHITECTURE

slide-30
SLIDE 30

A THOUGHT EXPERIMENT

Integration Off-the-shelf

MICRO SERVICES

slide-31
SLIDE 31

A THOUGHT EXPERIMENT

Integration Off-the-shelf

MICRO SERVICES

  • Independently releasable
  • Business capability
  • Language agnostic API
slide-32
SLIDE 32

A THOUGHT EXPERIMENT

Integration Off-the-shelf

MICRO SERVICES

  • Independently releasable
  • Business capability
  • Language agnostic API
  • Small
  • 100s, not 1000s
slide-33
SLIDE 33
slide-34
SLIDE 34

AUTONOMY

slide-35
SLIDE 35

AUTONOMY

slide-36
SLIDE 36

ABSORBS TECHNOLOGY FASTER

.NET Clojure Java

[SQL Database] [Graph Database] [Document Storage]

slide-37
SLIDE 37

COMPOSE-ABILITY

slide-38
SLIDE 38

COMPOSE-ABILITY

slide-39
SLIDE 39

COMPOSE-ABILITY

slide-40
SLIDE 40

COMPOSE-ABILITY

slide-41
SLIDE 41

COMPOSE-ABILITY REPLACABILITY

slide-42
SLIDE 42

ELEMENTS OF ARCHITECTURE

Integration

Off-the-shelf Bespoke Off-the-shelf Bespoke

Integration Integration Integration

HOW TO IMPLEMENT MICROSERVICES

slide-43
SLIDE 43

BOUNDARIES

slide-44
SLIDE 44

SPLITTING

slide-45
SLIDE 45

SPLITTING

Speed of change

slide-46
SLIDE 46

SPLITTING Security

Speed of change

slide-47
SLIDE 47

SPLITTING Security

Speed of change Team Structure

slide-48
SLIDE 48

CAN I RELEASE THEM SEPARATELY?

slide-49
SLIDE 49

COUPLING THROUGH DATABASE

CUSTOMER ORDERS

slide-50
SLIDE 50

COUPLING THROUGH DATABASE

CUSTOMER ORDERS

slide-51
SLIDE 51

COUPLING THROUGH DATABASE

CUSTOMER ORDERS

slide-52
SLIDE 52

COUPLING THROUGH ENTERPRISE SERVICE BUS

Smart & Complex Integration System

slide-53
SLIDE 53

COUPLING THROUGH ENTERPRISE SERVICE BUS

slide-54
SLIDE 54

MICROSERVICES INTEGRATION

slide-55
SLIDE 55

Simple & Dumb ¡ Integration

Programming language agnostic ¡ Open standards ¡ HTTP/SON

Smart Service & ¡ Endpoint

MICROSERVICES INTEGRATION

slide-56
SLIDE 56

CUSTOMER ORDERS HOW TO OPERATE MICROSERVICES

slide-57
SLIDE 57

CUSTOMER ORDERS HOW TO OPERATE MICROSERVICES

WHAT ABOUT SOA?

slide-58
SLIDE 58

CUSTOMER ORDERS HOW TO OPERATE MICROSERVICES

slide-59
SLIDE 59

CUSTOMER ORDERS HOW TO OPERATE MICROSERVICES

OR OSGI?

slide-60
SLIDE 60
slide-61
SLIDE 61

HOW TO OPERATE MICROSERVICES

slide-62
SLIDE 62

AUTOMATE! ¡

AUTOMATE! ¡

AUTOMATE!

slide-63
SLIDE 63

AUTOMATION

slide-64
SLIDE 64

AUTOMATION

Build Test

slide-65
SLIDE 65

AUTOMATION

Build Test Integration

slide-66
SLIDE 66

AUTOMATION

Build Test Integration Acceptance

slide-67
SLIDE 67

AUTOMATION

Build Test Integration Acceptance Production

slide-68
SLIDE 68

MICROSERVICES AUTOMATION

Build Test Integration Acceptance Production

slide-69
SLIDE 69

MICROSERVICES AUTOMATION

Build Test Integration Acceptance Production

slide-70
SLIDE 70

CONSUMER-DRIVEN CONTRACTS

Consumer Provider

Purchase Confirm. Email Purchase Service

slide-71
SLIDE 71

CONSUMER-DRIVEN CONTRACTS

Consumer Provider

Purchase Confirm. Email Purchase Service Purchase Service API Test Purchase Service Mock

slide-72
SLIDE 72

CONSUMER-DRIVEN CONTRACTS

Consumer Provider

Purchase Confirm. Email Purchase Service Purchase Service API Test Purchase Service Mock

Consumer contract tests

slide-73
SLIDE 73

MICROSERVICES’ PATH TO PRODUCTION

Build Test Acceptance Test Consumer Test Production

slide-74
SLIDE 74

MICROSERVICES’ PATH TO PRODUCTION

Build Test Acceptance Test Consumer Test Production

slide-75
SLIDE 75

MICROSERVICES’ PATH TO PRODUCTION

Build Test Acceptance Test Consumer Test Production

slide-76
SLIDE 76

MICROSERVICES’ PATH TO PRODUCTION

Build Test Acceptance Test Consumer Test Production

slide-77
SLIDE 77

MONITORING

slide-78
SLIDE 78

MONITORING STATUS

  • Up?
slide-79
SLIDE 79

MONITORING STATUS

  • Up?
  • Down?
slide-80
SLIDE 80

MONITORING STATUS

  • Up?
  • Down?

STATUS ¡

  • All up?
slide-81
SLIDE 81

MONITORING STATUS

  • Up?
  • Down?

STATUS ¡

  • All up?
  • All down?
slide-82
SLIDE 82

MONITORING STATUS

  • Up?
  • Down?

STATUS ¡

  • All up?
  • All down?
  • Mostly up?
slide-83
SLIDE 83

MONITORING STATUS

  • Up?
  • Down?

STATUS ¡

  • All up?
  • All down?
  • Mostly up?
  • Up apart from 1?
slide-84
SLIDE 84

MONITORING STATUS

  • Up?
  • Down?

STATUS ¡

  • All up?
  • All down?
  • Mostly up?
  • Up apart from 1?
  • All of the important bits are up? ¡
slide-85
SLIDE 85

AMAZON PRODUCT PAGE

slide-86
SLIDE 86

AMAZON PRODUCT PAGE

slide-87
SLIDE 87

AMAZON PRODUCT PAGE DOESN’T APPEAR… DO WE CARE?

slide-88
SLIDE 88

Simple & Dumb ¡ Infrastructure

SUMMARY

slide-89
SLIDE 89

RECOMMENDATIONS

slide-90
SLIDE 90

RECOMMENDATIONS

  • Build independently releasable microservices

– align microservice with business capability

slide-91
SLIDE 91

RECOMMENDATIONS

  • Build independently releasable microservices

– align microservice with business capability

  • Integrate microservices with

– dumb, open language agnostic – outside database

slide-92
SLIDE 92

RECOMMENDATIONS

  • Build independently releasable microservices

– align microservice with business capability

  • Integrate microservices with

– dumb, open language agnostic – outside database

  • Operate microservices architecture by

– decentralizing and automating all aspects of build, test and

deployment

slide-93
SLIDE 93

RECOMMENDATIONS

  • Build independently releasable microservices

– align microservice with business capability

  • Integrate microservices with

– dumb, open language agnostic – outside database

  • Operate microservices architecture by

– decentralizing and automating all aspects of build, test and

deployment

slide-94
SLIDE 94

CONCLUSION

slide-95
SLIDE 95
slide-96
SLIDE 96
slide-97
SLIDE 97

THANK ¡YOU

Zhamak Dehghani zdehghan@thoughtworks.com @zhamakd

  • Sam Newman

snewman@thoughtworks.com @samnewman