Micro Focus is now part of OpenText. Learn more >

You are here

You are here

Release management with ITIL/ITSM: What to automate?

public://pictures/linda_rosencrance_photo-4.jpg
Linda Rosencrance Freelance writer/editor
 

Release management is the single most misunderstood process in ITIL (Information Technology Infrastructure Library), the IT framework for delivering IT services and service management, according to Jayne Groll, CEO of the DevOps Institute.

ITIL practices are supposed to help organizations uncover areas where they need to improve. They offer vendor-neutral guidelines about where to make changes, including what and where elements of the process can be automated so you can reduce costs and increase productivity. But when it comes to release management, figuring out just what to automate can be confusing. There isn't even agreement as to what exactly release management is or what kind of authority it has, said Groll.

There's tons of information out there on ITIL and ITSM release management. But where do you begin if you’re a mid-level manager trying to educate yourself on the basics? Or if you're a seasoned release manager who wants to learn about the techniques and tools that are available to automate key processes that have typically been manual?

Here's what your team needs to know.

 

 

DevOps brings clarity to release management

How to approach release management automation following ITIL and ITSM practices has been confusing for years, Groll said. “Then along came DevOps, which gave clarity to release management, because continuous delivery actually is release management.

"It’s all about the process of releasing software into production from the very early stages of testing in development and continually testing through the pipeline. It's about automatic deployments [to get] a healthy piece of software into production."

From an ITSM perspective, release management is all about build, test, and deploy while continuous delivery is about build, test, and deploy using automation, Groll said.

DevOps and continuous delivery—in the less complex realm of agile release management—have begun to push larger organizations toward automation in some areas, because doing it manually is both slower and more error-prone, said Forrester Research analyst Charles Betz.

"Release management is all about build, test, and deploy while continuous delivery is about build, test, and deploy using automation." —Charles Betz

“There’s no upside to doing this stuff manually. The only reason you see it done manually is the pushback of operations teams who say, ‘We’ve always done it this way.’ And behind that is often lurking a fear for their jobs,” said Betz.

The reason companies are moving toward automating release management is that they want new functionality to be available to the market more quickly, according to Betz. The essence of agile is speed. "If we have an idea for a product, we cannot afford delay,” he said.

Infrastructure automation: The larger context for release management

DevOps teams working to improve their continuous delivery cycles can be thwarted when infrastructure automation, including release management automation, is not in place or not fully available upon request.

"In some of my larger enterprise customers, we see up to six weeks of wasted time while they request new infrastructure for projects," said Julian Fish, director of product management at Micro Focus.

“One of the ways that we can reduce timelines and align the development and the operations organizations is through infrastructure provisioning—allowing the development organization to have a service catalog, or a portal where they can request infrastructure.”

Then, as the development organization increases its rate of delivery and starts making additional use of infrastructure, the ability to perform full-stack provisioning becomes important.

"We can reduce timelines and align the development and the operations organizations through infrastructure provisioning—allowing the development organization to have a service catalog, or a portal where they can request infrastructure."
Julian Fish

In other words, the provisioning of the application infrastructure to infrastructure automation, and the maintaining of consistency of the infrastructure through the different environments, are key for organizations that want to embrace continuous delivery benefits and transition toward DevOps, Fish said.

Infrastructure provisioning tools

Driving change in infrastructure automation by way of deployment automation is the first step toward organizational transformation, process simplification, and quicker time to market, said Fish. Infrastructure provisioning tools are important to ensure that base infrastructure is in place for subsequent application deployments.

Many technologies are available to accomplish this, Fish said: "As we’re building our infrastructure as well as automating our applications, we could be using tools such as Chef, Puppet, and CFEngine to do modeling and creation of infrastructure. Potentially they could even be used for application automation." Other tools might come into play for cloud-based infrastructure provisioning and deployment automation.

"Driving change in infrastructure automation by way of deployment automation is the first step toward process simplification and quicker time to market."
—Fish

Release management and ITIL

Fish noted that DevOps and release management go hand in hand. ITIL or ITSM can provide the process framework and drivers around governance for delivery of applications into higher-level environments. And release management is the glue that binds everything together.

“Release management allows us to track and trace our enterprise changes from an ITIL/ITSM perspective, as well as our continuous delivery practices down into development in the system and at the lower-level environment side."

Get started with automated testing

Continuous delivery is all about release management, Groll said. It’s about the controls that have to go into releases, it’s about ongoing builds, and it’s about ongoing tests. “So for me, the number-one piece of automation to look for is testing software.”

The piece of automation that organizations struggle with most is testing software, not the software itself. Why? Because testing/QA has always been a downstream activity, and in many cases it's still a manual one.

Since the objective of release management is build, test, and deploy, organizations should consider automating integration testing, functional testing, and unit testing, according to Groll.

"For me, the number-one piece of automation to look for is testing software."
Jayne Groll

However, because of the “shift left” movement within software testing—in which testing is performed earlier, or farther left on the lifecycle timeline—automating security testing is also critical and has to be built into the pipeline as well, she said.

Forrester's Betz agreed that software testing should be automated, which is part of what the build system does. The role of the build system is to run the automated tests, and also to combine particular pieces of software into a deployable package, he said.

“The automated tests can include tests written by the developers, as well as capabilities like static analysis of code for errors and quality. And as part of this, you may also see performance testing that can be automated.”

Automating software deployment to production

Deploying a software package to the production environment is another process that organizations should automate. Previously, that was done by typing up a 10-page Word document. “That’s what an ITIL release package might include—detailed deployment instructions and a detailed deployment plan,” Betz said.

Tools such as Chef and Puppet are good at configuring at a detailed level more specific resources. But they’re somewhat lacking when it comes to the orchestration of complex deployments that involve multiple packages of software being applied to running systems that need to be handled with care, Betz said.

“Tools like Chef and Puppet have not done that historically, but they’re moving in that direction,” he said. “It’s actually lesser-known tools that have been at the forefront of application release automation. I suspect Chef and Puppet will both get more orchestration in them, but they’re not the first place you go with orchestration.”

The automation advantage

An organization’s ability to deliver high-quality products to market rapidly and safely is its most important competitive differentiator. By exploring and implementing deployment automation options, DevOps and continuous delivery teams are better able to build, test, and deliver reliable software more quickly.

 

 

What has your team experienced with release automation in ITIL/ITSM environments? Share your experiences in the comments section below.

Keep learning

Read more articles about: App Dev & TestingDevOps