A presentation at O’Reilly Software Architecture London in 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
#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
#IBMCloudGarage @holly_cummins
build great products faster #IBMCloudGarage @holly_cummins
why? #IBMCloudGarage @holly_cummins
what problem are we trying to solve? #IBMCloudGarage @holly_cummins
#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
#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
#IBMCloudGarage @holly_cummins
#IBMCloudGarage @holly_cummins
cloud native is not a synonym for ‘microservices’ #IBMCloudGarage @holly_cummins
#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
#IBMCloudGarage @holly_cummins
complexity adds expense #IBMCloudGarage @holly_cummins
unnecessary complexity adds unnecessary expense #IBMCloudGarage @holly_cummins
#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
#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
#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
funtainers #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
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
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
#IBMCloudGarage @holly_cummins
Courtesy NASA/ JPL-Caltech #IBMCloudGarage @holly_cummins
#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
#IBMCloudGarage @holly_cummins
#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
#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
#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
#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
speed #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
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.
I am *very* much enjoying @holly_cummins talk about cloud native and the things you have to do so you can *actually* move faster - features a lot of stories about space probes and things that went wrong - plus many lessons learned that ring true to me #oreillysacon
— Sarah Wells (@sarahjwells) October 29, 2018
At #OReillySACon today and the talk of the day for me is @holly_cummins talking about cloud native. Mostly tech but some great engineering and space related stories.
— Rob Godfrey (@robgodfr) October 29, 2018
"Cloud was supposed to be commodity like electricity, but when we went there we got electrocuted... and that's why we need Cloud Native" awesome obsevation from @holly_cummins at #OReillySACon pic.twitter.com/6KUMX5qBw5
— Ádám Sándor (@adamsand0r) October 29, 2018
sometimes it's great to watch a talk about stuff you already know, but told really really well. having a great time watching @holly_cummins.
— Ádám Sándor (@adamsand0r) October 29, 2018
...also Funtainers 😂
#OReillySACon pic.twitter.com/hAtasUPuTv
Great seeing @holly_cummins from @IBMcloud talking about the characteristics of cloud native at @OReillySACon pic.twitter.com/2Jv3DrMPn4
— Brad Topol (@bradtopol) October 29, 2018
Distributing logic in Mars Explorer control system did not help and the poor thing crashed via @holly_cummins at #OReillySACon
— Szymon Pobiega (@SzymonPobiega) October 29, 2018
Credit to @samnewman's awesome talk for at least part of this, although I had the picture before he helpfully reminded me of the history and the supporting metaphor :) https://t.co/HAneZ5WCmM
— Holly Cummins (@holly_cummins) October 29, 2018
Love the fact that @holly_cummins demystified the space pencil story #myths #fakeNews #OReillySACon
— Szymon Pobiega (@SzymonPobiega) October 29, 2018
Crap. I just scrolled three pages looking for funtainers and then @holly_cummins said that I am not going to find anything 😂#sadPanda #OReillySACon. Reserving a domain name now...
— Szymon Pobiega (@SzymonPobiega) October 29, 2018