▸ No source code (written in an older language)
▸ Runs in a green screen terminal,
▸ Has to be emulated.
Slide 12
Slide 12 text
FIGHTING CONTINUOUS
ENTROPY
ADVENTURES IN CONTINUOUS DELIVERY
@GARYFLEMING
Slide 13
Slide 13 text
WHAT IS ENTROPY?
"a thermodynamic quantity representing the
unavailability of a system's thermal energy for
conversion into mechanical work, often interpreted as
the degree of disorder or randomness in [a closed]
system."
Slide 14
Slide 14 text
WHAT IS ENTROPY?
"Disorder of a closed system"
Slide 15
Slide 15 text
SYSTEM
EXPERIMENT:
FISHES
Slide 16
Slide 16 text
SYSTEM EXPERIMENT: FISHES AND TIME
▸ 10 minutes?
▸ 10 hours?
▸ 10 days?
▸ 10000 years?
Slide 17
Slide 17 text
ENTROPY IN
SOFTWARE
Slide 18
Slide 18 text
!
Slide 19
Slide 19 text
MULTI-FACETED
Slide 20
Slide 20 text
Problem
KNOWING WHETHER YOUR
SOFTWARE IS DEPLOYABLE
Slide 21
Slide 21 text
BRIEF INTRO TO
CI/CD
Slide 22
Slide 22 text
CONTINUOUS INTEGRATION
All developers/testers merge their code to a shared
mainline at least once a day.
Slide 23
Slide 23 text
CONTINUOUS INTEGRATION
Related:
▸ Trunk-Based Development
▸ Feature Toggles
Slide 24
Slide 24 text
IF IT HURTS, DO IT
MORE OFTEN.
Slide 25
Slide 25 text
CONTINUOUS DEPLOYMENT
All changes go to production; safely, quickly, and
sustainably.
EXPERIMENT: DEPENDENCY UPDATE DAILY
▸ Update
▸ Build and test
▸ Commit/Revert
▸ Commit causes CD to happen
Slide 34
Slide 34 text
OUTCOME: DEPENDENCY UPDATE DAILY
Mostly success!
▸ Some Major Version upgrades would need
intervention,
▸ Temporary exclusions are important,
▸ Found unexpected end-to-end issues!
Slide 35
Slide 35 text
DEPENDENCY UPDATES: OTHER LANGUAGES
▸ Single versioned: Maven, Gradle, packages.config
e.g
5.4.1
3.0-ALPHA
1.3.2
Slide 36
Slide 36 text
DEPENDENCY UPDATES: OTHER LANGUAGES
▸ Ranges and Lock files: gem/bundler, most JS
frameworks.
>=5.4.1
3.*
[3.7.1)
Slide 37
Slide 37 text
DEPENDENCY UPDATES: OTHER LANGUAGES
▸ Possibly open: pip, some JS frameworks, gem
some-dep
a-different-dep
Slide 38
Slide 38 text
ALWAYS USE A LOCK FILE!
Avoid "It works on my machine"