WE FOCUS SO often on technical anti-patterns, neglecting
similar problems inside our social structures. Spoiler alert:
The solutions to many difficulties that seem technical can
be found by examining our interactions with others.
Let’s talk about five things you will want to know when
working with those pesky creatures known as humans.
1. Tech Is Not a Panacea
According to noted thought-leader Jane Austen, it
is a truth universally acknowledged that a techie in
possession of any production code whatsoever must
be in want of a container platform.
Or is it? Let’s deconstruct the unspoken assumptions.
Don’t get me wrong—containers are delightful! But let’s
be real: We are unlikely to solve the vast
majority of problems in a given organi-
zation via the judicious application of
kernel features. If you have contention
between your ops team and your dev
team(s)—and maybe they are all facing
off with some ill-considered DevOps
silo inexplicably stuck between them—
then cgroups and namespaces won’t
have a prayer of solving that problem.
Development teams love the idea
of shipping their dependencies bun-
dled with their apps, imagining limit-
less portability. Someone in security
is weeping for the unpatched CVEs,
but feature velocity is so desirable that
security’s pleas go unheard. Platform
operators are happy (well, less surly)
knowing they can upgrade the under-
lying infrastructure without affecting
the dependencies for any applications,
until they realize the heavyweight app
containers shipping a full operating
system are not being maintained at all.
Ah, but, you say, at our org we
do this right (for sufficiently non-terrible values of “right”)! We inject
credentials at run time, and run exactly the same containers in every
environment. Perhaps we even ship
lightweight containers with only statically linked binaries. Okay, but traffic
patterns and data tested across various environments are likely not close
to the same. As the old joke goes:
Proposal: Rename ‘staging’ to ‘theory.’
“It works in theory, not on production.”
There is no substitute for experimentation in your real production environment; containers are orthogonal
to that, while cross-org communication is crucial to clarity of both purpose
and intent. Observability being key is
a fundamental tenet of the gospel according to Charity Majors. The conflicts inherent in misaligned incentives
continue to manifest no matter where
the lines of responsibilities are drawn.
Andrew Clay Shafer calls the state of
any running system “continuous partial failure;” good tooling is necessary
Will Not Fix
Article development led by
Complex socio-technical systems are hard;
film at 11.
BY BRIDGET KROMHOUT