What is Release Management?
Release management holistically covers the planning, design, development, testing, deployment and support of software product releases. This is achieved by combining the traditional business model of project management with a thorough utilisation of a technical knowledge based domain specialising in SDLC and Information technology infrastructure library (ITIL) practices.
Why go for Release Management?
- Deployment of applications across diverse environments:Today's software products are required to be stationed across varied non-conventional such as app stores, cloud based facilities which can be utilised on a personal level as well as meant for public use. Release management enables the installation of these applications using shell scripts, batch files or even integration with third part deployments tools such as Rethinkdb, Chef, etc.
- Integration with CI systems:Some release management systems facilitate easy syncing with widely used continuous integration systems such as Jenkins to continuously enable smooth deployment of latest builds across different environments.
- Track progress of testing:Nowadays since software products are being built for release over different environments and platforms, it can become cumbersome to monitor the testing progress for these applications. The task includes queries for successful deployment of software patch released by the development team on the occasion of encountering a bug. Release management makes this task less burdensome.
- Control of installations:Certain applications require the control of specific users only to modify certain aspects related to modification in configuration, approval for release in a unique environment. The issue may also be difficulty in reverting back to the previous configuration lack of compatibility with a latest release. Release management allows the glitch free transition to previous or latest versions in software depending upon the requirements of those targeted for use.
- Need for records: Release management does a brilliant job of creating a documented repository of all the records related to changes in configuration, installation activities, upgrades to builds, listing of new features with the release of every new version, etc.
How does a Release Management System Work?
- Approval for Pre deployment:First and foremost, the user makes a request for deployment of software product. This is the trigger for new deployment. The Release Management System (RMS) checks whether an approval is required before a software is readied for deployment in an environment. If the answer is in the affirmative, then notifications are sent in the form of emails to those, who are employed with the authority to give an approval.
- Lining up the deployment job:The RMS gets into the act of scheduling the deployment of an application, which itself requires special software for executing this task. This software is called an automation agent.
- Selection of agent:The release management system consists of a release definition which comprises the required settings to select an appropriate automation agent.
- Downloading of artifacts:Artifacts are basically use cases and design related documents which are generated during the course of SDLC describing the main functionalities and architecture of a software product. The automation agent software downloads all the artifacts mentioned in the software release.
- Execution of deployment:The automation agent executes all the tasks related to deploying the software application at the intended servers.
- Progress logs:For each step of deployment, a log report is generated by the automation agent.
- Approval for post deployment :As soon as the deployment of the application is complete, the release management system checks if there is requirement for post deployment approval. If the answer is in the negative, then the release management system initiates proceedings to move on to deployment of software in the next environment.
- Support Phase:Post the deployment, the release enters a support stage, where the progress logs and bug reports are collected for studying all the problem causing issues. These issues help to generate feedbacks and requests for changes and the whole cycle repeats itself.