A presentation at O’Reilly Software Architecture London in October 2018 in London, UK by Holly Cummins
Cloud native is about culture, not containers Dr Holly Cummins Worldwide Development Lead IBM Cloud Garage
what is cloud native? #IBMCloudGarage @holly_cummins
#IBMCloudGarage @holly_cummins
Credit to @bibryam #IBMCloudGarage @holly_cummins
(a great article, btw) #IBMCloudGarage @holly_cummins
microservices containers d te a tr s e h c r o y ll a ic m a n dy #IBMCloudGarage @holly_cummins
e v i t a n d u o l c “the g n i t u co mp g n o r w s i n o i t a d n u fo … ” . e v i t a n d u o l c t u o ab #IBMCloudGarage @holly_cummins
e v i t a n d u o l c “the g n i t u co mp g n o r w s i n o i t a d n u fo … ” . e v i t a n d u o l c t u o ab #IBMCloudGarage Holly @holly_cummins
build great products faster #IBMCloudGarage @holly_cummins
why? #IBMCloudGarage @holly_cummins
what problem are we trying to solve? #IBMCloudGarage @holly_cummins
CV-driven development. #IBMCloudGarage @holly_cummins
“my CV looks dull” is not a good reason to go cloud native #IBMCloudGarage @holly_cummins
why cloud? #IBMCloudGarage @holly_cummins
cost #IBMCloudGarage @holly_cummins
el a s t i c i t y #IBMCloudGarage @holly_cummins
spee d #IBMCloudGarage @holly_cummins
exotic capabilities #IBMCloudGarage @holly_cummins
why cloud native? #IBMCloudGarage @holly_cummins
12 factors #IBMCloudGarage @holly_cummins
12 factors #IBMCloudGarage how to write a cloud application so you don’t get electrocuted @holly_cummins
cloud native is not a synonym for ‘microservices’ #IBMCloudGarage @holly_cummins
if ‘cloud native’ has to be a synonym for anything, it would be ‘idempotent’ #IBMCloudGarage @holly_cummins
if ‘cloud native’ has to be a synonym for anything, it would be ‘idempotent’ which definitely needs a synonym #IBMCloudGarage @holly_cummins
o g a e r a s r e n i a t n co #IBMCloudGarage e s a b d o @holly_cummins
it’s not a competition to see how many you can have #IBMCloudGarage o g a e r a s r e n i a t n co e s a b d o @holly_cummins
you do not need intra-app http communication to be cloud native #IBMCloudGarage @holly_cummins
complexity adds expense #IBMCloudGarage @holly_cummins
unnecessary complexity adds unnecessary expense #IBMCloudGarage @holly_cummins
space pencil #IBMCloudGarage @holly_cummins
space pencil $128.89 #IBMCloudGarage @holly_cummins
space pencil $128.89 #IBMCloudGarage space pen @holly_cummins
space pencil $128.89 #IBMCloudGarage space pen $2.39 @holly_cummins
space pencil $128.89 space pen $2.39 +medical bills #IBMCloudGarage @holly_cummins
2010 #IBMCloudGarage @holly_cummins
behaves well on the cloud #IBMCloudGarage @holly_cummins
behaves well on the cloud written for the cloud #IBMCloudGarage @holly_cummins
what is a container? #IBMCloudGarage @holly_cummins
bare metal #IBMCloudGarage @holly_cummins
bare metal #IBMCloudGarage virtual machines @holly_cummins
bare metal #IBMCloudGarage virtual machines containers @holly_cummins
bare metal #IBMCloudGarage virtual machines containers functions @holly_cummins
funtainers #IBMCloudGarage @holly_cummins
function-tainers #IBMCloudGarage @holly_cummins
Thermos® FUNtainer® #IBMCloudGarage @holly_cummins
funtainers all the fun of containers, but without having to worry about kubernetes #IBMCloudGarage @holly_cummins
this is all how we run our application, not what’s in it #IBMCloudGarage @holly_cummins
speed #IBMCloudGarage @holly_cummins
what’s the point of getting the same old stuff to market faster? #IBMCloudGarage @holly_cummins
what’s the point of being able to respond to the market, if you don’t? #IBMCloudGarage @holly_cummins
what’s the point of architecture that can go faster, if you don’t go faster? #IBMCloudGarage @holly_cummins
how to fail at cloud native #IBMCloudGarage @holly_cummins
“each of our microservices has duplicated the same object model … with twenty classes and seventy fields” #IBMCloudGarage @holly_cummins
Microservice #IBMCloudGarage @holly_cummins
Microservice Domain #IBMCloudGarage @holly_cummins
“every time we change code, something breaks” #IBMCloudGarage @holly_cummins
distributed monolith #IBMCloudGarage @holly_cummins
cloud-native spaghetti is still spaghetti (Image: Cloudy with a Chance of Meatballs.) #IBMCloudGarage @holly_cummins
just because a system runs across 6 containers doesn’t mean it’s decoupled #IBMCloudGarage @holly_cummins
Courtesy NASA/ JPL-Caltech #IBMCloudGarage @holly_cummins
metric units
metric units imperial units
metric units imperial units distributing did not help
microservices need consumer-driven contract tests #IBMCloudGarage @holly_cummins
“our tests aren’t automated” #IBMCloudGarage @holly_cummins
“we don’t know if our code works” #IBMCloudGarage @holly_cummins
systems will behave in unexpected ways #IBMCloudGarage @holly_cummins
documentation can be wrong #IBMCloudGarage @holly_cummins
dependency updates can change behaviour #IBMCloudGarage @holly_cummins
“Had we done end-to-end testing, we believe this error would have been caught.” Arthur Stephenson Chief Investigator #IBMCloudGarage @holly_cummins
“we can’t ship until we have more confidence in the quality” #IBMCloudGarage @holly_cummins
microservices need automated integration tests #IBMCloudGarage @holly_cummins
not a good CI/CD indicator a good CI/CD indicator “we don’t know when the build is broken” #IBMCloudGarage @holly_cummins
a good build radiator #IBMCloudGarage @holly_cummins
“oh yes, that build has been broken for a few weeks…” #IBMCloudGarage @holly_cummins
how to brick a spaceprobe #IBMCloudGarage @holly_cummins
“we couldn’t get the automated checks to work, so we bypassed them” #IBMCloudGarage @holly_cummins
“we’ve scheduled the architecture board review for a month after the project ships” #IBMCloudGarage @holly_cummins
navigators warned something was wrong #IBMCloudGarage @holly_cummins
navigators warned something was wrong they didn’t fill in the right form #IBMCloudGarage @holly_cummins
navigators warned something was wrong they didn’t fill in the right form so nothing was done #IBMCloudGarage @holly_cummins
does the process add value? #IBMCloudGarage @holly_cummins
extreme programming is the right kind of rigour #IBMCloudGarage @holly_cummins
extreme programming is the right kind of rigour test-driven development #IBMCloudGarage @holly_cummins
extreme programming is the right kind of rigour test-driven development pair programming #IBMCloudGarage @holly_cummins
extreme programming is the right kind of rigour test-driven development pair programming optimise for feedback #IBMCloudGarage @holly_cummins
“but it’s in the plan” #IBMCloudGarage @holly_cummins
“but it’s not in the plan” #IBMCloudGarage @holly_cummins
lots of bulkheads
it was too big #IBMCloudGarage @holly_cummins
lookouts saw the iceberg but the ship wasn’t nimble enough to avoid it #IBMCloudGarage @holly_cummins
Hidden Figures #IBMCloudGarage @holly_cummins
“we can’t ship until every feature is complete” #IBMCloudGarage @holly_cummins
how not to drive a car #IBMCloudGarage @holly_cummins
they often couldn’t see the explorer #IBMCloudGarage @holly_cummins
feedback is good business #IBMCloudGarage @holly_cummins
feedback is good engineering #IBMCloudGarage @holly_cummins
an mvp hurts #IBMCloudGarage @holly_cummins
if you’re not embarrassed by your first release it was too late #IBMCloudGarage @holly_cummins
experiments can mean failure #IBMCloudGarage @holly_cummins
experiments mean experiments can meanfailure failure #IBMCloudGarage @holly_cummins
The titanic staircase and lifeboats
users will have weird behaviours #IBMCloudGarage @holly_cummins
optimise for recovery #IBMCloudGarage @holly_cummins
unrecoverable #IBMCloudGarage @holly_cummins
back in ms no data loss manual intervention bricked #IBMCloudGarage fast, but data lost handoffs @holly_cummins
business recoverability #IBMCloudGarage @holly_cummins
remember, users will have weird behaviours #IBMCloudGarage @holly_cummins
slow is demoralising for teams #IBMCloudGarage @holly_cummins
fast is good business #IBMCloudGarage @holly_cummins
A late change in requirements is a competitive advantage. –Mary Poppendieck #IBMCloudGarage @holly_cummins
more feedback → more accuracy #IBMCloudGarage @holly_cummins
cloud rescued developers from tedium #IBMCloudGarage @holly_cummins
cloud native should feel fun #IBMCloudGarage @holly_cummins
thank you @holly_cummins #IBMCloudGarage