DevOps is about more than getting development and operation teams to work together. It is a philosophy to get teams to embrace collaboration, ship code faster, and be more responsive to the market. And just working together isn’t enough to achieve that goal. In order to truly be successful within DevOps, organizations need to adopt a process that utilizes automation tools and makes sure software is ready to be released into production at any time.
“The whole point of doing DevOps is so that customers get the best features, the best innovation, and the most competitively differentiating solutions as quickly as possible for the benefit of the overall business,” said Michael Sage, chief evangelist at BlazeMeter. “To manage the fast rapid delivery of the software, DevOps teams have to accommodate that kind of pace, and that requires automation and requires teams to collaborate more closely.”
Continuous Delivery is the pipeline for achieving that speed, and DevOps describes the team, culture and processes to support that pipeline, Sage explained.
With the decline of barriers between development and operations teams, shorter feedback loops, and experimentation within DevOps, Continuous Delivery becomes a natural extension of the methodology, according to Yegor Naumov, product marketing manager for JetBrains. This is because one of the key practices of DevOps is Continuous Integration, “which allows teams of developers to work on different parts of software independently, and make sure all the parts are being continuously integrated and validated,” he explained. Continuous Delivery builds on the concept of Continuous Integration, and pushes the process to deployment and staging environments.
(Related: Plugging into DevOps)
Others believe that the two concepts are intrinsically linked, and you can’t succeed with one without the other. “Leveraging DevOps process and technology empowers an organization to embrace and achieve Continuous Delivery,” said Aruna Ravichandran, vice president of DevOps product marketing at CA Technologies. “Without adopting DevOps methodologies, I’m not sure how you could accomplish a pace of applications release that approaches any semblance of continuous.”
Nonetheless, it is obvious that the two methodologies go hand in hand, according to Andrew Phillips, vice president of DevOps strategy at XebiaLabs. Continuous Delivery is a delivery mechanism, and isn’t particularly useful or interesting if you don’t implement some kind of end-to-end thinking, and that end-to-end thinking is DevOps, he explained.
“A pipeline is an end-to-end piece of technology, and to make it really useful, you have to have an organization that learns to think on an end-to-end basis, learns to think together as a unit, gets ideas from customers, and knows they have a responsibility to look at the entire process and that the responsibility doesn’t stop because a small piece of the pipeline is done,” he said.
So with DevOps requiring development teams to learn new skills, work in new environments and work at a new pace, how is Continuous Delivery meant to make all of that easier? According to Sam Guckenheimer, product owner and group project planner at Microsoft, in the past developers were removed from customer value, which was very unrewarding. “It took many months or even many years to get a release out, and you never got much feedback on whether the stuff you were doing was a value to anyone,” he said.
“In a DevOps Continuous Delivery world, you have this immediate connection to the customer without all this intermediation and without all of this separation, time and delay of gratification.”
Higher-quality software delivered faster than ever before may sound too good to be true, but what businesses forget is that Continuous Delivery reduces the granularity of what is being released, according to XebiaLabs’ Phillips. “By focusing on releasing smaller bits, Continuous Delivery gives you more speed and better quality at the same time, and because you are actually pushing reasonably small things through your pipeline, if it breaks halfway through, it is very easy to localize what caused the problem,” he said.
Those smaller releases help development teams fail fast, but also fix fast. “It is fine you fail as long as you know about it right away, because that is the whole point,” said BlazeMeter’s Sage. “Software is always full of bugs. You find those bugs the first hour you commit, then it is easier to fix, so it is not only about fewer defects; it is about shorter defect lifespans.”
This idea of “fail fast” also enables teams to try new things. According to Phillips, since the feedback loop is so responsive in a DevOps/CD life cycle, teams can experiment with new features, and if they get negative feedback, they can easily remove it.