How - and why - to modernize your scruffy old Java applications

A presentation at IBM Tech TV in October 2020 in by Holly Cummins

Slide 1

Slide 1

how - and why - to modernise your scruffy old java applications Holly Cummins IBM Garage @holly_cummins

Slide 2

Slide 2

a codebase is like a home (thanks for Livable Code, Sarah Mei!) @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 3

Slide 3

does yours do what you need? @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 4

Slide 4

it’s impossible to do anything in here photo courtesy of Ryo Chijiiwa, flickr

Slide 5

Slide 5

it made sense a long time ago photo courtesy of Brent Pearson, flickr

Slide 6

Slide 6

it never made sense @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 7

Slide 7

it’s too expensive to maintain

Slide 8

Slide 8

these problems are too fundamental for us to fix them photo courtesy of Bobo Boom, flickr

Slide 9

Slide 9

it needs capabilities never envisioned in the original @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 10

Slide 10

you obviously can’t retrofit a rollercoaster to a … oh. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 11

Slide 11

you obviously can’t retrofit a rollercoaster to a … oh. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 12

Slide 12

no one is allowed to do stuff @holly_cummins photo courtesy of Paul Mullens and i_zimbra #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 13

Slide 13

@holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 14

Slide 14

but … @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 15

Slide 15

sometimes the change you need to make isn’t the change you think you need to make

Slide 16

Slide 16

shiny is temporary habits are persistent

Slide 17

Slide 17

@holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 18

Slide 18

“we’re moving too slowly. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 19

Slide 19

“we’re moving too slowly. we should modernise our COBOL application into microservices. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 20

Slide 20

“we’re moving too slowly. we should modernise our COBOL application into microservices. our release board meets twice a year.” @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 21

Slide 21

to the code! @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 22

Slide 22

the problem with app mod demos Photo by Studio Sarah Lou, flickr

Slide 23

Slide 23

the problem with app mod demos Photo by Studio Sarah Lou, flickr

Slide 24

Slide 24

if an application is too complex to manage … untangling it won’t be trivial @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 25

Slide 25

strangler pattern Photo by David Casteel, flickr @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 26

Slide 26

Slide 27

Slide 27

mono 2 micro Transformation Advisor WebSphere Application Migration Toolkit @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 28

Slide 28

mono 2 micro Transformation Advisor WebSphere Application Migration Toolkit @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 29

Slide 29

“every time we touch one microservice, all the others break.” @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 30

Slide 30

Courtesy NASA/ JPL-Caltech © 2019 IBM Corporation

Slide 31

Slide 31

IBM Cloud © 2020 IBM Corporation

Slide 32

Slide 32

IBM Cloud © 2020 IBM Corporation

Slide 33

Slide 33

Slide 34

Slide 34

metric units

Slide 35

Slide 35

metric units imperial units

Slide 36

Slide 36

metric units imperial units distributing did not help

Slide 37

Slide 37

distributed != decoupled @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 38

Slide 38

If you’re going to do microservices, you need to get good at automation. And testing. @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 39

Slide 39

IBM Cloud © 2020 IBM Corporation

Slide 40

Slide 40

the test pyramid IBM Cloud © 2020 IBM Corporation

Slide 41

Slide 41

the test pyramid IBM Cloud © 2020 IBM Corporation

Slide 42

Slide 42

the test pyramid IBM Cloud © 2020 IBM Corporation

Slide 43

Slide 43

the test pyramid IBM Cloud © 2020 IBM Corporation

Slide 44

Slide 44

How to test a fire alarm? @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 45

Slide 45

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

Slide 46

Slide 46

@holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 47

Slide 47

unit testing a fire alarm @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 48

Slide 48

uh … is that enough? @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 49

Slide 49

contract testing a fire alarm @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 50

Slide 50

to the code! @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 51

Slide 51

microservices need consumer-driven contract tests @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation

Slide 52

Slide 52

get the code: ibm.biz/holly-tech-tv learn more about application modernisation: watch Dana Price on IBM Tech TV, October 29 @holly_cummins #IBMGarage + IBM Cloud © 2020 IBM Corporation