#RedHat
@holly_cummins
garbage collection and microservices
Slide 41
Slide 41 text
#RedHat
@holly_cummins
garbage collection and microservices
Slide 42
Slide 42 text
#RedHat
@holly_cummins
garbage collection and microservices
Slide 43
Slide 43 text
#RedHat
@holly_cummins
garbage collection and microservices
Slide 44
Slide 44 text
#RedHat
@holly_cummins
garbage collection and microservices
if you chain 100 microservices together,
you are almost guaranteed a GC pause
Slide 45
Slide 45 text
#RedHat
@holly_cummins
Slide 46
Slide 46 text
#RedHat
@holly_cummins
Slide 47
Slide 47 text
#RedHat
@holly_cummins
the JVM tunes itself differently on servers
Slide 48
Slide 48 text
#RedHat
@holly_cummins
the JVM tunes itself differently on servers
… but what’s a server?
Slide 49
Slide 49 text
#RedHat
@holly_cummins
answer(ish):
Slide 50
Slide 50 text
#RedHat
@holly_cummins
// This is the working definition of a server class machine:
// >= 2 physical CPU's and >=2GB of memory
answer(ish):
actual hotspot source code
Slide 51
Slide 51 text
#RedHat
@holly_cummins
Slide 52
Slide 52 text
#RedHat
@holly_cummins
takeaway: don’t shrink your containers too
much or your JVM will make bad decisions
advice accurate as of June 2022. all performance advice should be independently verified. do not try this at home without testing first. your mileage may vary.
Slide 53
Slide 53 text
#RedHat
@holly_cummins
wait, isn’t that the
opposite of the advice in the
previous section? should my
containers be big or
small?
Slide 54
Slide 54 text
#RedHat
@holly_cummins
this is the chaos part :)
wait, isn’t that the
opposite of the advice in the
previous section? should my
containers be big or
small?
#RedHat
@holly_cummins
The cloud makes it so easy to
provision hardware.
Slide 58
Slide 58 text
#RedHat
@holly_cummins
That doesn’t mean
the hardware is free.
Slide 59
Slide 59 text
#RedHat
@holly_cummins
That doesn’t mean the hardware is
free.
Slide 60
Slide 60 text
#RedHat
@holly_cummins
That doesn’t mean the hardware is
free.
Or useful.
Slide 61
Slide 61 text
#RedHat
@holly_cummins
That doesn’t mean the hardware is
free.
Or useful.
Or shuts itself off.
Slide 62
Slide 62 text
#RedHat
@holly_cummins
Hey boss, I created a
Kubernetes cluster.
Slide 63
Slide 63 text
#RedHat
@holly_cummins
Hey boss, I created a
Kubernetes cluster.
I forgot it for 2 months.
Slide 64
Slide 64 text
#RedHat
@holly_cummins
Hey boss, I created a
Kubernetes cluster.
I forgot it for 2 months.
… and it’s €1000 a month.
Slide 65
Slide 65 text
Photo by daveynin, flickr
Slide 66
Slide 66 text
#RedHat
@holly_cummins
2017 survey
25%
of 16,000 servers
doing no useful work
Slide 67
Slide 67 text
#RedHat
@holly_cummins
2017 survey
25%
of 16,000 servers
doing no useful work
“perhaps someone
forgot to turn them off”
Slide 68
Slide 68 text
#RedHat
@holly_cummins
finops
figuring out who in
your company forgot
to turn off their cloud
Slide 69
Slide 69 text
#RedHat
@holly_cummins
companies that went out of
business for cloud cost accidents
Slide 70
Slide 70 text
@holly_cummins #RedHat
Slide 71
Slide 71 text
#RedHat
@holly_cummins
(See Troy tomorrow at GOTO !)
Slide 72
Slide 72 text
#RedHat
@holly_cummins
(See Troy tomorrow at GOTO !)
Slide 73
Slide 73 text
#RedHat
@holly_cummins
$11,448.30
(See Troy tomorrow at GOTO !)
Slide 74
Slide 74 text
#RedHat
@holly_cummins
“I did find a setting on your plan that
set the max cacheable file size to
15GB and it looks like your zipfile is
18GB big”
$11,448.30
(See Troy tomorrow at GOTO !)
Slide 75
Slide 75 text
#RedHat
@holly_cummins
Slide 76
Slide 76 text
#RedHat
@holly_cummins
maybe this is the chaos part
#RedHat
@holly_cummins
demo recap:
• consumer-driven contract testing can save your bacon
• pact is a mock for the consumer
• pact is a functional test for the producer
• shared json contracts aligns expectations across services
Slide 123
Slide 123 text
#RedHat
@holly_cummins
so …
don’t assume cloud is a solved problem
don’t assume microservices will solve all your problems
contract testing may solve some of your problems