A presentation at Craft Conf by Holly Cummins
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
As a developer in the IBM Garage, Holly Cummins works with customers who are trying to shift their businesses to the cloud, and to cloud native in particular. Their dream is more effort higher up the value chain, more innovation, and greater adaptability. What they really want is to beat their competitors to market, with something that’s better than their competitors, and then evolve it to beat any new competitors. What’s getting in their way isn’t the technology—wrapping something in a docker container (usually) isn’t that hard. Instead, it’s the structures that have been put in place to manage risk and the relationships between teams that trip companies up.
Holly shares stories of customers struggling to get cloud native and explains how IBM applied its methodology to turn things around. You’ll learn the ideal team size, the ideal microservice size, what skills a team needs, the role of architects, how to know if something is ready to ship, and whose fault everything is (joke).