A presentation at GOTO Berlin 2019 in in Berlin, Germany by Holly Cummins
Cloud Native is About Culture, Not Containers (how to not fail at cloud native) Austin Copenhagen Dubai London Madrid Melbourne Munich Milan New York Holly Cummins IBM Garage @holly_cummins Nice Raleigh San Francisco São Paulo Singapore Tokyo Toronto
what is cloud native? #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
Credit to @bibryam #IBM #IBMGarage @holly_cummins
(a great article, btw) #IBM #IBMGarage @holly_cummins
(a great article, btw) #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
microservices containers dynamically orchestrated #IBM #IBMGarage @holly_cummins
; o t go #IBM e v i t a n d u o l c e h “t co mputing g n o r w s i n o i t a fo un d … .” e v i t a n d u o l abo ut c #IBMGarage @holly_cummins
; o t go #IBM e v i t a n d u o l c e h “t co mputing g n o r w s i n o i t a fo un d … .” e v i t a n d u o l abo ut c #IBMGarage Holly @holly_cummins
#IBM #IBMGarage @holly_cummins
build great products faster #IBM #IBMGarage @holly_cummins
why? #IBMGarage @holly_cummins
what problem are we trying to solve? #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
CV-driven development. #IBM #IBMGarage @holly_cummins
“my CV looks dull” is not a good reason to go cloud native #IBM #IBMGarage @holly_cummins
why cloud? #IBM #IBMGarage @holly_cummins
cost #IBM #IBMGarage @holly_cummins
el a s t i c i t y #IBM #IBMGarage @holly_cummins
spee d #IBM #IBMGarage @holly_cummins
exotic capabilities #IBM #IBMGarage @holly_cummins
why cloud native? #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
12 factors #IBM #IBMGarage @holly_cummins
12 factors #IBM how to write a cloud application so you don’t get electrocuted #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
cloud native is not a synonym for ‘microservices’ #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
if ‘cloud native’ has to be a synonym for anything, it would be ‘idempotent’ #IBM #IBMGarage @holly_cummins
if ‘cloud native’ has to be a synonym for anything, it would be ‘idempotent’ which definitely needs a synonym #IBM #IBMGarage @holly_cummins
e s a b od o g a rs are e n i a t con #IBM #IBMGarage @holly_cummins
it’s not a competition to see how many you can have #IBM e s a b od o g a rs are e n i a t con #IBMGarage @holly_cummins
you do not need intra-app http communication to be cloud native #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
complexity adds expense #IBM #IBMGarage @holly_cummins
unnecessary complexity adds unnecessary expense #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
space pencil #IBM #IBMGarage @holly_cummins
space pencil $128.89 #IBM #IBMGarage @holly_cummins
space pencil $128.89 #IBM #IBMGarage space pen @holly_cummins
space pencil $128.89 #IBM #IBMGarage space pen $2.39 @holly_cummins
space pencil $128.89 space pen $2.39 +medical bills #IBM #IBMGarage @holly_cummins
accidental complexity #IBM essential complexity #IBMGarage @holly_cummins
accidental complexity essential complexity “this will impress my boss” complexity #IBM #IBMGarage @holly_cummins
2010 the dawn of cloud native #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
behaves well on the cloud #IBM #IBMGarage @holly_cummins
behaves well on the cloud written for the cloud #IBM #IBMGarage @holly_cummins
this is all how we run our application, not what’s in it #IBM #IBMGarage @holly_cummins
speed #IBM #IBMGarage @holly_cummins
speed #IBM #IBMGarage @holly_cummins
what’s the point of getting the same old stuff to market faster? #IBM #IBMGarage @holly_cummins
what’s the point of being able to respond to the market, if you don’t? #IBM #IBMGarage @holly_cummins
what’s the point of architecture that can go faster, if you don’t go faster? #IBM #IBMGarage @holly_cummins
how to fail at cloud native #IBMGarage @holly_cummins
“each of our microservices has duplicated the same object model … with twenty classes and seventy fields” #IBM #IBMGarage @holly_cummins
Microservice #IBM #IBMGarage @holly_cummins
Microservice Domain #IBM #IBMGarage @holly_cummins
Microservice Domain #IBM #IBMGarage @holly_cummins
“every time we change code, something breaks” #IBM #IBMGarage @holly_cummins
distributed monolith #IBM #IBMGarage @holly_cummins
cloud-native spaghetti is still spaghetti (Image: Cloudy with a Chance of Meatballs.) #IBM #IBMGarage @holly_cummins
just because a system runs across 6 containers doesn’t mean it’s decoupled #IBM #IBMGarage @holly_cummins
distributed != decoupled #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
Courtesy NASA/ JPL-Caltech #IBM #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 #IBM #IBMGarage @holly_cummins
“our tests aren’t automated” #IBM #IBMGarage @holly_cummins
“we don’t know if our code works” #IBM #IBMGarage @holly_cummins
systems will behave in unexpected ways #IBM #IBMGarage @holly_cummins
documentation can be wrong #IBM #IBMGarage @holly_cummins
dependency updates can change behaviour #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
“Had we done end-to-end testing, we believe this error would have been caught.” Arthur Stephenson Chief Investigator #IBM #IBMGarage @holly_cummins
“we can’t ship until we have more confidence in the quality” #IBM #IBMGarage @holly_cummins
microservices need automated integration tests #IBM #IBMGarage @holly_cummins
not a good CI/CD indicator a good CI/CD indicator “we don’t know when the build is broken” #IBM #IBMGarage @holly_cummins
a good build radiator #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
“oh yes, that build has been broken for a few weeks…” #IBM #IBMGarage @holly_cummins
how to brick a spaceprobe #IBM #IBMGarage @holly_cummins
“we couldn’t get the automated checks to work, so we bypassed them” #IBM #IBMGarage @holly_cummins
“we’ve scheduled the architecture board review for a month after the project ships” #IBM #IBMGarage @holly_cummins
#IBM #IBMGarage @holly_cummins
navigators warned something was wrong #IBM #IBMGarage @holly_cummins
navigators warned something was wrong they didn’t fill in the right form #IBM #IBMGarage @holly_cummins
navigators warned something was wrong they didn’t fill in the right form so nothing was done #IBM #IBMGarage @holly_cummins
does the process add value? #IBM #IBMGarage @holly_cummins
extreme programming is the right kind of rigour #IBM #IBMGarage @holly_cummins
extreme programming is the right kind of rigour test-driven development #IBM #IBMGarage @holly_cummins
extreme programming is the right kind of rigour test-driven development pair programming #IBM #IBMGarage @holly_cummins
extreme programming is the right kind of rigour test-driven development pair programming optimise for feedback #IBM #IBMGarage @holly_cummins
“but it’s in the plan” #IBM #IBMGarage @holly_cummins
“but it’s not in the plan” #IBM #IBMGarage @holly_cummins
lots of bulkheads
it was too big #IBM #IBMGarage @holly_cummins
lookouts saw the iceberg but the ship wasn’t nimble enough to avoid it #IBM #IBMGarage @holly_cummins
NASA Langley 1961 #IBM #IBMGarage @holly_cummins
IBM 7090 (large!) #IBM #IBMGarage NASA Langley 1961 @holly_cummins
door (normal-sized) #IBM IBM 7090 (large!) #IBMGarage NASA Langley 1961 @holly_cummins
door (normal-sized) #IBM IBM 7090 (large!) #IBMGarage NASA Langley 1961 @holly_cummins
plans are always wrong success is in how you respond #IBM #IBMGarage @holly_cummins
“we can’t ship until every feature is complete” #IBM #IBMGarage @holly_cummins
how not to drive a car #IBM #IBMGarage @holly_cummins
they often couldn’t see the explorer #IBM #IBMGarage @holly_cummins
feedback is good business #IBM #IBMGarage @holly_cummins
feedback is good engineering #IBM #IBMGarage @holly_cummins
an mvp hurts #IBM #IBMGarage @holly_cummins
if you’re not embarrassed by your first release it was too late #IBM #IBMGarage @holly_cummins
experiments can mean failure #IBM #IBMGarage @holly_cummins
experiments can meanfailure failure experiments mean #IBM #IBMGarage @holly_cummins
The titanic staircase and lifeboats
users will have weird behaviours #IBM #IBMGarage @holly_cummins
optimise for recovery #IBM #IBMGarage @holly_cummins
unrecoverable #IBM #IBMGarage @holly_cummins
back in ms no data loss manual intervention bricked #IBM fast, but data lost handoffs #IBMGarage @holly_cummins
business recoverability #IBM #IBMGarage @holly_cummins
remember, users will have weird behaviours #IBM #IBMGarage @holly_cummins
speed #IBM #IBMGarage @holly_cummins
slow is demoralising for teams #IBM #IBMGarage @holly_cummins
fast is good business #IBM #IBMGarage @holly_cummins
A late change in requirements is a competitive advantage. –Mary Poppendieck #IBM #IBMGarage @holly_cummins
more feedback → more accuracy #IBM #IBMGarage @holly_cummins
cloud rescued developers from tedium and toil #IBM #IBMGarage @holly_cummins
cloud native should feel fun #IBM #IBMGarage @holly_cummins
100
® @holly_cummins https://www.ibm.com/legal/us/en/copytrade.shtml 101
As a developer in IBM’s Cloud 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).
Here’s what was said about this presentation on social media.
@holly_cummins using the space pencil story ✏️ as a metaphor for accidental complexity vs essential complexity in cloud native development. Great Talk! ☺️ #GOTOber pic.twitter.com/aE18WQY4sc
— Simon Knott (@skn0tt) October 23, 2019
#CloudNative is about culture and not about containers @holly_cummins @GOTOber #GOTOber #Cloud pic.twitter.com/fCC0UQp2Ic
— Andreas Landerer (@andreaslanderer) October 23, 2019