A FRIEND RECENTLY said to me, “We can’t do DevOps,
we use a SQL database.” I nearly fell off my chair. Such
a statement is wrong on many levels.
“But you don’t understand our situation!” he rebuffed.
“DevOps means we’ll be deploying new releases of
our software more frequently! We can barely handle
deployments now and we only do it a few times a year!”
I asked him about his current deployment process.
“Every few months we get a new software release,”
he explained. “Putting it into production requires a lot
of work. Because we use SQL, the deployment looks
something like this: First, we kick out all the users and
shut down the application. Next the DBAs (database
administrators) modify the database schema. Once
their work is done, the new software release is installed
and enabled. The process takes many
hours, so we tend to do it on the week-
end, which I hate. If it fails, we have to re-
vert to the backup tapes and restore ev-
erything from scratch and start again.”
Wow. There is a lot to unpack there.
Let me start by clearing up a number of
misconceptions, then let’s talk about
some techniques for making those de-
ployments much, much easier.
First, DevOps is not a technology, it is
a methodology. The most concise definition of DevOps is that it is applying
Agile/lean methods from source code
all the way to production. This is done
to “deliver value faster,” which is a fancy
way of saying reducing the time it takes
for a feature to get from idea to production. More frequent releases means less
time a newly written feature sits idle
waiting to be put into production.
DevOps does not require or forbid
any particular database technology—
or any technology, for that matter. Saying you can or cannot “do DevOps” because you use a particular technology is
like saying you cannot apply Agile to a
project that uses a particular language.
SQL may be a common “excuse of the
month,” but it is a weak excuse.
I understand how DevOps and the
lack of SQL databases could become inexorably linked in some people’s minds.
In the 2000s and early 2010s companies
that were inventing and popularizing
DevOps were frequently big websites
that were, by coincidence, also popularizing NoSQL (key/value store) databases. Linking the two, however, is confusing correlation with causation. Those
same companies were also populariz-
Article development led by
Automation and a little discipline
allow better testing, shorter release cycles,
and reduced business risk.
BY THOMAS A. LIMONCELLI