Cloud native – the perfect recipe for innovation, adaptability, and engineering excellence. Right? Well, when it goes right. When it goes wrong, sometimes it’s monster spaghetti, sometimes it’s a quality headache, and – worst of all – sometimes it’s exactly as clunky and slow-to-change as what it’s replacing. As a consultant, Holly gets to see really good practices and also the anti-patterns; in this talk, she’ll share stories of what happens when things go wrong.
2. @holly_cumminsIBM Garage
An expert is a person who
has found out by their
own painful experience
all the mistakes that one
can make in a very narrow
field.
— Niels Bohr
42. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character every commit
(several times an hour)
integrate?
actually continuous
… but stupid
43. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
integrate?
actually continuous
… but stupid
44. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
integrate?
actually continuous
… but stupid
45. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once a
month
integrate?
actually continuous
… but stupid
46. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once every
six months
once a
month
integrate?
actually continuous
… but stupid
47. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once every
six months
once a
month
integrate?
actually continuous
… but stupid
trunk-based
development
48. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once every
six months
once a
month
integrate?
actually continuous
… but stupid
trunk-based
development
ok
49. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once every
six months
once a
month
integrate?
actually continuous
… but stupid
trunk-based
development
bad
ok
50. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once every
six months
once a
month
integrate?
actually continuous
… but stupid
trunk-based
development
bad
bad
ok
51. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once every
six months
once a
month
integrate?
actually continuous
… but stupid
trunk-based
development
bad
bad
seriously?
ok
52. @holly_cummins#IBMGarage
how often should you push to master?
every few commits
(several times a day)
every character
once a day
every commit
(several times an hour)
once a
week
once every
six months
once a
month
integrate?
actually continuous
… but stupid
trunk-based
development
bad
bad
seriously?
my favourite
ok
54. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
55. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
(need a good handle on
feature flags)
56. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
(need a good handle on
feature flags)
ok
57. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
(need a good handle on
feature flags)
ok
old-
school
58. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
(need a good handle on
feature flags)
ok
old-
school
sigh
59. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
(need a good handle on
feature flags)
ok
old-
school
sigh
ok
60. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
(need a good handle on
feature flags)
ok
old-
school
sigh
ok
hardcore
61. @holly_cummins#IBMGarage
how often should you release?
every user story
every push
(many times a day)
every epic once a sprint
once
every two
years
once a
quarter
deploy?
(need a good handle on
feature flags)
ok
old-
school
sigh
my favourite
ok
hardcore
83. @holly_cummins#IBMGarage
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
159. @holly_cummins#IBMGarage
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