WTF is culture in cloud native? Holly Cummins IBM Garage @holly_cummins

WTF, culture IS cloud native! Holly Cummins IBM Garage @holly_cummins

WTF, culture IS cloud native! (fixed it for you) Holly Cummins IBM Garage @holly_cummins

what is cloud native? #IBMGarage @holly_cummins

#IBMGarage @holly_cummins

Credit to @bibryam #IBMGarage @holly_cummins

#IBMGarage @holly_cummins

#IBMGarage @holly_cummins

#IBMGarage @holly_cummins

#IBMGarage @holly_cummins

2010 the dawn of cloud native © 2019 IBM Corporation #IBMGarage @holly_cummins

2010 the dawn of cloud native © 2019 IBM Corporation fully utilize that environment #IBMGarage @holly_cummins

#IBMGarage @holly_cummins

#IBMGarage @holly_cummins

2019 #IBMGarage @holly_cummins

microservices containers dynamically orchestrated 2019 #IBMGarage @holly_cummins

Dr Holly #IBMGarage “the clo u d nativ e co mputing fo un d ation is wrong … abo ut clo u d nati ve.” @holly_cummins

#IBMGarage @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

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

devops born on the cloud IBM Garage microservices kubernetes @holly_cummins

born on the cloud IBM Garage microservices kubernetes devops @holly_cummins

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

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

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

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

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

rerunnable IBM Garage @holly_cummins

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

© 2019 IBM Corporation #IBMGarage @holly_cummins

© 2019 IBM Corporation #IBMGarage @holly_cummins

cloud native is not © 2019 IBM Corporation #IBMGarage @holly_cummins

cloud native is not a synonym for ‘microservices’ © 2019 IBM Corporation #IBMGarage @holly_cummins

2019 #IBMGarage @holly_cummins

microservices stack containers 2019 #IBMGarage @holly_cummins

2020 IBM Garage @holly_cummins

immutable infrastructure microservices exemplify 2020 IBM Garage @holly_cummins

why? #IBMGarage @holly_cummins

what problem are we trying to solve? © 2019 IBM Corporation #IBMGarage @holly_cummins

“everyone else is doing it?” #IBMGarage @holly_cummins

wishful mimicry #IBMGarage @holly_cummins

© 2019 IBM Corporation #IBMGarage @holly_cummins

build great products faster © 2019 IBM Corporation #IBMGarage @holly_cummins

2020 IBM Garage @holly_cummins

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

why cloud? #IBMGarage @holly_cummins

cost © 2019 IBM Corporation #IBMGarage @holly_cummins

cost el a s t i c i t y © 2019 IBM Corporation #IBMGarage @holly_cummins

s cost pee d © 2019 IBM Corporation #IBMGarage @holly_cummins

exotic capabilities © 2019 IBM Corporation #IBMGarage @holly_cummins

why cloud native? © 2019 IBM Corporation #IBMGarage @holly_cummins

© 2019 IBM Corporation #IBMGarage @holly_cummins

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

cloud native is the combination of culture and technology to achieve cloud goals © 2019 IBM Corporation #IBMGarage @holly_cummins

are we all agreed on the goal? © 2019 IBM Corporation #IBMGarage @holly_cummins

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

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

microservices are not the goal #IBMGarage @holly_cummins

microservices are not the goal they are the means #IBMGarage @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

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

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

distributed monolith #IBMGarage @holly_cummins

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

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

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

cloud-native spaghetti is still spaghetti (Image: Cloudy with a Chance of Meatballs.) © 2019 IBM Corporation #IBMGarage @holly_cummins

© 2019 IBM Corporation #IBMGarage @holly_cummins

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

© 2019 IBM Corporation #IBMGarage @holly_cummins

© 2019 IBM Corporation #IBMGarage @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 #IBMGarage @holly_cummins

#IBMGarage @holly_cummins

navigators warned something was wrong #IBMGarage @holly_cummins

navigators warned something was wrong they didn’t fill in the right form #IBMGarage @holly_cummins

navigators warned something was wrong they didn’t fill in the right form so nothing was done #IBMGarage @holly_cummins

quality theatre #IBMGarage @holly_cummins

the not-actually-continuous 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 don’t think that word means what you think it means. #IBMGarage @holly_cummins

how often should you push to master? #IBMGarage @holly_cummins

how often should you push to master? integrate? #IBMGarage @holly_cummins

how often should you push to master? integrate? every character #IBMGarage @holly_cummins

how often should you push to master? integrate? every character actually continuous … but stupid #IBMGarage @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) actually continuous … but stupid #IBMGarage @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) actually continuous … but stupid #IBMGarage @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day actually continuous … but stupid #IBMGarage @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day once a week actually continuous … but stupid #IBMGarage @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day once a week once a month actually continuous … but stupid #IBMGarage @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day once a week once a month once every six months actually continuous … but stupid #IBMGarage @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day once a week once a month once every six months actually continuous … but stupid #IBMGarage trunk-based development @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day ok actually continuous … but stupid #IBMGarage once a week once a month once every six months trunk-based development @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day ok actually continuous … but stupid #IBMGarage bad once a week once a month once every six months trunk-based development @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day ok once a week once a month once every six months bad bad actually continuous … but stupid #IBMGarage trunk-based development @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day ok once a week once a month once every six months bad bad seriously? actually continuous … but stupid #IBMGarage trunk-based development @holly_cummins

how often should you push to master? integrate? every character every commit (several times an hour) every few commits (several times a day) once a day ok once a week once a month once every six months bad bad my favourite actually continuous … but stupid #IBMGarage seriously? trunk-based development @holly_cummins

how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter #IBMGarage once every two years @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter #IBMGarage once every two years @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter once every two years (need a good handle on feature flags) #IBMGarage @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter ok once every two years (need a good handle on feature flags) #IBMGarage @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter ok (need a good handle on feature flags) #IBMGarage once every two years oldschool @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter ok once every two years sigh (need a good handle on feature flags) #IBMGarage oldschool @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter ok ok once every two years sigh (need a good handle on feature flags) #IBMGarage oldschool @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter ok ok once every two years sigh hardcore (need a good handle on feature flags) #IBMGarage oldschool @holly_cummins

deploy? how often should you release? every push (many times a day) every user story every epic once a sprint once a quarter ok ok once every two years sigh hardcore (need a good handle on feature flags) #IBMGarage my favourite oldschool @holly_cummins

how often should you test in staging? #IBMGarage @holly_cummins

how often should you test in staging? deliver? #IBMGarage @holly_cummins

how often should you test in staging? deliver? every push my favourite #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

speed © 2019 IBM Corporation #IBMGarage @holly_cummins

speed © 2019 IBM Corporation #IBMGarage @holly_cummins

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

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

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

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

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

deferred wiring #IBMGarage @holly_cummins

feature flags #IBMGarage @holly_cummins

A/B testing canary deploys #IBMGarage @holly_cummins

@holly_cummins

make releases deeply boring by doing them often @holly_cummins

@holly_cummins

make recovery from failures deeply boring by doing it often @holly_cummins

make recovery from failures deeply boring by doing it often @holly_cummins

back in ms no data loss manual intervention bricked fast, but data lost handoffs © 2019 IBM Corporation #IBMGarage @holly_cummins

handoffs bad automation good © 2019 IBM Corporation #IBMGarage @holly_cummins

automate everything

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

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

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

“we can’t ship until we have more confidence in the quality” #IBMGarage @holly_cummins

“we can’t ship until we have more confidence in the quality” you can fix that #IBMGarage @holly_cummins

microservices need automated integration tests © 2019 IBM Corporation #IBMGarage @holly_cummins

not a good CI/CD indicator a good CI/CD indicator “we don’t know when the build is broken” © 2019 IBM Corporation #IBMGarage @holly_cummins

a good build radiator © 2019 IBM Corporation #IBMGarage @holly_cummins

© 2019 IBM Corporation #IBMGarage @holly_cummins

“oh yes, that build has been broken for a few weeks…” © 2019 IBM Corporation #IBMGarage @holly_cummins

the lockeddown totally rigid inflexible un-cloudy cloud

#IBMGarage @holly_cummins

“we’ve configured our network! #IBMGarage @holly_cummins

“we’ve configured our network! you can either access the cloud servers … or access jira. #IBMGarage @holly_cummins

“we’ve configured our network! you can either access the cloud servers … or access jira. to access both you’d need two machines.” #IBMGarage @holly_cummins

“it takes us a week to start coding.” #IBMGarage @holly_cummins

“it takes us a week to start coding.” “two days to get a repo … two days to get a pipeline …” #IBMGarage @holly_cummins

“we’ve scheduled the architecture board review for a month after the project is ready to ship” © 2019 IBM Corporation #IBMGarage @holly_cummins

“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

Provider A #IBMGarage @holly_cummins

Provider A Provider B “we’re going to change cloud provider to fix our procurement process!” #IBMGarage @holly_cummins

Provider A Provider B “we’re going to change cloud provider to fix our procurement process!” #IBMGarage @holly_cummins

if the developers are the only ones changing, cloud native is not going to work #IBMGarage @holly_cummins

there is a cost: developers leave #IBMGarage @holly_cummins

if you automate something, change the processes around that assume that the previously manual process is expensive or error prone. #IBMGarage @holly_cummins

#IBMGarage @holly_cummins

#IBMGarage @holly_cummins

good cloud native culture © 2019 IBM Corporation #IBMGarage @holly_cummins

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

optimise for feedback © 2019 IBM Corporation #IBMGarage @holly_cummins

psychological safety © 2019 IBM Corporation #IBMGarage @holly_cummins

collaboration co-creation feels awesome © 2019 IBM Corporation #IBMGarage @holly_cummins

® @holly_cummins 106