Cloud Native is About Culture, Not Containers (how to not fail at cloud native) Craft Conf Holly Cummins IBM @holly_cummins

© 2019 IBM Corporation #IBM @holly_cummins

what is cloud native? © 2019 IBM Corporation #IBM @holly_cummins

… what is cloud native? Dr Holly © 2019 IBM Corporation #IBM @holly_cummins

… ???? what is cloud native? Dr Holly © 2019 IBM Corporation #IBM @holly_cummins

® @holly_cummins 4

IBM Garage @holly_cummins

Cloud-native is particularly challenging … because confusion. There are very different meanings for the cloud-native term in use already. IBM Garage @holly_cummins

IBM Garage @holly_cummins

born on the cloud IBM Garage @holly_cummins

born on the cloud IBM Garage @holly_cummins

microservices born on the cloud IBM Garage @holly_cummins

born on the cloud IBM Garage microservices @holly_cummins

kubernetes born on the cloud IBM Garage microservices @holly_cummins

born on the cloud IBM Garage microservices kubernetes @holly_cummins

born on the cloud IBM Garage microservices 12factor kubernetes @holly_cummins

born on the cloud IBM Garage microservices kubernetes 12factor @holly_cummins

born on the cloud IBM Garage microservices kubernetes 12factor modern and nice @holly_cummins

born on the cloud microservices kubernetes 12factor modern and nice IBM Garage @holly_cummins

synonym for ‘cloud’ born on the cloud microservices kubernetes 12factor modern and nice IBM Garage @holly_cummins

born on the cloud microservices kubernetes 12factor synonym for ‘cloud’ modern and nice IBM Garage @holly_cummins

?? IBM Garage ?? ?? ?? idempotent ?? ?? @holly_cummins

rerunnable IBM Garage @holly_cummins

done with devops (don’t forget devops) marketing buzzword IBM Garage our legacy app, but now it’s on the cloud microservices, but with smart proxies @holly_cummins

born on the cloud kubernetes microservices IBM Garage 12-factor just ‘cloud’ modern and nice rerunnable @holly_cummins

two years ago, I totally knew what cloud native was © 2019 IBM Corporation #IBM @holly_cummins

born on the cloud kubernetes microservices IBM Garage 12-factor just ‘cloud’ modern and nice rerunnable @holly_cummins

CORRECT! born on the cloud kubernetes microservices IBM Garage 12-factor just ‘cloud’ modern and nice rerunnable @holly_cummins

CORRECT! born on the cloud kubernetes WRONG! microservices IBM Garage 12-factor just ‘cloud’ modern and nice rerunnable @holly_cummins

CORRECT! born on the cloud WRONGER! kubernetes WRONG! microservices IBM Garage 12-factor just ‘cloud’ modern and nice rerunnable @holly_cummins

CORRECT! born on the cloud kubernetes WRONG! microservices IBM Garage just ‘cloud’ WRONGER! CLOSE! 12-factor modern and nice rerunnable @holly_cummins

CORRECT! born on the cloud kubernetes WRONG! microservices IBM Garage just ‘cloud’ WRONGER! CLOSE! 12-factor MAYBE? modern and nice rerunnable @holly_cummins

CORRECT! born on the cloud kubernetes WRONG! microservices IBM Garage just ‘cloud’ WRONGER! WHAT?! CLOSE! 12-factor MAYBE? modern and nice rerunnable @holly_cummins

CORRECT! born on the cloud kubernetes WRONG! microservices IBM Garage just ‘cloud’ WRONGER! WHAT?! CLOSE! 12-factor MAYBE? modern and nice CLOSE! rerunnable @holly_cummins

2019 #IBM @holly_cummins

WRONG! microservices 2019 #IBM @holly_cummins

WRONG! microservices 2019 #IBM @holly_cummins

WRONG! microservices microservices containers dynamically orchestrated 2019 #IBM @holly_cummins

microservices + containers uh oh CNCF IBM Garage @holly_cummins

o g a s r a 2 ye e v i t a n d u o l c “the n o i t a d n u o f g n i co mput is wrong … .” e v i t a n d u o l c t abo u #IBM Dr Holly @holly_cummins

o g a s r a 2 ye e v i t a n d u o l c “the n o i t a d n u o f g n i co mput is wrong … .” e v i t a n d u o l c t abo u #IBM Dr Holly @holly_cummins

g a s r a e y 2 Dr Holly #IBM @holly_cummins

#IBMGarage @holly_cummins

does the CNCF even know what cloud native is? © 2019 IBM Corporation #IBM @holly_cummins

does the CNCF even agree what cloud native is? © 2019 IBM Corporation #IBM @holly_cummins

2019 #IBM @holly_cummins

2020 IBM Garage @holly_cummins

2020 IBM Garage @holly_cummins

IBM Garage @holly_cummins

IBM Garage @holly_cummins

IBM Garage @holly_cummins

IBM Garage @holly_cummins

IBM Garage @holly_cummins

2019 #IBM @holly_cummins

microservices stack containers 2019 #IBM @holly_cummins

2020 IBM Garage @holly_cummins

immutable infrastructure microservices exemplify 2020 IBM Garage @holly_cummins

does the definition of cloud native even matter? © 2019 IBM Corporation #IBM @holly_cummins

what matters: the why? #IBMGarage @holly_cummins

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

#IBM @holly_cummins

build great products faster #IBM @holly_cummins

2020 IBM Garage @holly_cummins

make high-impact changes frequently and predictably with minimal toil 2020 IBM Garage @holly_cummins

how it goes wrong #IBMGarage @holly_cummins

fail the muddy goal

why is the cloud only saving us money, Bob? #IBMGarage @holly_cummins

why are there no microservices in this cloud native app Alice? #IBMGarage @holly_cummins

fail microservices envy

microservices are not the goal #IBMGarage @holly_cummins

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

microservices are not the goal they are a means #IBMGarage @holly_cummins

se a b od o g a e r a s r e n i a t con © 2019 IBM Corporation #IBM @holly_cummins

it’s not a competition to see how many you can have se a b od o g a e r a s r e n i a t con © 2019 IBM Corporation #IBM @holly_cummins

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

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

distributed monolith #IBMGarage @holly_cummins

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

fail cloud-native spaghetti

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

distributed != decoupled © 2019 IBM Corporation #IBM @holly_cummins

“each of our microservices has duplicated the same object model … with twenty classes and seventy fields” © 2019 IBM Corporation #IBM @holly_cummins

Microservice © 2019 IBM Corporation #IBM @holly_cummins

Microservice Domain © 2019 IBM Corporation #IBM @holly_cummins

Microservice Domain © 2019 IBM Corporation #IBM @holly_cummins

© 2019 IBM Corporation #IBM @holly_cummins

Courtesy NASA/ JPL-Caltech © 2019 IBM Corporation #IBM @holly_cummins

© 2019 IBM Corporation #IBM @holly_cummins

© 2019 IBM Corporation #IBM @holly_cummins

metric units

metric units imperial units

metric units imperial units distributing did not help

microservices need consumer-driven contract tests © 2019 IBM Corporation #IBM @holly_cummins

microservices need automated consumer-driven contract tests © 2019 IBM Corporation #IBM @holly_cummins

fail the ‘someday’ automation

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

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

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

fail the not-actuallycontinuous continuous integration and continuous deployment

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

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

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

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

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

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

why? #IBMGarage @holly_cummins

what’s stopping more frequent deploys? #IBMGarage @holly_cummins

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

what’s the point of architecture that can go faster, if you don’t go faster? #IBM @holly_cummins

how not to drive a car © 2019 IBM Corporation #IBM @holly_cummins

feedback is good engineering © 2019 IBM Corporation #IBM @holly_cummins

feedback is good business © 2019 IBM Corporation #IBM @holly_cummins

deferred wiring #IBMGarage @holly_cummins

feature flags #IBMGarage @holly_cummins

A/B testing canary deploys #IBMGarage @holly_cummins

fail the lockeddown totally rigid inflexible un-cloudy cloud

“this provisioning software is broken” #IBMGarage @holly_cummins

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

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

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

#IBMGarage @holly_cummins

#IBMGarage @holly_cummins

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

FinOps #IBMGarage @holly_cummins

AIOps #IBMGarage @holly_cummins

ways to succeed at cloud native © 2019 IBM Corporation #IBM @holly_cummins

© 2019 IBM Corporation #IBM @holly_cummins

cloud native architecture … © 2019 IBM Corporation #IBM @holly_cummins

cloud native architecture … and © 2019 IBM Corporation #IBM @holly_cummins

cloud native architecture … and cloud native operations © 2019 IBM Corporation #IBM @holly_cummins

align business and IT © 2019 IBM Corporation #IBM @holly_cummins

devops © 2019 IBM Corporation #IBM @holly_cummins

optimise for feedback © 2019 IBM Corporation #IBM @holly_cummins

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

collaborate with experts co-creation is brilliant © 2019 IBM Corporation #IBM @holly_cummins

® @holly_cummins 84