DevOps: Threat or Menace? (Video)
The title above is a joke. Mostly. We've heard so much about DevOps -- good, bad, and indifferent -- from so many people who contradict each other, that we turned to Alan Zeichick, one of the world's most experienced IT analysts, to tell us what DevOps is and isn't, how it can help get work done (and done right), how it can hinder progress, and how to make sure DevOps is a help, not a hindrance, if you or your employers decide to implement DevOps yourselves at some point.
That's what "DevOps" is to me. A meaningless buzzword. I did once see a "DevOps guy" lauded as some kind of hero for changing a haproxy configuration and reloading it.
Devops is one of those meaningless bullshit terms that seeks to create something complicated out of something simple. Basically, if you want shit to work, which is the goal here I'm guessing, you put your developers and sys admins working the same room and get them to run something that will work in production. Simple.
Devops has also been used to give them impression that system administration can be abstracted away as some kind of quasi-cloud-development thingy. That is not the case nor will it ever be so.
Hi! Happy Tuesday
My understanding is that DevOps was coined by a manager at Etsy who recruited developers for managing IOPs and other costs in the Amazon cloud via software designed to do just that. DevOps meant someone who was saavy enough to write system level code.
Somewhere along the way this notion got morphed into being the system administrator and the developer.
DevOps:
1. Developers optimizing Amazon and other cloud environment costs by using application code specialized to manage system administration aspects of the cloud; including managing switches, spinning up VMs, etc.
2. Developers with system administration responsibilities.
The reality is that Etsy moved off of Amazon to an in-house data center and left us with a messy legacy of a term, DevOps. :-)
DevOps is a model where developers can spin up a VM via some cloud mechanism, throw in their code and launch without having to get an SA involved. This is great for lower environments, and lets you use CI tools like Jenkins to do a build/test/refine loop, but once you get near production, presumably you don't want the code churning so much. Then you want the SAs in the loop to manage environments for stability and to tune for performance. What the suits want is an "easy-button" solution that does all the provisioning/tuning/deployments so they can drop all those knowledgeable, expensive SAs and just let the developers handle it all. This is probably suboptimal as you don't necessarily get the benefits of performance tuning and looking at the overall structure.
DevOps is a specialization which used to be part of standard system administration. Developing custom tools to do custom tasks, in this case related to "Ops" (another specialty that used to be standard sysadmin territory). The term is a great dummy term, but really does not distinguish someone's ability to manage servers and infrastructure.
You seem to be the 'new guy' who preaches that everything should be run in a generic docker container, complaining about the 'old guy' who wants none. Meanwhile, most of the people worth their salt understand that sometimes generic works and sometimes it doesn't. If there was some magic perfect layout everyone would be using it. Instead, we have a huge array of both hardware and software being used in the market. Knowing a dictionary of buzz words does not make you good, and usually indicates just the opposite.
-The wise argue that there are few absolutes, the fool argues that there are no probabilities.
devops was spawned from startup culture. imho it was never intended to be something that lasted longer than a few hundred users or internal need. The needs of ops and developers, while similar in some ways, vary dramatically in others. devops is a compromise designed to foster quick, often unscaleable delivery of a service. Once larger companies caught on that you could make devs to op work, and vice versa, the trend became unstoppable. its still an insufferable title.
As an op, i dont write the kind of code that would get into a formal repo with a standup and peer review. im writing a script to automate something that either pisses me off or takes up too much of my time. I write breakfix code too, but its not designed to upgrade or mod easily and i dont share a ton of comments or documentation because im busy handling the infrastructure. piping my one-liners and quick functions through the holy trinity of git/gerrit/jenkins for review by real developers is a demoralizing pain in the ass. it also slows down fixes and deployments by subjecting talented coders to a confusing ratsnest of code that isnt meant to become a fundamental part of how a user interacts with the brand.
and making devs subservient to ops isnt something you should do either. scrum and kanban and swimlanes are boring 15-30 minute reminders that marketing drives the bus. We need to be part of the rollout process to make sure things, if they break, are handled appropriately. its nice to have validation the codes been tested as well, but all these things are an email or a quick chat and dont need to involve a manager.
Good people go to bed earlier.