DevOps is one of those things that is easy to define but difficult to explain. And it’s even more difficult to implement and, ultimately, optimize.
On a fundamental level, DevOps is the union of software development (Dev) and IT operations (Ops) under a continuous operational model. This is in stark contrast to the traditional “waterfall” style of deployment in which development, testing, QA, operational support and a host of other functions are conducted as distinct processes by specialized teams, often with little or no coordination between them.https://o1.qnsr.com/log/p.gif?;n=203;c=204663295;s=11915;x=7936;f=201904081034270;u=j;z=TIMESTAMP;a=20410779;e=i
The idea is to streamline what is often characterized as a laborious and often frustrating method of development into a smoother, more holistic approach, one that is both more agile and shortens the release cycle to more accurately meet the demands of an increasingly mobile and service-based economy.
DevOps: A Whole New World
The problem, of course, lies in the fact that implementing DevOps is not just a matter of deploying new development software or upgrading infrastructure but encompasses the entire spectrum of enterprise operations, including technology, people, processes, culture and even the business model itself.
According to Dominica DeGrandis, director of digital transformation at software integration developer Tasktop and author of “Making Work Visible - Exposing Time Theft to Optimize Work & Flow,” DevOps is best viewed as a means to enhance the full value stream of the enterprise.
“There are different layers of abstraction,” she said. “It encompasses all activities that take place to deliver business value. We’re looking at optimizing whole systems across many different teams, considering new ways of optimizing teamwork, managing the handoffs between teams and improving visibility.”
To say that this is a daunting prospect is putting it mildly, at best. And when we consider the complexity this represents for large, multinational enterprises, which may have thousands of applications up and running at any given time, and perhaps hundreds of project teams all working to complete targeted tasks, it looks downright frightening. But the fact remains that current release models are no longer sustainable, and time is growing short for enterprises of all sizes to become more agile.
“I would say that by 2020, all companies will need to learn how to be software companies,” said Bob Davis, chief marketing officer for Plutora, a developer of continuous delivery management solutions. “I’ve seen this accelerate significantly over the last eight or nine months, with 75 to 80 percent of enterprises at some state of the DevOps transition. The movement is in full flight now, for sure.”
This is causing many organizations to wonder just what are the key elements of a DevOps strategy. While platforms like Puppet Labs and Accenture offer a wealth of tools designed to break down the barriers between the multiple processes of a typical software project, virtually everyone agrees that this will produce only minimal value without fundamental changes to organizational culture and the development mindset.
“The one thing I see is that people tend to think that to get into DevOps they just have to change job titles,” said James Smith, CEO of app-monitoring firm Bugsnag. “But what resonates most is thinking about DevOps as an ownership shift.”
By this, Smith is referring to the typical practice of each individual team completing its specific task and handing the project off to the next team. Not only does this lead to delays, confusion and, ultimately, errors, it removes crucial context from critical points in the workflow as individuals perform functions or make changes to the product without knowing why or what effect it will have on performance.
DevOps: Product, Not Process
Under the DevOps model, teams are organized around the product, not the process. In a simplified example, a team responsible for a new banking app might consist of a programmer, a tester, and IT specialist, as well as a line-of-business manager, a back-office representative and perhaps even an end user. In this way, user requirements can be defined and refined during the programming and testing phases, while at the same time integration with legacy infrastructure and business platforms can move apace.
Ultimately, the enterprise should see a highly condensed and eminently more flexible development cycle in which updates and new releases are issued in weeks, if not days, rather than the year(s)-long process of traditional models.
“We are talking to customers releasing once per week, certainly once per month,” said Plutora’s Davis. “They are constantly reiterating.”
This idea may sound strange to some, but only when viewed through the lens of the current development model. How, for instance, is IT expected to maintain a stable operating environment if the code is changing from week to week? How can QA ensure that other systems will not be adversely affected under such a chaotic development scheme?
This is where DevOps starts to affect the mindset of software development that has guided the industry for generations. Since we are now looking at development and operations as one continuous workflow, this inevitably leads to situations in which testing and QA become part of the live operational environment. This more than anything is what produces the strongest resistance on the operational side, which has long lived by the mantra “first, do no harm.”
But as Bugsnag’s Smith points out, an accelerated delivery cycle means that bad code can be corrected in a matter of days, not next year when the new release comes out. So in this new world, live production testing becomes much more tenable.
“You can get away with a lot more with DevOps,” he said, “because you can push out a new patch in a week.”
Clearly, this is Brave New World territory for the enterprise, and there is no simple template on which to build a successful DevOps environment. But as digital services continue to increase their share of the revenue stream, organizations that fail to embrace agile development models and rapid customer fulfillment will find themselves on the losing side of an increasingly fast-paced economy.
DevOps is not likely to become the only way to support software and applications, but it will make up the lion’s share of what both the enterprise and its users deem most crucial to their digital well-being.
Arthur Cole writes about infrastructure for IT Business Edge. Cole has been covering the high-tech media and computing industries for more than 20 years, having served as editor of TV Technology, Video Technology News, Internet News and Multimedia Weekly. His contributions have appeared in Communications Today and Enterprise Networking Planet and as web content for numerous high-tech clients like TwinStrata and Carpathia. Follow Art on Twitter @acole602.