ITIL 4 Foundation Edition states that “The purpose of the release management practice is to make new and changed services and features available for use.
All leading cloud service providers understand the importance of release management to business – that getting products and features into the hands of customers, being able to iterate and evolve products, is literally the “getting stuff done” practice. Therefore, all cloud service providers offer – to varying degrees of quality – free practice guidance and tools to be the best at release management in the cloud.
The release management practice is where ITIL 4 (and ITSM) meets DevOps. In the book Accelerate, half of the four key lead metrics (out of thirty-six) of high-performing organizations are related to release management:
- Lead time for changes
- Deployment frequency
Although not cloud-specific, it’s important to first understand the application architecture and workload composition because different layers of these have different release management approaches. For example, changes to the “layer of innovation” might be happing multiple times a day and be small changes like colors on a user interface. Other layers such as systems of record (for instance, a Customer Relationship Management database) might change very infrequently and be larger change bundles that impact other dependent services. And often releases are bundled across layers meaning that careful implementation and backout procedures are needed. As the ITIL 4 guidance says:
“Releases can range in size from the very small, involving just one minor changed feature, to the very large, involving many components that deliver a completely new service.”
What the cloud does for ITIL release management is to give you the tools and capabilities to handle the full range of releases.
There is an abundance of proven cloud practices to get the release management practice right, and most of the tools in the cloud are free because cloud service providers know that successful release management practice and getting stuff done drives customer success and maintains customer loyalty. All of which is good news for IT service managers and release managers who are using the ITIL 4 release Management practice with cloud scenarios.
How release management works in the cloud
There are a number of cloud features that improve the ITIL release management practice:
- Cloud services such as AWS Elastic Beanstalk that enable blue/green deployments.
- Use of managed cloud services to reduce the release management burden (the cloud service provider does the release management for the services they manage).
- High levels of automation capabilities to roll releases forward and backward.
- High levels of release management tool integration from an integrated development environment (IDE) to production.
- Decoupling capabilities to reduce the scope, and therefore the batch size, of each release.
The key to your success with cloud-based release management is to leverage all of the above capabilities as part of your cloud-native release management practice.
You can measure your success through the metrics of Lead Time and Frequency. Lead Time can be measured in tools like Pivotal Tracker that tracks story duration and batch size with story points. Frequency is easy to measure if the releases go through a pipeline where activity is measured.
Cloud dos and don’ts for release management
The following dos and don’ts are general guidelines for great release management on the cloud.
- Apply the correct release management approach per layer. Please see Gartner research on Pace-Layered Application Strategy for more background.
- Push the needle toward smaller release batch sizes, with shorter lead times and higher frequency.
- Reduce your release management practice burden by using higher-order managed cloud services – for instance, you don’t need to update the database software if the cloud service provider is managing it for you.
- Use the blue/green release management approach cloud services where applicable, such as with AWS Elastic Beanstalk.
- Use an automated release pipeline for continuous delivery.
- Use the same-old manual release management practices following release “run books” that are out of date and brittle.
- Don’t perceive blue/green practices as nice or specialist or developer/DevOps-only. ITIL 4 embraces DevOps practices, especially in the release management practice.
The ITIL release management practice in the cloud is a solved problem. The practices are well-documented, and the tools are largely free. So, don’t make it a problem for your organization.
Release Management in ITIL
Release and Deployment Management is one of the main processes under the Service Transition section of the IT Infrastructure Library (ITIL®) framework. This process is often referred to in short-form as simply “release management”. ITIL defines release and deployment management as the process of managing planning and scheduling the rollout of IT services, updates and releases to the production environment. Release in this context refers to the development of a newer version of a service or component and deployment means the process of integrating it into the live production environment.
Release management plays an important role of bridging the gap between project activities and the things that project teams produce and the ongoing operations and users that will consume these things. It is very common for organizations to have multiple projects underway at the same time and release management provides a structured approach for bringing changes together, testing to make sure they work correctly and then safely introducing them into the live environments that business operations rely on. Release management also ensures that any applicable knowledge and resources are transferred from the teams developing the new features or components to the operations team that will be responsible for supporting them.
The Release Management Process
It is important that each project team wishing to introduce changes to the production environment are aligned with each other and are aware of each other’s changes and resource usages. They must follow the same process, policies and guidelines for planning, building, testing and deploying a release. ITIL breaks release management down into six sub-processes that enable release management to be performed effectively, efficiently and safely to facilitate the flow of changes into the operations environment.
Release management support: provides guidelines and support for the deployment of releases including the roles that are involved in other parts of the release and deployment management process
Release planning: defines the scope and content of releases according to release management policies, assigns authorized changes into release packages and defines a schedule for building, testing and deploying the release
Release build: deals with the actual development of all required release components including the issuance of all necessary work orders and purchase orders for components sourced from vendors and ensuring that all release components are ready for validation and testing
Release deployment: manages the deployment of release components into the live production environment and the transition of documentation and training to end-users and operating staff.
Early-life (post-release) support: the initial period after the deployment of a new release when the release and deployment management team work with the incident management team to resolve operational issues and remove errors and deficiencies caused by the release.
Release closure: formally closing release activities, verifying all documents and records are properly updated and reporting release outcomes and feedback to project teams.
The Role of a Release Manager
The release manager plays a combined coordination and governance/oversight role – tasked with ensuring that the release is completed effectively and safely. Release managers are typically IT professionals with specialized skills and experience using standards, processes and tools to coordinate release activities. In IT contexts, release managers work with business leaders, IT project teams and operations staff to ensure a well-orchestrated release of technical features into the IT environment. In product management contexts, release managers work with business development, marketing, R&D and other teams to coordinate across the company in support of a planned product release.
Large releases may involve multiple staff members working as a release team. If this is the case, the release manager provides an over-arching management and leadership function, coordinating both the release team and the release itself. The release manager is responsible for governance and quality oversight of the release, determining what level of risk and complexity the release represents and ensuring that the right level of due-diligence is applied to ensure release objectives are achieved without compromising the ongoing operations of the company.
Why is Release Management Needed?
The primary objective of release management is to plan, schedule and control the deployment of IT services and updates into the live environments. Companies evolve and as they do, their needs change, so the IT environment needs to change too. Release management provides a means for making changes effectively and safely. It does this by ensuring only sufficiently tested services and components can be released into the live environment that the business uses.
Some other benefits of release management include:
Faster delivery of changes and new features to users
Reduced risk of un-authorized releases breaking features that people are using
Predictable schedule of deployments at times that minimize business impact
Ensuring new or changed services can meet agreed service requirement
Providing proper knowledge transfer to users and support staff
Release and Deployment Management Approaches
ITIL v3 defines six approaches for release and deployment management. Most companies utilize some variant of these approaches though they may refer to them by different names. It is also common for different approaches to be used for different types and sizes of projects.
Big Bang Approach: new or changed service sis deployed to all users at the same time.
Phased Approach: services are initially deployed to a part of the user base and if no issue observed, the deployment is repeated to other user groups via a scheduled rollout plan
Push Approach: the service component is deployed from a central location and pushed out to the target audience/locations at a pre-defined time
Automated Approach: changes are deployed into the production environment using automated workflows and distribution mechanisms
Manual Approach: frelies on manual activities to distribute a release (often used when the release has system dependencies that require manual checking before or after deployment)
Release and Deployment Management is tasked with enabling an organization’s systems and services to change to support evolving business needs. There may be multiple project teams and vendors working on developing individual changes and it is release management’s job to ensure that all the pieces of the puzzle come together and are tested appropriately prior to introducing them into the live environment that business users rely on. Release management processes coordinated by a skilled and experienced release manager who is equipped with the right set of tools to do their job effectively can all help a company orchestrate safe and effective changes to their IT environment.