Nine Ways To Fail at Cloud Native

A presentation at InfoQ Live in August 2021 in by Holly Cummins

Slide 1

Slide 1

9 ways to fail at cloud native Holly Cummins IBM @holly_cummins

Slide 2

Slide 2

my job is helping organisations take advantage of the cloud these are my scary stories @holly_cummins #IBM

Slide 3

Slide 3

fail the muddy goal

Slide 4

Slide 4

what problem are we trying to solve? #IBM @holly_cummins

Slide 5

Slide 5

my CV looks dull… time to add containers to our stack! (this is not a good reason to go cloud native) #IBM @holly_cummins

Slide 6

Slide 6

surely no one would … #IBM @holly_cummins

Slide 7

Slide 7

surely no one would … #IBM @holly_cummins

Slide 8

Slide 8

surely no one would … #IBM @holly_cummins oh.

Slide 9

Slide 9

why is the cloud only saving us money, Alice? #IBM @holly_cummins

Slide 10

Slide 10

why are there no microservices in this cloud native app Bob? #IBM @holly_cummins

Slide 11

Slide 11

fail microservices envy

Slide 12

Slide 12

microservices are not the goal #IBM @holly_cummins

Slide 13

Slide 13

microservices are not the goal they are the means #IBM @holly_cummins

Slide 14

Slide 14

microservices are not the goal they means theyare arethe a means #IBM @holly_cummins

Slide 15

Slide 15

containers are a good base @holly_cummins #IBM

Slide 16

Slide 16

it’s not a competition to see how many you can have containers are a good base @holly_cummins #IBM

Slide 17

Slide 17

“we’re going too slowly. we need to get rid of COBOL and make microservices!” #IBM @holly_cummins

Slide 18

Slide 18

“we’re going too slowly. we need to get rid of COBOL and make microservices!” “… but our release board only meets twice a year.” #IBM @holly_cummins

Slide 19

Slide 19

distributed monolith #IBM @holly_cummins

Slide 20

Slide 20

distributed monolith but without compile-time checking … or guaranteed function execution #IBM @holly_cummins

Slide 21

Slide 21

fail cloudnative spaghetti

Slide 22

Slide 22

“every time we change one microservice, another breaks” #IBM @holly_cummins

Slide 23

Slide 23

distributed != decoupled @holly_cummins #IBM

Slide 24

Slide 24

“each of our microservices has duplicated the same object model … with twenty classes and seventy elds” #IBM fi @holly_cummins

Slide 25

Slide 25

#IBM @holly_cummins

Slide 26

Slide 26

mars climate explorer #IBM @holly_cummins

Slide 27

Slide 27

Courtesy NASA/ JPL-Caltech #IBM @holly_cummins

Slide 28

Slide 28

Slide 29

Slide 29

Slide 30

Slide 30

Slide 31

Slide 31

metric units

Slide 32

Slide 32

metric units imperial units

Slide 33

Slide 33

metric units imperial units distributing did not help

Slide 34

Slide 34

microservices need consumer-driven contract tests @holly_cummins #IBM

Slide 35

Slide 35

fail the ‘someday’ automation

Slide 36

Slide 36

“our tests aren’t automated” @holly_cummins #IBM

Slide 37

Slide 37

“we don’t know if our code works” @holly_cummins #IBM

Slide 38

Slide 38

fail the not-actuallycontinuous continuous integration and continuous deployment

Slide 39

Slide 39

“we have a CI/CD” #IBM @holly_cummins

Slide 40

Slide 40

CI/CD is something you do not a tool you buy #IBM @holly_cummins

Slide 41

Slide 41

“i’ll merge my branch into our CI next week” #IBM @holly_cummins

Slide 42

Slide 42

“CI/CD … CI/CD … CI/CD … we release every six months … CI/CD …. ” #IBM @holly_cummins

Slide 43

Slide 43

continuous. I do not think that word means what you think it means. #IBM @holly_cummins

Slide 44

Slide 44

“we can’t actually release this.” #IBM @holly_cummins

Slide 45

Slide 45

“we can’t release this microservice… we deploy all our microservices at the same time.” #IBM @holly_cummins

Slide 46

Slide 46

deferred wiring #IBM @holly_cummins

Slide 47

Slide 47

feature flags #IBM @holly_cummins

Slide 48

Slide 48

A/B testing canary deploys #IBM @holly_cummins

Slide 49

Slide 49

fail the lockeddown totally rigid inflexible un-cloudy cloud

Slide 50

Slide 50

“this provisioning software is broken” #IBM @holly_cummins

Slide 51

Slide 51

10 minute provision-time what we sold #IBM “this provisioning software is broken” @holly_cummins

Slide 52

Slide 52

what the client thought they’d got 3 month provisiontime 10 minute provision-time what we sold #IBM “this provisioning software is broken” @holly_cummins

Slide 53

Slide 53

what the client thought they’d got the reason 3 month provisiontime 10 minute provision-time 84-step pre-approval process what we sold #IBM “this provisioning software is broken” @holly_cummins

Slide 54

Slide 54

#IBM @holly_cummins

Slide 55

Slide 55

old-style governance isn’t going to work #IBM @holly_cummins

Slide 56

Slide 56

fail the mystery money pit

Slide 57

Slide 57

uh… why are our cloud bills so large? what is all this stuff? @holly_cummins #IBM

Slide 58

Slide 58

FinOps #IBM @holly_cummins

Slide 59

Slide 59

ways to succeed at cloud native @holly_cummins #IBM

Slide 60

Slide 60

@holly_cummins #IBM

Slide 61

Slide 61

cloud native architecture … @holly_cummins #IBM

Slide 62

Slide 62

cloud native architecture … and @holly_cummins #IBM

Slide 63

Slide 63

cloud native architecture … and cloud native operations @holly_cummins #IBM

Slide 64

Slide 64

align business and IT @holly_cummins #IBM

Slide 65

Slide 65

optimise for feedback @holly_cummins #IBM

Slide 66

Slide 66

be clear on what you’re trying to achieve @holly_cummins #IBM

Slide 67

Slide 67

® @holly_cummins