BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
It's not good enough to write production-ready code if you can't deliver it reliably to production.
Deployments are still painful, and they still go wrong, even with sophisticated DevOps processes in place, said J. Paul Reed, managing partner at Release Engineering Approaches with particular focus on software build releases.
He encourages IT organizations to address release engineering, even by simply asking questions about the build:
- What versions of an open source framework are you using?
- What are you running in production?
- How do you react based on the package name?
- How do you sustainably control source code?
- Are these systems built with humans in mind?
An organization that plans ahead with questions like these is better positioned for a successful DevOps pipeline, easier communication about software design and smoother incident response and remediation in production. For example, Reed said, a Git hash is a long, nonsensical string. You can't tell immediately by looking at the hashes which version of something is older, and you can't easily read a hash over the phone to a remote colleague. The code isn't the problem; at issue is how humans and DevOps tools track and work with the code. By addressing these blocks in the pipeline with release engineering, the DevOps team can act more efficiently.
"You're trying to make it easy to answer questions in the moment," Reed said. In this example, that means the ability to talk about a version of a piece of code by assigning to it a logical, human-readable name.
Release management or engineering -- not both
At many companies, IT operations teams build and maintain the software delivery pipelines, but they've never been introduced to the release engineering process. Release management coordinates release trains between various developers and operations personnel. Release engineers have a more technically intense role, working with the code, build systems, configuration management tools and container platforms, among other pipeline components, directly.
"A release engineer can be a release manager's best friend," Reed said. But if the organization attempts to glob together release management and engineering, it can cause problems with the pipeline.
Reed presented "Navigating the Software Delivery Minefield: DevOps and the Art of Release Engineering" at DevOps Enterprise Summit 2017. The 2018 conference will take place October 22 to 24 in Las Vegas.