While interviewing Eberhard Wolff about his practical continuous delivery book, it's clear that effective DevOps adoption means full test coverage and pipeline automation.
The installation and use of a CI server is a standard in any IT department that is bold enough to throw around the term DevOps, but simply having a Jenkins or Concourse server running jobs every hour or two doesn't mean you're doing continuous integration right.
"I'd say that continuous integration is nowadays a commodity, up to the point where people actually have forgotten what it actually means. People are using integration servers just to do a regular compile," said Eberhard Wolff, a software architect and Fellow at innoQ, as we talked about his recently released continuous delivery book.
How to become a Jenkins expert
Part 1 -- A step-by-step Jenkins tutorial
Part 2 -- Create your first Jenkins build job
Part 4 -- Fix Jenkins plugin download errors
Part 5 -- What's better? Jenkins or Maven?
Continuous integration and effective DevOps
According to Wolff, it's not unusual to see organizations create a feature branch in their Git repository, have a team work on that branch independently for an extended period of time, and simply use their CI server to compile that branch. The problem with that? Nothing, if it fits with the organization's development methodology, but it's certainly not continuous integration, and it's not a process that fits in with the concept of continuous delivery.
"They're missing the original point about continuous integration," Wolf said. "That's the state we are in. People have forgotten about the original ideas behind CI."
The CI server is certainly a helpful tool that helps organizations navigate through often confusing DevOps waters, but it's only one small part of the puzzle. The big pieces of the puzzle are testing and the automation of manual processes, which are topics emphasized heavily in Wolff's continuous delivery book.
The 'continuously interrupted' anti-pattern
According to Wolff, any form of human intervention taking place during any of the continuous integration pipeline's tasks is a serious faux pas. "Just having Jenkins and just having a deployment pipeline is not the key challenge. The key challenge is going into production without sign-off."
Eberhard Wolff, author of A Practical Guide to Continuous Delivery
Wolff says that during his initial engagement with customers, he will often ask what the key impediments are to executing a continuous delivery pipeline. For most customers, the roadblock is some manual process, often part of the user acceptance testing phase, that requires human intervention. As long as human intervention is required, continuous delivery becomes interrupted delivery.
So automation is clearly near and dear to Wolff's heart, but in order to have confidence in an automated deployment, a software project must have a thorough and comprehensive set of tests, which is why Wolff's continuous integration book, along with the interview he had with TheServerSide, is replete with a discussion of how important testing is to the whole continuous delivery process. And of course, when you start talking about test tools and automation frameworks, the inevitable result is a discussion about effective DevOps.
Automation, testing and effective DevOps
Wolff does an impressive job defining DevOps and pulling the definition of DevOps back around to the topic of testing, automation and continuous deployment. To hear Wolff's take on the topic, listen to the accompanying podcast replaying the interview he had with TheServerSide. Wolff's knowledge of the continuous integration is impressive, and his opinions on various ways to make DevOps effective are interesting.
As for the continuous delivery book itself, entitled A Practical Guide to Continuous Delivery, Wolff says the key thing that sets this one apart from others he has written and others that are on the market is the manner in which it takes a less theoretical and more practical approach to continuous delivery. "I talk about specific tools, I provide advice about how to use them, I have examples of how to use the tools," said Wolff. He emphasized that the various examples of tools like Chef, Docker, Vagrant, Jenkins and SonarQube will give readers the confidence to run these CI and CD tools on their own and begin acquiring the technical skills needed to implement continuous integration and continuous delivery systems of their own.
For more of Wolff's insights into effective DevOps, deployment tools, pipelines, CI tooling and his take on the value his latest continuous delivery book provides to readers, listen to the full podcast of his interview with TheServerSide's Cameron McKenzie.
You can follow Cameron McKenzie on Twitter: @cameronmcnz