@holly_cummins
#CodeCamp #RedHat
let’s install it!
where do I download it?
Slide 6
Slide 6 text
@holly_cummins
#CodeCamp #RedHat
Slide 7
Slide 7 text
@holly_cummins
#CodeCamp #RedHat
yes, irony
Buy Quarkus!
Quarkus helps you be
cloud native!
Slide 8
Slide 8 text
what are we
even trying to
buy?
Slide 9
Slide 9 text
what are we
even trying to
buy?
Slide 10
Slide 10 text
Kubernetes
what are we
even trying to
buy?
Slide 11
Slide 11 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Slide 12
Slide 12 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
Slide 13
Slide 13 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
DevOps
but make it 2021
Slide 14
Slide 14 text
Kubernetes
what are we
even trying to
buy?
Micro
services
Born
on the Cloud
12-factor
DevOps
but make it 2021
Slide 15
Slide 15 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 16
Slide 16 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 17
Slide 17 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 18
Slide 18 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 19
Slide 19 text
No content
Slide 20
Slide 20 text
@holly_cummins
#RedHat
microservices will
make me look so
good
software is fashions
Slide 21
Slide 21 text
@holly_cummins
#RedHat
surely no one would …
Slide 22
Slide 22 text
@holly_cummins
#RedHat
surely no one would …
Slide 23
Slide 23 text
@holly_cummins
#RedHat
surely no one would … oh.
Slide 24
Slide 24 text
@holly_cummins
#RedHat
cv-driven
development
Slide 25
Slide 25 text
@holly_cummins #RedHat
there’s a whole
landscape to explore
Slide 26
Slide 26 text
@holly_cummins #RedHat
it’s not just a landscape
it’s a catalog
Slide 27
Slide 27 text
@holly_cummins #RedHat
it’s not just a landscape
it’s a catalog
ooh, which ones
shall I have?
Slide 28
Slide 28 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 29
Slide 29 text
@holly_cummins
#RedHat
what problem are we
trying to solve?
Slide 30
Slide 30 text
@holly_cummins
#RedHat
“the problem I am solving is there
are no microservices on my CV”
Slide 31
Slide 31 text
@holly_cummins #RedHat
my problem is
there aren’t
enough containers
yet?
Slide 32
Slide 32 text
@holly_cummins #RedHat
my problem is
there aren’t
enough containers
yet?
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
Warning
May contain
Coupling
Cloud native spaghetti
Distributed monolith
!
Slide 37
Slide 37 text
@holly_cummins
#RedHat
Slide 38
Slide 38 text
@holly_cummins
#RedHat
distributed monolith
Slide 39
Slide 39 text
@holly_cummins
#RedHat
distributed monolith
worst of both worlds:
no compile-time checking
… or guaranteed function execution
Slide 40
Slide 40 text
@holly_cummins
#RedHat
microservices are
not the goal
Slide 41
Slide 41 text
@holly_cummins
#RedHat
microservices are
not the goal
they are the means
Slide 42
Slide 42 text
@holly_cummins
#RedHat
microservices are
not the goal
they are the means
they are a means
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
“the cloud native-ness comes from these network connections”
Slide 45
Slide 45 text
“the cloud native-ness comes from these network connections”
(no, it doesn’t!)
Slide 46
Slide 46 text
the pain comes from these network connections
Slide 47
Slide 47 text
remember the distributed computing fallacies?
the pain comes from these network connections
Slide 48
Slide 48 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 49
Slide 49 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 50
Slide 50 text
@holly_cummins
#CodeCamp #RedHat
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 51
Slide 51 text
@holly_cummins
#CodeCamp #RedHat
“every time we change one
microservice, another breaks”
true story
@holly_cummins #RedHat
how do you know if
you’re decoupled?
Slide 54
Slide 54 text
can you deploy
independently? v5.1.4
v5.1.4
v5.1.4
v5.1.4
Slide 55
Slide 55 text
can you deploy
independently? v6.2.8
v65.7
v5.1.4
v1.0.5
Slide 56
Slide 56 text
@holly_cummins
#RedHat
“we made our pipeline enforce releasing
all our microservices at the same time.”
true story
Slide 57
Slide 57 text
@holly_cummins
#RedHat
can you even
deploy at all?
Slide 58
Slide 58 text
@holly_cummins
#RedHat
can you even
release at all?
Slide 59
Slide 59 text
can you
release often? v1.0
v1.0
v1.0
v1.0
Slide 60
Slide 60 text
@holly_cummins
#CodeCamp #RedHat
deferred wiring
a deploy is not a release
Slide 61
Slide 61 text
can you
release often? v1.0
v2.0
v1.0
v1.0
Slide 62
Slide 62 text
@holly_cummins
#CodeCamp #RedHat
feature flags
a deploy is not a release
Slide 63
Slide 63 text
@holly_cummins
#CodeCamp #RedHat
A/B testing
canary deploys
a deploy is not a release
Slide 64
Slide 64 text
@holly_cummins
#CodeCamp #RedHat
“we have a CI/CD”
Slide 65
Slide 65 text
@holly_cummins
#CodeCamp #RedHat
by the way, you also
can’t buy devops
Slide 66
Slide 66 text
@holly_cummins
#CodeCamp #RedHat
and you can’t
buy a devop
Slide 67
Slide 67 text
@holly_cummins
#CodeCamp #RedHat
CI/CD is something you do
not a tool you buy
Slide 68
Slide 68 text
@holly_cummins
#CodeCamp #RedHat
“i’ll merge my branch
into our CI next week”
Slide 69
Slide 69 text
@holly_cummins
#CodeCamp #RedHat
“CI/CD … CI/CD … CI/CD …
we release every six months …
CI/CD …. ”
Slide 70
Slide 70 text
@holly_cummins
#CodeCamp #RedHat
continuous.
I do not think that word means
what you think it means.
Slide 71
Slide 71 text
@holly_cummins
#RedHat
“we’re going too slowly.
we need to get rid of COBOL
and make microservices!”
true story
Slide 72
Slide 72 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 73
Slide 73 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 74
Slide 74 text
@holly_cummins
#RedHat
releases are like brushing your teeth:
if it hurts do it more often
Slide 75
Slide 75 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”)
oh wait …
every change needs a
front-end change too
Slide 87
Slide 87 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
Slide 88
Slide 88 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
Slide 89
Slide 89 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 90
Slide 90 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 91
Slide 91 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 92
Slide 92 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 93
Slide 93 text
@holly_cummins
#CodeCamp #RedHat
a new approach to ops
Slide 94
Slide 94 text
@holly_cummins
#CodeCamp #RedHat
SRE
Slide 95
Slide 95 text
@holly_cummins
#CodeCamp #RedHat
a new approach to risk
Slide 96
Slide 96 text
@holly_cummins
#CodeCamp #RedHat
de-risk through
automation, not paperwork
Slide 97
Slide 97 text
@holly_cummins
#CodeCamp #RedHat
Slide 98
Slide 98 text
@holly_cummins
#CodeCamp #RedHat
old-style governance
isn’t going to work
Slide 99
Slide 99 text
@holly_cummins
#CodeCamp #RedHat
“this provisioning
software is broken”
Slide 100
Slide 100 text
@holly_cummins
#CodeCamp #RedHat
what we sold
“this provisioning
software is broken”
10 minute
provision-time
Slide 101
Slide 101 text
@holly_cummins
#CodeCamp #RedHat
what we sold
“this provisioning
software is broken”
10 minute
provision-time
3 month
provision-
time
what the
client
thought
they’d got
Slide 102
Slide 102 text
@holly_cummins
#CodeCamp #RedHat
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 103
Slide 103 text
@holly_cummins #RedHat
one thing you can buy
Slide 104
Slide 104 text
@holly_cummins #RedHat
one thing you can buy
Slide 105
Slide 105 text
@holly_cummins #RedHat
one thing you can buy
Slide 106
Slide 106 text
@holly_cummins
#CodeCamp #RedHat
you may not want all
the cloud you bought
Slide 107
Slide 107 text
@holly_cummins
#CodeCamp #RedHat
you may not want all
the cloud you bought
Slide 108
Slide 108 text
@holly_cummins #RedHat
Hey boss, I created a
Kubernetes cluster.
true story, unfortunately
me
Slide 109
Slide 109 text
@holly_cummins #RedHat
Hey boss, I created a
Kubernetes cluster.
I forgot it for 2
months.
true story, unfortunately
me
Slide 110
Slide 110 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 111
Slide 111 text
@holly_cummins #RedHat
Slide 112
Slide 112 text
@holly_cummins #RedHat
Slide 113
Slide 113 text
@holly_cummins #RedHat
$11,448.30
Slide 114
Slide 114 text
@holly_cummins #RedHat
uh…
why are our cloud
bills so large? what is all
this stuff?
mystery money pit
Slide 115
Slide 115 text
@holly_cummins #RedHat
Slide 116
Slide 116 text
@holly_cummins #RedHat
Slide 117
Slide 117 text
@holly_cummins #RedHat
cost is now an
engineering concern