n o C Q
e v i t a n d u o l c “the n o i t a d n u o f g n i co mput is wrong … .” e v i t a n d u o l c t abo u
#IBM
#IBMGarage
@holly_cummins
Slide 11
n o C Q
e v i t a n d u o l c “the n o i t a d n u o f g n i co mput is wrong … .” e v i t a n d u o l c t abo u
#IBM
#IBMGarage
Dr Holly
@holly_cummins
Slide 12
IBM Garage
@holly_cummins
Slide 13
born on the cloud
IBM Garage
@holly_cummins
Slide 14
born on the cloud
IBM Garage
@holly_cummins
Slide 15
microservices born on the cloud
IBM Garage
@holly_cummins
Slide 16
born on the cloud
IBM Garage
microservices
@holly_cummins
Slide 17
kubernetes born on the cloud
IBM Garage
microservices
@holly_cummins
Slide 18
born on the cloud
IBM Garage
microservices
kubernetes
@holly_cummins
Slide 19
devops born on the cloud
IBM Garage
microservices
kubernetes
@holly_cummins
Slide 20
born on the cloud
IBM Garage
microservices
kubernetes
devops
@holly_cummins
Slide 21
born on the cloud
IBM Garage
microservices
kubernetes
devops
modern and nice
@holly_cummins
Slide 22
born on the cloud
microservices
kubernetes
devops modern and nice
IBM Garage
@holly_cummins
Slide 23
synonym for ‘cloud’ born on the cloud
microservices
kubernetes
devops modern and nice
IBM Garage
@holly_cummins
Slide 24
born on the cloud
microservices
kubernetes
devops
synonym for ‘cloud’
modern and nice
IBM Garage
@holly_cummins
Slide 25
??
IBM Garage
??
??
??
idempotent ??
??
@holly_cummins
Slide 26
rerunnable
IBM Garage
@holly_cummins
Slide 27
born on the cloud
kubernetes microservices
IBM Garage
12-factor
just ‘cloud’ modern and nice
rerunnable
@holly_cummins
Slide 28
why? #IBMGarage
@holly_cummins
Slide 29
#IBM
#IBMGarage
@holly_cummins
Slide 30
build great products faster
#IBM
#IBMGarage
@holly_cummins
Slide 31
what problem are we trying to solve? #IBM
#IBMGarage
@holly_cummins
Slide 32
“everyone else is doing it?”
#IBM
#IBMGarage
@holly_cummins
12 factors #IBM
how to write a cloud application so you don’t get electrocuted #IBMGarage
@holly_cummins
Slide 42
#IBM
#IBMGarage
@holly_cummins
Slide 43
#IBM
#IBMGarage
@holly_cummins
Slide 44
cloud native is not a synonym for ‘microservices’
#IBM
#IBMGarage
@holly_cummins
Slide 45
#IBM
#IBMGarage
@holly_cummins
Slide 46
if ‘cloud native’ has to be a synonym for anything, it would be ‘idempotent’
#IBM
#IBMGarage
@holly_cummins
Slide 47
if ‘cloud native’ has to be a synonym for anything, it would be ‘idempotent’ which definitely needs a synonym #IBM
#IBMGarage
@holly_cummins
Slide 48
how to fail at cloud native #IBMGarage
@holly_cummins
Slide 49
I’m a consultant with the IBM Garage. These are my scary stories
#IBMGarage
@holly_cummins
Slide 50
fail
the magic morphing meaning
Slide 51
so, what is cloud native? #IBMGarage
@holly_cummins
Slide 52
IBM Garage
so, what is cloud native?
@holly_cummins
Slide 53
why are there no microservices in this cloud native app Alice?
#IBMGarage
@holly_cummins
Slide 54
fail
the muddy goal
Slide 55
why is the cloud only saving us money, Alice?
#IBMGarage
@holly_cummins
Slide 56
fail
microservices envy
Slide 57
microservices are not the goal #IBMGarage
@holly_cummins
Slide 58
microservices are not the goal they are the means #IBMGarage
@holly_cummins
Slide 59
“we’re going too slowly. we need to get rid of COBOL and make microservices!”
#IBMGarage
@holly_cummins
Slide 60
“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
distributed monolith but without compile-time checking … or guaranteed function execution
#IBMGarage
@holly_cummins
Slide 65
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 #IBMGarage
@holly_cummins
Slide 66
fail
cloud-native spaghetti
Slide 67
“every time we change one microservice, another breaks”
#IBMGarage
@holly_cummins
fail
the not-actually-continuous continuous integration and continuous deployment
Slide 84
“we have a CI/CD”
#IBMGarage
@holly_cummins
Slide 85
CI/CD is something you do not a tool you buy
#IBMGarage
@holly_cummins
Slide 86
“i’ll merge my branch into our CI next week”
#IBMGarage
@holly_cummins
Slide 87
“CI/CD … CI/CD … CI/CD … we release every six months … CI/CD …. ”
#IBMGarage
@holly_cummins
Slide 88
continuous. I don’t think that word means what you think it means. #IBMGarage
@holly_cummins
Slide 89
how often should you push to master?
#IBMGarage
@holly_cummins
Slide 90
how often should you push to master? integrate?
#IBMGarage
@holly_cummins
Slide 91
how often should you push to master? integrate? every character
#IBMGarage
@holly_cummins
Slide 92
how often should you push to master? integrate? every character
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 93
how often should you push to master? integrate? every character
every commit (several times an hour)
actually continuous … but stupid #IBMGarage
@holly_cummins
Slide 94
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 95
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 96
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 97
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 98
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 99
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 100
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 101
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 102
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 103
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 104
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 105
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 106
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 107
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 108
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 109
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 110
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 111
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 112
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 113
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 114
how often should you test in staging?
#IBMGarage
@holly_cummins
Slide 115
how often should you test in staging? deliver?
#IBMGarage
@holly_cummins
Slide 116
how often should you test in staging? deliver? every push
my favourite
#IBMGarage
@holly_cummins
“this provisioning software is broken” #IBMGarage
@holly_cummins
Slide 148
10 minute provision-time
what we sold
“this provisioning software is broken”
#IBMGarage
@holly_cummins
Slide 149
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 150
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 151
#IBMGarage
@holly_cummins
Slide 152
#IBMGarage
@holly_cummins
Slide 153
old-style governance isn’t going to work #IBMGarage
@holly_cummins
Slide 154
Provider A
#IBMGarage
@holly_cummins
Slide 155
Provider A
Provider B
“we’re going to change cloud provider to fix our procurement process!” #IBMGarage
@holly_cummins
Slide 156
Provider A
Provider B
“we’re going to change cloud provider to fix our procurement process!” #IBMGarage
@holly_cummins
Slide 157
if the developers are the only ones changing, cloud native is not going to work
#IBMGarage
@holly_cummins
Slide 158
fail
the mystery money pit
Slide 159
the cloud makes it so easy to provision hardware.
IBM Garage
@holly_cummins
Slide 160
that doesn’t mean the hardware is free.
IBM Garage
@holly_cummins
Slide 161
or useful. IBM Garage
@holly_cummins
Slide 162
Hey boss, I created a Kubernetes cluster.
IBM Garage
@holly_cummins
Slide 163
Hey boss, I created a Kubernetes cluster.
I forgot it for 2 months.
IBM Garage
@holly_cummins
Slide 164
Hey boss, I created a Kubernetes cluster.
I forgot it for 2 months.
… and it’s £1000 a month.
IBM Garage
@holly_cummins
Slide 165
Slide 166
Slide 167
There is surely nothing quite so useless as doing with great efficiency what should not be done at all. — Peter Drucker
IBM Garage
@holly_cummins
Slide 168
ouch
IBM Garage
@holly_cummins
Slide 169
“we have no idea how much we’re spending on cloud.”
IBM Garage
@holly_cummins
Slide 170
cloud to manage your clouds
IBM Garage
@holly_cummins
Slide 171
IBM Garage
@holly_cummins
Slide 172
fail
microservices ops mayhem
Slide 173
SRE #IBMGarage
@holly_cummins
Slide 174
site reliability engineering
#IBMGarage
@holly_cummins