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

releasing @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

@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

distributed monolith but without compile-time checking … or guaranteed function execution @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

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

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 @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

IBM Cloud © 2020 IBM Corporation

the test pyramid IBM Cloud © 2020 IBM Corporation

the test pyramid IBM Cloud © 2020 IBM Corporation

the test pyramid 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

how not to test a fire alarm IBM Cloud © 2020 IBM Corporation

@holly_cummins #IBMGarage + 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

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