why are there no microservices in this cloud native app Alice?
#IBMGarage
@holly_cummins
Slide 69
why is the cloud only saving us money, Alice?
#IBMGarage
@holly_cummins
Slide 70
microservices are not the goal #IBMGarage
@holly_cummins
Slide 71
microservices are not the goal they are the means #IBMGarage
@holly_cummins
Slide 72
“we’re going too slowly. we need to get rid of COBOL and make microservices!”
#IBMGarage
@holly_cummins
Slide 73
“we’re going too slowly. we need to get rid of COBOL and make microservices!” “… but our release board only meets twice a year.” #IBMGarage
@holly_cummins
navigators warned something was wrong
#IBMGarage
@holly_cummins
Slide 92
navigators warned something was wrong they didn’t fill in the right form
#IBMGarage
@holly_cummins
Slide 93
navigators warned something was wrong they didn’t fill in the right form so nothing was done #IBMGarage
@holly_cummins
Slide 94
quality theatre #IBMGarage
@holly_cummins
Slide 95
the not-actually-continuous continuous integration and continuous deployment
Slide 96
“we have a CI/CD”
#IBMGarage
@holly_cummins
Slide 97
CI/CD is something you do not a tool you buy
#IBMGarage
@holly_cummins
Slide 98
“i’ll merge my branch into our CI next week”
#IBMGarage
@holly_cummins
Slide 99
“CI/CD … CI/CD … CI/CD … we release every six months … CI/CD …. ”
#IBMGarage
@holly_cummins
Slide 100
continuous. I don’t think that word means what you think it means. #IBMGarage
@holly_cummins
Slide 101
how often should you push to master?
#IBMGarage
@holly_cummins
Slide 102
how often should you push to master? integrate?
#IBMGarage
@holly_cummins
Slide 103
how often should you push to master? integrate? every character
#IBMGarage
@holly_cummins
Slide 104
how often should you push to master? integrate? every character
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 105
how often should you push to master? integrate? every character
every commit (several times an hour)
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 106
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day)
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 107
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 108
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
once a week
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 109
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
once a week
once a month
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 110
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
once a week
once a month
once every six months
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 111
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
once a week
once a month
once every six months
actually continuous … but stupid #IBMGarage
trunk-based development
@holly_cummins
Slide 112
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
ok
actually continuous … but stupid #IBMGarage
once a week
once a month
once every six months
trunk-based development
@holly_cummins
Slide 113
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
ok
actually continuous … but stupid #IBMGarage
bad
once a week
once a month
once every six months
trunk-based development
@holly_cummins
Slide 114
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
ok
once a week
once a month
once every six months
bad bad
actually continuous … but stupid #IBMGarage
trunk-based development
@holly_cummins
Slide 115
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
ok
once a week
once a month
once every six months
bad bad
seriously?
actually continuous … but stupid #IBMGarage
trunk-based development
@holly_cummins
Slide 116
how often should you push to master? integrate? every character
every commit (several times an hour)
every few commits (several times a day) once a day
ok
once a week
once a month
once every six months
bad bad
my favourite
actually continuous … but stupid #IBMGarage
seriously?
trunk-based development
@holly_cummins
Slide 117
how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter
#IBMGarage
once every two years
@holly_cummins
Slide 118
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter
#IBMGarage
once every two years
@holly_cummins
Slide 119
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter
once every two years
(need a good handle on feature flags)
#IBMGarage
@holly_cummins
Slide 120
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter ok
once every two years
(need a good handle on feature flags)
#IBMGarage
@holly_cummins
Slide 121
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter ok
(need a good handle on feature flags)
#IBMGarage
once every two years
oldschool
@holly_cummins
Slide 122
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter ok
once every two years
sigh
(need a good handle on feature flags)
#IBMGarage
oldschool
@holly_cummins
Slide 123
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter
ok
ok
once every two years
sigh
(need a good handle on feature flags)
#IBMGarage
oldschool
@holly_cummins
Slide 124
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter
ok
ok
once every two years
sigh hardcore (need a good handle on feature flags)
#IBMGarage
oldschool
@holly_cummins
Slide 125
deploy? how often should you release? every push (many times a day) every user story every epic
once a sprint once a quarter
ok
ok
once every two years
sigh hardcore (need a good handle on feature flags)
#IBMGarage
my favourite
oldschool
@holly_cummins
Slide 126
how often should you test in staging?
#IBMGarage
@holly_cummins
Slide 127
how often should you test in staging? deliver?
#IBMGarage
@holly_cummins
Slide 128
how often should you test in staging? deliver? every push
my favourite
#IBMGarage
@holly_cummins
“we’ve configured our network! you can either access the cloud servers … or access jira.
#IBMGarage
@holly_cummins
Slide 165
“we’ve configured our network! you can either access the cloud servers … or access jira. to access both you’d need two machines.” #IBMGarage
@holly_cummins
Slide 166
“it takes us a week to start coding.”
#IBMGarage
@holly_cummins
Slide 167
“it takes us a week to start coding.” “two days to get a repo … two days to get a pipeline …”
#IBMGarage
@holly_cummins
“this provisioning software is broken” #IBMGarage
@holly_cummins
Slide 170
10 minute provision-time
what we sold
“this provisioning software is broken”
#IBMGarage
@holly_cummins
Slide 171
what the client thought they’d got 10 minute provision-time
what we sold
3 month provisiontime
“this provisioning software is broken”
#IBMGarage
@holly_cummins
Slide 172
what the client thought they’d got 10 minute provision-time
the reason 3 month provisiontime
84-step pre-approval process what we sold
“this provisioning software is broken”
#IBMGarage
@holly_cummins
Slide 173
#IBMGarage
@holly_cummins
Slide 174
#IBMGarage
@holly_cummins
Slide 175
old-style governance isn’t going to work #IBMGarage
@holly_cummins
Slide 176
Provider A
#IBMGarage
@holly_cummins
Slide 177
Provider A
Provider B
“we’re going to change cloud provider to fix our procurement process!” #IBMGarage
@holly_cummins
Slide 178
Provider A
Provider B
“we’re going to change cloud provider to fix our procurement process!” #IBMGarage
@holly_cummins
Slide 179
if the developers are the only ones changing, cloud native is not going to work
#IBMGarage
@holly_cummins
Slide 180
there is a cost: developers leave
#IBMGarage
@holly_cummins
Slide 181
if you automate something, change the processes around that assume that the previously manual process is expensive or error prone.
#IBMGarage
@holly_cummins