I believe in DevOps.
Actually, that’s a pretty horrible way to put it. It’s not about belief, like keeping Tinkerbell alive.
I have successfully worked within an environment that implemented a DevOps approach to development, deployment, and maintenance. I also provide classes and consulting on how to approach DevOps from the Ops perspective as well as write books on the topic.
Because I’ve seen the DevOps approach work — and work well — despite the fact that my principal job description is in the Ops side of DevOps, I am a very strong and passionate advocate for DevOps.
Despite the fact that I absolutely support the concepts of DevOps — moving development and deployment into the production space and moving operations into better support of the development space — I frequently find myself with my face in my palm.
Look at the word, DevOps. Note: it doesn’t say Dev. It doesn’t say DEVops. It doesn’t say Dev...Ops (maybe later, if we have time). The core concept behind DevOps is that development and operations are coming together. It’s not that development is taking over operations, as I so frequently have to argue about, with both development and operations. This is an important and key concept because, there’s a reason why you see some specialization within IT. Frankly, IT is difficult.
So, people spend time learning smaller aspects of it in order to be good at those aspects. Yes, acknowledged, there is the very rare individual who truly is a superstar and can do it all, but they are, by definition, extremely rare on the ground. Most of us in IT are just ordinary humans.
I get it. To developers, the operations team just seems like this slow moving behemoth, a dinosaur on its way to the tar pits (yeah, I know, mainly mammals in the tar pits from a different era, work with me). Especially the DBA team (no!) and its ability (no!) to slow things down (no!) with their constant (no!) use of the word “no” (no!).
However, operations exists for a reason — and they’ve developed a lot of special skills and knowledge that seems to be missing from development. Let me outline what I mean.
There has been quite a few spectacular failures recently. Let’s talk about how a fundamental lack of understanding of why ACID properties on a database are kind of important, especially when setting up something that resembles a bank.
No? How about the fact that backup testing, a pretty fundamental aspect of operations, is so easily overlooked. Not to mention evidently being able to use the same login in dev/test and production so that you can corrupt and then drop the production database accidently.
Or even my own web site. I didn’t maintain my updates appropriately (and I know better) which allowed me to be hacked. Happily, I have two sets of backups, one I maintain myself and one maintained by my wonderful service provider, Dreamhost. Recovery was possible in under an hour.
Speaking of backups, maybe taking them at all would be a good idea.
Not all those losses and outages are even remotely the fault of DevOps, but you do get the sense in our ever more development focused age that maybe a little more attention ought to be paid to the Ops side of things and then we can all hang out, singing kumbaya instead of running around putting out fires. The key concept of DevOps is that we meet in the middle and cross over. It’s not that one side takes over the other. The old days where things were Ops-centric were silly, and failed. Let’s not repeat those mistakes by going completely Dev-centric. Let’s do DevOps.