The Death of DevOps: Credible, or Clickbait?
The advent of the cloud hasn’t made DevOps obsolete — on the contrary, it’s allowed IT professionals to close the development.
Any article stamped with a headline declaring that “_____ is Dead,” or “_____ Killed _____” is bound to generate some web traffic. But usually, this isn’t meant definitively or literally — it’s just clickbait, a strong or attention-grabbing opinion with some major caveats behind it. “Well,” the author will often concede, “such-and-such isn’t truly dead. But if X were the case, it could be.”
But sometimes they’re serious. And a recent TechCrunch article declaring that “Managed Services Killed DevOps,” appeared to mean every word. It seemed to argue, at the very least, that DevOps won’t live much longer in its current incarnation.
And they’re 100% right. But only because their definition of DevOps is based on a pervasive (and understandable) misconception about how DevOps actually works. It’s only a specific kind of DevOps that’s dying, and it’s only dying because it isn’t being used correctly. But believe us: the strategy itself is far from gone.
DevOps Is About Eliminating Waste Through Automation
The article’s thesis goes something like this: DevOps was designed to foster collaboration between Operations (SysAdmins) and Development by automating inefficient parts of the application development process. However, the cloud (managed services) has simplified that work to such an extent that DevOps has become unnecessary.
Now that developers can just use cloud-based toolsets, why bother with DevOps programs? And DevOps isn’t “value-creating” in any strict sense, anyways; it’s just a more efficient version of QA, a now-unnecessary evil.
Where this theory falls apart, though, is that integration between SysAdmins and developers was never the primary goal of DevOps — it was always just a nice benefit. DevOps is about automating as much of the application development process as possible to eliminate waste and increase deployment speeds. That’s application testing, building, packaging, distributing, and data collection, all made hands-free.
At the same time, developers get a continuous stream of robust, validated feedback as to how their products perform. In other words, they know, at any moment, whether their efforts are creating tangible business value, or if they should rather pivot. And while the cloud can help to optimize the DevOps process (or more accurately, the Continuous Delivery process), it will never be able to automate the particulars of highly-specific app development.
Comprehensive Monitoring Is Needed More Than Ever
Indeed, within cloud environments, there is even more need for comprehensive data collection, monitoring, trend creation, and predictive analysis. Full stack developers need automation that’s germane to their unique app. An automated cloud solution will never completely capture its specific language or dependent components (database, streams, messaging layer, dataflows, experience testing, etc.), and will therefore never complete a truly comprehensive feedback loop.
In other words, even with the cloud, developers still have to wrestle with all the annoying inefficiencies of development — which DevOps resolves to a greater extent than any other strategy or technology available today.
The issue is that many organizations see DevOps from a SysAdmin perspective. Or rather, that DevOps is SysAdmin, just rebranded and made redundant by the cloud. For one, DevOps will always be the responsibility of development. And two, that’s a false dichotomy: the cloud simply allows SysAdmins to better delegate cumbersome tasks (similar to how they no longer swap RAID drives, test backups, or sniff networks), and focus efforts on creating more value for the company.
In this sense, DevOps is only dead if weeding out inefficiency is dead. But more to the point, organizations need to understand that the cloud and DevOps are mutually compatible, if not beneficial. They simply work at different levels.
Test the performance of new features before they launch, correlate traffic to resource utilization and cost, manage server buys and configurations, and continually refine DevOps processes. Read more in our DevOps Development: Keeping the Lights On guide.