Holly Cummins
Red Hat
@holly_cummins
#JBCNConf
why you can’t buy
cloud native
Slide 2
Slide 2 text
@holly_cummins
#JBCNConf
Slide 3
Slide 3 text
@holly_cummins
#JBCNConf
Slide 4
Slide 4 text
@holly_cummins
#JBCNConf
let’s install it!
Slide 5
Slide 5 text
@holly_cummins
#JBCNConf
let’s install it!
where do I download it?
Slide 6
Slide 6 text
@holly_cummins
#JBCNConf
Slide 7
Slide 7 text
@holly_cummins
#JBCNConf
yes, there is
some irony
Buy Quarkus!
Quarkus helps you be
cloud native!
Slide 8
Slide 8 text
@holly_cummins
#JBCNConf
quarkus makes your cloud cloudier
Slide 9
Slide 9 text
@holly_cummins
#JBCNConf
quarkus makes your cloud cloudier
Slide 10
Slide 10 text
@holly_cummins
#JBCNConf
did I mention quarkus
saves cloud costs?
Slide 11
Slide 11 text
@holly_cummins
#JBCNConf
did I mention quarkus also
makes developers happier?
Slide 12
Slide 12 text
what are we
even trying to
buy?
Slide 13
Slide 13 text
what are we
even trying to
buy?
Slide 14
Slide 14 text
Kubernetes
what are we
even trying to
buy?
Slide 15
Slide 15 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Slide 16
Slide 16 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
Slide 17
Slide 17 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
DevOps
but make it 2021
Slide 18
Slide 18 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
12-factor
DevOps
but make it 2021
Slide 19
Slide 19 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
12-factor
Just
Cloud
DevOps
but make it 2021
Slide 20
Slide 20 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
12-factor
Just
Cloud
DevOps
but make it 2021
Modern
and Nice
Slide 21
Slide 21 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
12-factor
Just
Cloud
idempotent
DevOps
but make it 2021
Modern
and Nice
Slide 22
Slide 22 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
12-factor
Just
Cloud
idempotent
DevOps
but make it 2021
legacy app
but on the
cloud
Modern
and Nice
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
@holly_cummins
#RedHat
microservices will
make me look so
good
software is fashions
Slide 25
Slide 25 text
@holly_cummins
#RedHat
surely no one would …
Slide 26
Slide 26 text
@holly_cummins
#RedHat
surely no one would …
Slide 27
Slide 27 text
@holly_cummins
#RedHat
surely no one would … oh.
Slide 28
Slide 28 text
@holly_cummins
#RedHat
cv-driven
development
Slide 29
Slide 29 text
@holly_cummins #RedHat
there’s a whole
landscape to explore
Slide 30
Slide 30 text
@holly_cummins #RedHat
it’s not just a landscape
it’s a catalog
Slide 31
Slide 31 text
@holly_cummins #RedHat
it’s not just a landscape
it’s a catalog
ooh, which ones
shall I have?
Slide 32
Slide 32 text
@holly_cummins #RedHat
it’s not just a landscape
it’s a catalog
ooh, which ones
shall I have?
they’re all so
shiny
Slide 33
Slide 33 text
@holly_cummins
#RedHat
what problem are we
trying to solve?
Slide 34
Slide 34 text
@holly_cummins
#RedHat
“the problem I am solving is there
are no microservices on my CV”
Slide 35
Slide 35 text
@holly_cummins #RedHat
my problem is
there aren’t
enough containers
yet?
Slide 36
Slide 36 text
@holly_cummins #RedHat
my problem is
there aren’t
enough containers
yet?
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
Warning
May contain
Coupling
Cloud native spaghetti
Distributed monolith
!
Slide 41
Slide 41 text
@holly_cummins
#RedHat
Slide 42
Slide 42 text
@holly_cummins
#RedHat
distributed monolith
Slide 43
Slide 43 text
@holly_cummins
#RedHat
distributed monolith
worst of both worlds:
no compile-time checking
… or guaranteed function execution
Slide 44
Slide 44 text
@holly_cummins
#RedHat
microservices are
not the goal
Slide 45
Slide 45 text
@holly_cummins
#RedHat
microservices are
not the goal
they are the means
Slide 46
Slide 46 text
@holly_cummins
#RedHat
microservices are
not the goal
they are the means
they are a means
Slide 47
Slide 47 text
No content
Slide 48
Slide 48 text
“the cloud native-ness comes from these network connections”
Slide 49
Slide 49 text
“the cloud native-ness comes from these network connections”
(no, it doesn’t!)
Slide 50
Slide 50 text
the pain comes from these network connections
Slide 51
Slide 51 text
remember the distributed computing fallacies?
the pain comes from these network connections
Slide 52
Slide 52 text
remember the distributed computing fallacies?
1. The network is reliable;
2. Latency is zero;
3. Bandwidth is infinite;
4. The network is secure;
5. Topology doesn't change;
6. There is one administrator;
7. Transport cost is zero;
8. The network is homogeneous.
the pain comes from these network connections
Slide 53
Slide 53 text
remember the distributed computing fallacies?
1. The network is reliable;
2. Latency is zero;
3. Bandwidth is infinite;
4. The network is secure;
5. Topology doesn't change;
6. There is one administrator;
7. Transport cost is zero;
8. The network is homogeneous.
9. Distributed means decoupled!
the pain comes from these network connections
Slide 54
Slide 54 text
@holly_cummins
#JBCNConf
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
Slide 55
Slide 55 text
@holly_cummins
#JBCNConf
“every time we change one
microservice, another breaks”
true story
Slide 56
Slide 56 text
@holly_cummins
#JBCNConf
distributed != decoupled
Slide 57
Slide 57 text
@holly_cummins #RedHat
how do you know if
you’re decoupled?
Slide 58
Slide 58 text
can you deploy
independently? v5.1.4
v5.1.4
v5.1.4
v5.1.4
Slide 59
Slide 59 text
can you deploy
independently? v6.2.8
v65.7
v5.1.4
v1.0.5
Slide 60
Slide 60 text
@holly_cummins
#RedHat
“we made our pipeline enforce releasing
all our microservices at the same time.”
true story
Slide 61
Slide 61 text
@holly_cummins
#RedHat
can you even
deploy at all?
Slide 62
Slide 62 text
@holly_cummins
#RedHat
can you even
release at all?
Slide 63
Slide 63 text
can you
release often? v1.0
v1.0
v1.0
v1.0
Slide 64
Slide 64 text
@holly_cummins
#JBCNConf
deferred wiring
a deploy is not a release
Slide 65
Slide 65 text
can you
release often? v1.0
v2.0
v1.0
v1.0
Slide 66
Slide 66 text
@holly_cummins
#JBCNConf
feature flags
a deploy is not a release
Slide 67
Slide 67 text
@holly_cummins
#JBCNConf
A/B testing
canary deploys
a deploy is not a release
Slide 68
Slide 68 text
@holly_cummins
#JBCNConf
“we have a CI/CD”
Slide 69
Slide 69 text
@holly_cummins
#JBCNConf
by the way, you also
can’t buy devops
Slide 70
Slide 70 text
@holly_cummins
#JBCNConf
(Matt was not serious, before anyone takes this out of context and decides he’s an awful person and they should hate him.)
Slide 71
Slide 71 text
@holly_cummins
#JBCNConf
if you only want a small amount of devops …
you can’t buy a devop
Slide 72
Slide 72 text
@holly_cummins
#JBCNConf
CI/CD is something you do
not a tool you buy
Slide 73
Slide 73 text
@holly_cummins
#JBCNConf
“i’ll merge my branch
into our CI next week”
Slide 74
Slide 74 text
@holly_cummins
#JBCNConf
“CI/CD … CI/CD … CI/CD …
we release every six months …
CI/CD …. ”
Slide 75
Slide 75 text
@holly_cummins
#JBCNConf
continuous.
I do not think that word means
what you think it means.
Slide 76
Slide 76 text
@holly_cummins
#RedHat
“we’re going too slowly.
we need to get rid of COBOL
and make microservices!”
true story
Slide 77
Slide 77 text
@holly_cummins
#RedHat
“we’re going too slowly.
we need to get rid of COBOL
and make microservices!”
“… but our release board
only meets twice a year.”
true story
Slide 78
Slide 78 text
@holly_cummins
#RedHat
“we can’t actually release a
microservice without the
release board and all the other
microservices need to be
released at the same time and the
manual QA cycle and the release
checklist and the incantations and the
death march and the sacrificing a goat and
the spreadsheet and the moon being in the right
phase and…”
Slide 79
Slide 79 text
@holly_cummins
#RedHat
releases are like brushing your teeth:
if it hurts do it more often
Slide 80
Slide 80 text
@holly_cummins #RedHat
“we can’t ship until we
have more confidence
in the quality”
@holly_cummins #RedHat
integration layer
(“panicked sandwich”)
database layer
front-end layer
our layer
(“business logic”)
we
can’t make progress
because we need a
change to the
database
Slide 95
Slide 95 text
@holly_cummins #RedHat
integration layer
(“panicked sandwich”)
database layer
front-end layer
our layer
(“business logic”)
we
can’t make progress
because we need a
change to the
database
Slide 96
Slide 96 text
@holly_cummins #RedHat
integration layer
(“panicked sandwich”)
database layer
front-end layer
our layer
(“business logic”)
oh wait …
every change needs a
front-end change too
we
can’t make progress
because we need a
change to the
database
Slide 97
Slide 97 text
@holly_cummins #RedHat
integration layer
(“panicked sandwich”)
database layer
front-end layer
our layer
(“business logic”)
oh wait …
every change needs a
front-end change too
we
can’t make progress
because we need a
change to the
database
Slide 98
Slide 98 text
@holly_cummins #RedHat
integration layer
(“panicked sandwich”)
database layer
front-end layer
our layer
(“business logic”)
oh wait …
every change needs a
front-end change too
uh…
we can’t release our
cool new stuff because we’re
dependent on a change in
the integration layer
we
can’t make progress
because we need a
change to the
database
Slide 99
Slide 99 text
@holly_cummins #RedHat
integration layer
(“panicked sandwich”)
database layer
front-end layer
our layer
(“business logic”)
oh wait …
every change needs a
front-end change too
uh…
we can’t release our
cool new stuff because we’re
dependent on a change in
the integration layer
we
can’t make progress
because we need a
change to the
database
what are that ^&!
*(&!! integration team even
doing with their time?
Slide 100
Slide 100 text
@holly_cummins #RedHat
integration layer
(“panicked sandwich”)
database layer
front-end layer
our layer
(“business logic”)
oh wait …
every change needs a
front-end change too
uh…
we can’t release our
cool new stuff because we’re
dependent on a change in
the integration layer
we
can’t make progress
because we need a
change to the
database
what are that ^&!
*(&!! integration team even
doing with their time?
Slide 101
Slide 101 text
@holly_cummins
#JBCNConf
a new approach to ops
Slide 102
Slide 102 text
@holly_cummins
#JBCNConf
SRE
Slide 103
Slide 103 text
@holly_cummins
#JBCNConf
a new approach to risk
Slide 104
Slide 104 text
@holly_cummins
#JBCNConf
de-risk through
automation, not paperwork
Slide 105
Slide 105 text
@holly_cummins
#JBCNConf
Slide 106
Slide 106 text
@holly_cummins
#JBCNConf
old-style governance
isn’t going to work
Slide 107
Slide 107 text
@holly_cummins
#JBCNConf
“this provisioning
software is broken”
Slide 108
Slide 108 text
@holly_cummins
#JBCNConf
what we sold
“this provisioning
software is broken”
10 minute
provision-time
Slide 109
Slide 109 text
@holly_cummins
#JBCNConf
what we sold
“this provisioning
software is broken”
10 minute
provision-time
3 month
provision-
time
what the
client
thought
they’d got
Slide 110
Slide 110 text
@holly_cummins
#JBCNConf
what we sold
“this provisioning
software is broken”
10 minute
provision-time
3 month
provision-
time
what the
client
thought
they’d got
the reason
84-step
pre-approval process
Slide 111
Slide 111 text
@holly_cummins #RedHat
one thing you can buy
Slide 112
Slide 112 text
@holly_cummins #RedHat
one thing you can buy
Slide 113
Slide 113 text
@holly_cummins #RedHat
one thing you can buy
Slide 114
Slide 114 text
@holly_cummins
#JBCNConf
you may not want all
the cloud you bought
Slide 115
Slide 115 text
@holly_cummins
#JBCNConf
you may not want all
the cloud you bought
Slide 116
Slide 116 text
@holly_cummins #RedHat
Hey boss, I created a
Kubernetes cluster.
true story, unfortunately
me
Slide 117
Slide 117 text
@holly_cummins #RedHat
Hey boss, I created a
Kubernetes cluster.
I forgot it for 2
months.
true story, unfortunately
me
Slide 118
Slide 118 text
@holly_cummins #RedHat
Hey boss, I created a
Kubernetes cluster.
I forgot it for 2
months.
… and it’s £1000 a
month.
true story, unfortunately
me
Slide 119
Slide 119 text
@holly_cummins #RedHat
Slide 120
Slide 120 text
@holly_cummins #RedHat
Slide 121
Slide 121 text
@holly_cummins #RedHat
$11,448.30
Slide 122
Slide 122 text
@holly_cummins #RedHat
uh…
why are our cloud
bills so large? what is all
this stuff?
mystery money pit
Slide 123
Slide 123 text
@holly_cummins #RedHat
Slide 124
Slide 124 text
@holly_cummins #RedHat
Slide 125
Slide 125 text
@holly_cummins #RedHat
cost is now an
engineering concern