In recent years, DevOps has conquered the IT world by storm and substantially changed software development. It affects how companies develop, deploy and monitor software and operate applications as well as the underlying infrastructure.
But what exactly is DevOps? Historically, developers (Dev) and the IT operation (Ops) have worked in separate teams. But the shrinking release cycles make this kind of approach no longer practical. With a modern DevOps approach, responsibilities for the operation are shared and moved further up into the development process.
What is DevOps
In general terms, DevOps is an approach based on lean and agile principles that enables a company to produce software faster and more continuously through internal collaboration. Companies can apply DevOps to respond more rapidly to opportunities in the market and take customer feedback into account more quickly. DevOps is neither a specified method nor a process but rather a combination of shared practices, values and principles.
John Willis, one of the defining figures in the DevOps movement, describes DevOps as “CAMS” (Culture, Automation, Measurement, Sharing).
Above all else, DevOps is a cultural movement—it encompasses much more than just new tools and methods. DevOps changes the entire corporate culture by redefining the expectations and priorities along with the principles that these are based on. Companies that successfully use DevOps have also adapted their corporate culture. Traditional company structures and processes impede efficient collaboration and productivity. The DevOps culture is about tearing down walls and deconstructing silos to enable autonomous teams to work independently, faster and more efficiently.
Automation is an indispensable part of DevOps and is applied everywhere. The automation of repeated standard processes for testing, configurations and deployment functions to create more time for more sophisticated tasks and room for innovations.
The integration of feedback is an essential element of DevOps. This means that everything that is possible is measured in DevOps, and the results are shared with the largest possible audience. This includes performance, processes and even personal metrics. It is based on the firm belief that you can only improve something that is measured.
Sharing ideas, problems, skills, knowledge, successes and feedback is an important aspect of DevOps. The above-mentioned metrics are part of this. Sharing experiences even outside of the company also helps others to improve. DevOps believes that an open exchange and feedback ultimately help everyone to improve.
History of DevOps
The Belgian Patrick Debois has shaped DevOps more than anyone else. For many people, his meeting with Andrew Shafer at the Agile Conference in Toronto in 2008 marks the start of the DevOps movement. Two Flickr employees gave the pioneering talk “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr” at the Velocity Conference in 2009. Here they advocated that the only reasonable way to build, test and deploy functioning new software was to integrate development and operations and make them transparent. This presentation is probably responsible for the name DevOps.
Since then, DevOps has enjoyed continuous successes and has also moved from a niche into the mainstream since 2012. According to RightScale, 74% of the companies are already using a form of DevOps in 2016.
There are three main reasons that persuade companies to introduce DevOps:
Customer expectations are rising, and the market is moving at increasing speeds. Agile development methods are accelerating the creation of new features, but it is often difficult for traditional tools and processes to keep pace. DevOps helps to carry the achievements of agility into other company divisions as well. The use of DevOps methods also results in higher throughput as well as stability. DevOps enables a quicker detection and correction of code errors and makes the product run smoother. The 2016 State of DevOps report showed that high-performing DevOps companies have 200 times higher code deployment rates than organizations with less release cycles. They also have to spend 22 percent less time to revise their software.
The increasing digitization and explosion of software and infrastructure-as-a-service requires more and more IT and services. DevOps makes it easier to scale up. A new server is easy to deploy since DevOps does this in an automated, predictable, repeatable and inexpensive way.
The value of the automatic quality assurance in each development step is quantifiable: the recovery times of DevOps are 24 times faster, and their change failure rate is three times lower.
Processes and Culture
Continuous deployment is an integral component of DevOps. Its purpose is to significantly reduce the time between writing the code and its application by live users. To reach continuous deployment, the team has to rely on infrastructure that automates the steps to the deployment. After each integration that satisfies the release criteria, the live application is updated with the new code. Continuous deployment is mandatory for DevOps because only someone with the ability to continuously provide new code can rely on having the customer benefit from changes within minutes.
Shorter release cycles
How can the DevOps teams reach such short release cycles without compromising on the quality assurance? The most important element in continuous deployment is the quality assurance pipeline, since it forms the central feedback mechanism that is indispensable in the use of continuous deployment. The pipeline is divided into several phases in which testing is performed and each of which automatically give feedback to the developers, who are thus constantly informed about the quality of their software change. The build process is terminated in the event of a fault.
The approach of testing software and systems as early as possible is referred to as “shift left”. The testing is performed earlier in the lifecycle (in other words, it is moved to the left of the project timeline). The goal is to increase the quality, shorten the long test cycles and reduce the probability of dealing with unpleasant surprises at the end of the development cycle.
Before the introduction of DevOps, there were often situations in which development urged changes in the features while operations focused more on stability. What matters today is to deliver software releases in the best quality possible that fulfill the users’ expectations for speed. This is not just about simply increasing the release speeds but satisfying the expectations of today’s users.
Traditional companies often find it difficult to keep pace with the speed of digitization. Highly productive IT organizations that have introduced DevOps can deploy code multiple times more frequently and up to 200 times faster than their competition.
To learn more about agile practices inluding DevOps, download our free poster below.