A presentation at GOTO Copenhagen in November 2018 in Copenhagen, Denmark by Holly Cummins
Cloud native is about culture, not containers Holly Cummins IBM Cloud Garage
by the way … the IBM Cloud Garage is hiring …
by the way … the IBM Cloud Garage is hiring … … in Copenhagen :)
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
accidental complexity #IBMCloudGarage essential complexity @holly_cummins
accidental complexity essential complexity “this will impress my boss” complexity #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
2010 the dawn of cloud native #IBMCloudGarage @holly_cummins
behaves well on the cloud #IBMCloudGarage @holly_cummins
behaves well on the cloud written for the cloud #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
plans are always wrong success is in how you respond #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
please remember to rate this session thank you @holly_cummins #IBMCloudGarage