DevOps, short for Development-Operations, is a set of practices and principles that serve to extend the Agile software development methodology to include IT operations. Before the recent rise of DevOps, there was an unquestioned distinction, and some would say a wall, between development teams and operations teams. However, with the wide adoption of DevOps in recent years, that distinction or wall has begun to collapse. Following the DevOps approach, development and operations teams have started working together to enact a software development and deployment process that is faster; more product and customer-oriented; more fluid and adaptive; and ultimately more agile.
Perhaps the most widely cited benefit of the DevOps model is that it helps enterprises achieve the ideal of continuous deployment. Here the development and operations teams join forces to continuously push new features and fixes to their production environments, avoiding the long delays and customer-disconnects often suffered by companies that have not yet fully embraced the DevOps approach. However, while some advocates continue to emphasize continuous deployment as DevOps' central benefit, other advocates envision DevOps as a far broader philosophy and process that improves the entire software development life cycle as a whole.
The History of DevOps Adoption
By most estimations, DevOps has been around for nearly a decade, beginning as merely an idea floated around at a few conferences before growing into one of the most widely adopted and trusted new approaches to software development and deployment in enterprises today. Here's a quick timeline that tracks the rise of DevOps in recent years:
Patrick Debois and Andrew Shafer give a talk entitled "Agile Infrastructure" at the Agile Toronto Conference. The two emphasize the importance of finding better ways for development teams and operations teams to work together.
The influential Flickr team begins adopting and advocating the new approach while committing themselves to more than ten software deployments per day. Their success and enthusiasm inspires Debois to launch a new conference: "Devopsdays." Soon the term "DevOps" takes on a life of its own.
A DevOps community begins to emerge and grow with each new Devopsdays conference and DevOps-inspired application.
The DevOps community matures into a viable movement leading to a series of widely read foundational texts on the DevOps credo, such as "The Phoenix Project," and Puppet Labs' first State of DevOps survey. DevOps soon goes mainstream with widespread enterprise adoption. Even household names such as Target begin embracing the DevOps model.
The industry continues to see increasing enterprise adoption. The majority of enterprises now claim to follow DevOps practices and principles. According to the RightScale 2016 State of the Cloud Report, DevOps adoption grows from 66% in 2015 to 74% in 2016.
Applying the DevOps Process to Application Development
DASA, the DevOps Agile Skills Association, identifies six core principles of the DevOps process, many of which are closely related, and all of which apply to improving the software development life cycle. For many DevOps advocates, these six principles help guide enterprises as they begin applying the DevOps process to their application development workflow:
1. Customer-driven decision-making
DevOps teams emphasize decision-making that anticipates and responds to customer needs as a first priority.
2. Goal-oriented mindset
DevOps teams are goal-oriented, basing their success on completion of product-related goals and deadlines.
3. Ownership of complete software life cycle
DevOps teams take responsibility for the entire life cycle of the software they develop, deploy and maintain.
4. Cross-functional expertise
DevOps teams encourage broad cross-functional knowledge and expertise.
5. Ongoing improvement
DevOps teams are Agile teams, capable of rapid adaptive change as opportunities for improvement arise.
6. Workflow automation
DevOps teams take advantage of Infrastructure-as-a-Service (IaaS) and other emerging technologies to accelerate their workflow through automation.
Three Core Benefits of DevOps Adoption
Although there are dozens of ways that the DevOps process can improve the software development life cycle, three of the stand-outs include increased deployment frequency, quicker recovery times and shorter lead-time for changes.
1. Increased deployment frequency
Continuous deployment is often considered the most important benefit of DevOps adoption. Accordingly, deployment frequency measures how frequent, or continuous, an enterprise deploys their code. It is hardly a surprise that Puppet Labs' widely cited 2017 State of DevOps Report found that companies that have adopted the DevOps model deploy their software at a faster rate than those that don't. However, the sheer magnitude of the difference is remarkable. Generally, enterprises adopting new strategies and workflows to increase their efficiency are more than satisfied with improvements of fifteen or twenty percent. However, according to Puppet Labs' report, DevOps adopters are deploying at 46 times the rate of those without a DevOps model in place.
2. Shorter mean-time-to-recovery (MRRT)
The average, or mean, time it takes for a production site or service to recover from a failure is a key metric used to measure the health of development and operations teams. The lower the MRRT, the more resilient the overall site or service, and the happier an enterprise's customers will be. According to the same Puppet Labs report cited above, teams adopting the DevOps model have MRRTs that are on average 96 times lower than traditional teams, meaning their sites and services recover on average 96 times more quickly.
3. Shorter lead time for changes
Another important measure of the success of DevOps adoption is how much it accelerates the process of developing and deploying a single change. This is often called the change-lead time. According to the same Puppet Labs report cited above, companies adopting DevOps processes have a change lead time that is 440 times shorter than companies using traditional approaches to software development.
These three metrics clearly highlight the remarkable benefits that successful adoption of DevOps can bring to the enterprise. However, it's important to remember that DevOps is also widely held to improve a number of other key metrics, such as change volume, which measures the sheer quantity of code an enterprise can successfully deploy in a given period; deployment failure rate, which measures the rate at which deployments fail, whether for functional or customer-usability reasons; and availability, which generally measures a site or service's uptime—just to name a few.
For these reasons and dozens of others, a well-orchestrated transition to a DevOps process has become one of the most trusted ways to align a competitive enterprise with the demands of the digital age.