A presentation at J-Fall in November 2020 in by Holly Cummins
cloud chaos and microservices mayhem Holly Cummins IBM Garage @holly_cummins
things you need to do well in 2020: @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
things you need to do well in 2020: @holly_cummins handwashing #IBMGarage + IBM Cloud © 2020 IBM Corporation
things you need to do well in 2020: @holly_cummins handwashing apps #IBMGarage + IBM Cloud © 2020 IBM Corporation
things you need to do well in 2020: @holly_cummins handwashing apps ops #IBMGarage + IBM Cloud © 2020 IBM Corporation
things you need to do well in 2020: @holly_cummins handwashing apps ops devops #IBMGarage + IBM Cloud © 2020 IBM Corporation
things you need to do well in 2020: @holly_cummins handwashing apps ops devops devsecops #IBMGarage + IBM Cloud © 2020 IBM Corporation
things you need to do well in 2020: @holly_cummins handwashing apps ops devops devsecops finops #IBMGarage + IBM Cloud © 2020 IBM Corporation
@holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
management @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
The cloud makes it so easy to provision hardware. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
That doesn’t mean the hardware is free. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Or useful. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Hey boss, I created a Kubernetes cluster. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Hey boss, I created a Kubernetes cluster. I forgot it for 2 months. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Hey boss, I created a Kubernetes cluster. I forgot it for 2 months. … and it’s €1000 a month. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Photo by daveynin, flickr
2017 survey 25% of 16,000 servers doing no useful work @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
2017 survey “perhaps someone forgot to turn them off” 25% of 16,000 servers doing no useful work @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
finops figuring out who in your company forgot to turn off their cloud @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
tracing @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
packaging (and fat jars) @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
performance requirements @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
memory footprint is money startup time is money @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
ahead of time compilation is (actually) a good idea @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
releasing @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
“we’re moving too slowly. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
“we’re moving too slowly. we should modernise our COBOL application into microservices. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
“we’re moving too slowly. we should modernise our COBOL application into microservices. … but our release board only meets twice a year.” @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
modularity @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
microservices are not the goal @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
microservices are not the goal they are the means @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
wishful mimicry @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
cloud != microservices @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
“every time we touch one microservice, all the others break.” @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
distributed monolith @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
distributed monolith but without compile-time checking … or guaranteed function execution @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Courtesy NASA/ JPL-Caltech © 2019 IBM Corporation
IBM Cloud © 2020 IBM Corporation
metric units
metric units imperial units
metric units imperial units distributing did not help
distributed != decoupled @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
reasons not to do microservices small team not planning to release independently don’t want complexity of a service mesh - or worse yet, rolling your own domain model doesn’t split nicely @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
“each of our microservices has duplicated the same object model … with twenty classes and seventy fields” @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Domain Microservice @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
Domain Microservice (this is bad) @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
If you’re going to do microservices, you need to get good at automation. And testing. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
the test pyramid IBM Cloud © 2020 IBM Corporation
How to test a fire alarm? @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
how not to test a fire alarm IBM Cloud © 2020 IBM Corporation
unit testing a fire alarm @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
uh … is that enough? @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
contract testing a fire alarm @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
to the code! @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
microservices need consumer-driven contract tests @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation
thank you @holly_cummins get the code: ibm.biz/holly-jfuture @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation