What is DevOps and how can it benefit your business?

First coined 15 years ago, DevOps refers to a collection of tools and practices in the software industry that teams adopt to make the software development cycle more efficient and shorter. It is the perfect marriage of software development (Dev) and IT operations (Ops) – and allows development and operations teams to work in unison. This methodology is based on the principles of shared ownership, rapid feedback and the continuous pursuit of workflow automation. 

The core DevOps principles, according to GitLab, are automating the software development life cycle, collaboration and communication, continuous improvement and minimization of waste, and focus on user needs with short feedback loops. "By adopting these principles, organizations can improve code quality, achieve a faster time to market, and engage in better application planning," according to the platform.

Since DevOps was conceptualized, businesses around the world have adopted this methodology in their droves as they migrate away from traditional structured waterfall development methods. The majority of organizations out there use DevOps in at least some way, depending on the source you find, with figures varying from 74% to 83% depending on the source and the research conducted. But the most important organization that matters is your own – and whether adopting DevOps could make a genuine difference to outcomes and productivity levels. 

The origins of DevOps

The traditional waterfall methods of development were falling away in the late 2000s to make way for agile methodologies, with speed over the quality of output more of a priority. Meanwhile, the rise of cloud computing saw platform as a service (PaaS) and infrastructure as a service (IaaS) products maturing into propositions that businesses could adopt. Then continuous integration (CI) began to emerge, according to Steve Mezak, the founder and CEO of Accelerance, a software development outsourcing company.

Concerns grew in the software and development industries that the siloed nature of work could not continue; the process of creating the software could no longer be segmented from deploying and maintaining the software when live. This, according to Atlassian's principal solutions engineer Ian Buchanan "was a fatal level of dysfunction in the industry." 

"They [IT operations and software development communities] railed against the traditional software development model, which called for those who write code to be organizationally and functionally apart from those who deploy and support that code," he wrote in a blog post. "Surely there’s a better way, they said."

The first conference named DevOps Days was held in Belgium in 2009, founded by project manager and agile practitioner Patrick Debois, and the first annual "State of DevOps" report was published at Puppet Labs – a pioneering company in the DevOps industry – by Alanna Brown, vice president of growth at Remote and formerly the senior director for marketing at Puppet.

How does DevOps work?

DevOps methodologies favor releasing small and iterative updates to software rather than massive updates every six to 12 months throughout the same period. This, in turn, feeds into a strategy of bug fixes and new features that allow customers to quickly respond to shifting trends or customer feedback. Should there be new market opportunities or changing demands and behaviors, adopting DevOps principles positions an organization to respond more productively and efficiently. 

Adopting DevOps significantly reduces the waiting time and ensures businesses can be more responsive. If one element needs changing following customer feedback, for example, it can be tweaked quickly and tested immediately – without needing to jump through hoops for approval. There are different rationales as to why DevOps is so popular and effective. Some say it's down to how teams are tasked to collaborate much better while others suggest it's the specific tools and workflows that streamline operations. However the best implementations tend to involve a combination of both. The flexibility of DevOps also makes it arguably better than other project management techniques for software development.

What are the benefits and drawbacks of DevOps?

There have been years of research into the benefits of DevOps for organizations, with the consensus falling on the fact that DevOps practitioners increase the frequency of releases and improve test automation practices. Research published in 2016 suggested as much. The key benefits include greater encouragement of collaboration between departments – which, in turn, improves communication and welfare – as well as continuous releases paving the way for more experimentation and rapid feedback collection.  

RELATED WHITEPAPER

It's the frequency of releases that means you can deliver more features to users or customers in a timely manner, while less time is required for testing and quality assurance (QA) than in traditional siloed models. Moving at pace also encourages greater business agility, which lets you respond quickly to market shifts and be better prepared to make quick decisions about the state of the product more confidently. Iterating faster also means you can be ahead of the curve. Even failure, in this model, can be seen as a success. Moving faster means you're more likely to recover from a setback.

Challenges of adopting DevOps, meanwhile, according to the 2016 paper, include the communication structures that prohibit cross-departmental collaboration – and needing to address the culture shift in the organization. Not all industries are also suitable for DevOps, while ambiguity about what DevOps actually means may make adoption that much harder for teams going through the process. Because DevOps requires fairly massive structural changes, it can be difficult for legacy organizations lumbered with inefficiencies to achieve the transition. The concept of reorganizing at a single stroke can be a daunting prospect. The cultural shift can be difficult to manage as well. Workplace attitudes are often deeply ingrained, and it can be hard to convince previously distant teams to collaborate if they don't want to do so. DevOps can also be a tricky concept to sell to the board.

What are some common DevOps tools out there?

While there are no hard and fast rules for which software should be included in a DevOps toolchain, the same options tend to crop up in most DevOps environments. There's a huge variety out there, but these are some of the biggest names in the DevOps business. 

Docker: Docker is the technology that has been spearheading the uptake of containerization within the enterprise. The beauty of containers is that while they're similar to virtual machines, the fact that one OS image can host multiple containers makes it much lighter on resources than spinning up multiple VMs. The reason Docker, in particular, has proved so popular with the container crowd is that it's made it a whole lot easier and safer to create, manage and scale container-based applications, which can save IT departments huge amounts of time and money. Its flexible and scalable nature has also made it popular within the DevOps community.

Jenkins: Jenkins is an open-source tool used for continuous integration of code. It includes support for a huge number of plugins allowing it to work with a massive amount of systems and projects. This is one of the reasons it has become so invaluable to many DevOps toolchains, along with its ability to trigger builds based on a variety of factors. Like many of the tools used in this sector, it's heavily focused on automating as much of the software development process as possible.

Puppet: Used as a configuration management utility, Puppet is central to many DevOps teams. It's excellent for spinning up new servers and virtual machines and features its own language that is used to define the specific system resources needed. Another commonly used alternative to Puppet is Chef, and while they're widely considered to be neck-and-neck in terms of popularity and sophistication, many argue that Puppet is best suited to operational tasks where Chef favors uses that lean towards development.

Keumars Afifi-Sabet
Contributor

Keumars Afifi-Sabet is a writer and editor that specialises in public sector, cyber security, and cloud computing. He first joined ITPro as a staff writer in April 2018 and eventually became its Features Editor. Although a regular contributor to other tech sites in the past, these days you will find Keumars on LiveScience, where he runs its Technology section.