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