An Overview on Release and Deployment Management Strategy

Size: px
Start display at page:

Download "An Overview on Release and Deployment Management Strategy"

Transcription

1 Volume 118 No , 5-12 ISSN: (printed version); ISSN: (on-line version) url: ijpam.eu An Overview on Release and Deployment Management Strategy Dr.P.Shanmugasundaram Manager - Information Technology IPM (Integrated Process Management) Practice Bangalore, INDIA Shan.Palanimalai@gmail.com Dr. B.Sarojini, Assistant Professor Department of Computer Science Avinashilingam University Coimbatore, INDIA dr.b.sarojini@gmail.com Abstract The aim of Release and Deployment Management process is to deliver services and maintain integrity of an organization's IT production environment while deploying releases. Release and Deployment Management activities come under the Service Transition phase of the ITIL s Service Lifecycle. The dominant intention of Release and Deployment Management is to deploy successful releases into production and establish effective use of the services in order to bring value to the users or customers. However there are many occurrences of poor quality releases at a high cost to the business, due to the increasing complexity of application tiers and infrastructure environments, growing volume and frequency of application releases, lack of control over the release procedures, inadequate relationship between different teams (DevOps disconnect), and manual deployments etc. Therefore, it is important for organizations to choose appropriate Release and Deployment management approaches, best practices to deliver services to their users and customers. This paper is intended to illustrate the Release and Deployment management process flow, sequence of actions with respect to delivering successful and quality release and best practices for delivering effective changes into an IT production environment. Keywords Release Management, Deployment, Change Management, Incident Management, Configuration Managemet I. INTRODUCTION According to ITIL (Information Technology Infrastructure Library) the aim of Release and Deployment Management process is, To plan, schedule, and control the build, test, and deployment of releases, and to deliver new functionality required by the business while protecting the integrity of existing services. The Release and Deployment Management predominantly intend to ensure that all changes are installed or deployed successfully into the production IT environment with minimum risks to business. The scope of Release management and Deployment management comprises of: Accelerating and delivering changes faster at optimum cost and reduced risk by driving appropriate release strategy with the suitable design, plan, and approach for deployment of a change into IT production environment in collaboration with the CAB (Change Advisory Board). On schedule and successful deployment of Release Package by defining the readiness of each release based on release criteria i.e. Quality of release, release package and production environment readiness, training and support plans, rollout and back-out plans, and risk management plan. Facilitate appropriate training and documentation to ensure ongoing support of the new service that takes place and to help the customers/users to optimize the use of service to support their business activities. It is also imperative to retain integrity of production environment by deploying the right releases. Release Management process is supervised by the Release Manager whose role is principal to the success of a release. The Release manager guides to enable the readiness of the releases, and to proficiently ascertain the deployment targets for the deployment stages of a release. This level of control guarantees that, the Release Manager can deliver changes to the IT production environment successfully, to all relevant stakeholders on time also to achieve business value. 5

2 II. RELEASE AND DEPLOYMENT MANAGEMENT PROCESS A release is a set of approved changes to an IT service. A release can comprise of hardware, software, processes, documentation or any other components that are needed for the successfully implementation of approved change to the IT services. In General, organizations make Release policies, which enable to define how releases are numbered, how frequently they are released, and even in what way they are released like single shot or phased rollout. ITIL motivates in categorizing the release as part of the Release policy i.e. Major Release, Minor Release or Emergency Release. Major Releases A major release represents in introducing completely new functionality or major hardware or software changes which are not in frequent nature. Usually it will be marked as v1.0, v2.0 with major indicators or milestones Minor Releases A minor release makes important enhancements or improvement to an existing functionality, or frequently packaging together a number of fixes. These are marked indicated as v1.1, v1.2, v1.3 etc. Emergency Releases An emergency release needs an immediate attention to fix an issue. It may be numbered like v1.1.1, v1.1.2, v1.1.3, etc. There are several choices from planning to the deployment of releases. It is the responsibility of the release management team to take the right approach in deploying releases with minimum disruptive manner or desired impact to the business activities. ITIL recommends that the Release and deployment team should determine whether the release is going to be deployed automatically (i.e. using installation software, etc.) or manually. III. RELEASE MANAGEMENT PROCESS FLOW Release management contains five major processes to plan and deploy the approved releases into an IT production environment. The following flow diagram (Figure-1) indicates the key activities involved in release management processes. A. Release Planning: Access the importance of the Release. Select the most relevant Release and Deployment plans, and get them agreed with customers and stakeholders. It is nothing but planning the releases in line with requirements resulting from approved changes. Analyze all the affected CIs (Configuration Items) and review what software or hardware is required to accomplish the plan, and determine the cost. This phase needs the plan and design approval before proceeding to the next step. B. Release Build and Testing: Build effective release-packages for the deployment of one or many changes into IT production environment i.e. collect and integrate the release components. The release mechanisms should be tested to ensure that there is only minimum disruption to the production environment. C. Service testing and pilots: Test service requirements and operational requirements by employing the most suitable method for the release. D. Plan and Prepare for Release deployment: Make sure everything is ready for the release i.e. all the required approvals, and documents are available to execute the release. E. Deploy Release: o o o Execute - deployment of release Training - Identify and fulfill KT or Training requirements for different users about the service Deployment/Rollout - Introduction of a hardware or software release into the IT environment o Retire or decommission the unused assets - Remove the hardware and software that is no longer required o Back-out/Rollback - A detail plan explaining how a specific release can be taken back after the changes being applied, if required F: Verification: Verify with the users, service operations and stakeholders are capable of using or operating the service. If any issue found, take necessary corrective action, verify and review the release to ensue the maximum succesful deployments. 6

3 Figure 1. Release Management Process flow (Source: Harvard Computing Group) 7

4 IV. ILLUSTRATION - RELEASE MANAGEMENT PROCESS FLOW Figure 2. Sample Release Management Process Flow (Source: Enterprise Release Management - ITSMF Whitepaper) 8

5 V. RELEASE DEPLOYMENT APPROCHES There are several choices from planning to the deployment of releases. It is the responsibility of the release management team to take the right approach in deploying releases with minimum disruptive manner or desired impact to the business. It is important to select a suitable deployment method while designing a service. The release approach should be considered to ensure whether it is appropriate for the release, based on the size and complexity of organizations. There are different release approaches available as mentioned in the below table. Deployment Methods Big Bang Phased/Pilot approach Push Method Pull Method Automation Manual Description Used to deliver or release a service and all of it components at once to all end users Used while service is deployed, to only group of end users, and release operation is repeated according to schedule Used to deploy a service, where the service or component is deployed centrally according to schedule, and end users can not choose the time or postpone the deployment. Used to deploy a service, where a service or mostly software is available in a central location and end users freely decide when to use it.. Automation will aid to ensure repeatability and consistency. The time required to provide automated mechanism may not be practical at all times. Manual mechanism of deployment requires monitoring and measuring the impact of many repeated manual activities. Sometimes too many manual activities may slowdown the release team and create resource or capacity issues that affect the service levels ASSOCIATION WITH DIFFERENET SERVICE MANAGEMENT FUNCTIONS Change Management Configuration Management Release Management 1. Delivers approvals and tracking processes (RFC, change log, and reviews) to ensure only approved changes are deployed. 2. Requests configuration management to evaluate the impact of change on all potential CIs. 3. Requests release management to package the changes for successful deployment with nominal disruption to production. 1. Delivers a managed database (CMDB) for the change logs, RFCs, definitive software library (DSL), definitive hardware store (DHS), release package, and all CIs. 2. Requests change management to ensure that only approved changes are deployed and all tracking of the authorization process is complete. 3. Requests release management to update the CMDB with the release package after deployment. 1. Delivers a packaged release for all changes deployed into production. 2. Requests change management to approve changes and track them throughout the release process. 3. Requests configuration management to assess the impact of changes to CIs and to provide a definitive store for the release package. VI. RELEASE MANAGEMENT BEST PRACTICES Release Management best practices will aid the organization to deliver successful and quality changes into an IT production environment. The below are the significant best practices which will help the organization to deliver changes in an effective manner with nominal risk. 1) DevOps Collaboration: Business needs and alertness have intensely increased the volume of change requests into the IT organization. In order to be competitive in today s business, it is essential to adapt quick and cost effective changes to IT environment. However, the DevOps disconnect can be problematic and lead to delay in deployments in test and production environment. For example: The development team completed a program (code) and tested it in a pre-production environment. It was later deployed into production environment by the operations team. After deployment, a bug was observed in the production environment and it was reported back to the developer. Now 9

6 the development tests the bug in production environment and not able to reproduce the same issue. The development team notifies the operations team, in the assumption that it may be operational issues. In this manner, the issue shifts between both the team and leads to lot of delays and confusions in addressing a problem. The process disconnect between development and operations teams will extremely impact the organization s revenue, because IT operations team was imposed to buy additional hardware and stand-up a new instance of database. This will result in an expensive and delayed application release which will impact revenue. Therefore, organizations should review their DevOps processes and workflows to eliminate potential blocks and miscommunication between development and operations teams. 2) Automation: Automation is the fastest route to deliver changes with high performance, increasing quality and promptness. One of the key things for organizations to look at is automating manual tasks and handoffs. Organizations can get lots of quick successes with automation, and bring rapidly without any major organizational changes as automation aids to perform repetitive tasks without much human interaction. Automating code deployments and usage of version control gears have been identified as two best practices of high performing organizations tool. The usage of version control tool provides the ability to determine failures, roll-back to a known state without any trouble, and deploy a new application quickly. The version control tool should have the ability to support and run the application, as well as infrastructure and configuration code i.e. all the release components should reside in a secure release repository with supports version control. 3) Release and Deployment Transformation: Organizations with multiple business units have several data silos and integrated with different systems, applications, and several processes to support the business. Thus bringing an improvement or change in release and deployment of is quite challenging in nature. Also as there are chances that present systems may tend to become hard, heavy, and break if any alteration is made. Therefore, in order to begin adopting an improvement, Organizations may take-up an agile and lean methodology to understanding how to deliver value to the business, eliminating wastes, bringing lesser incremental changes, focus on continuous improvement, and delivering quick-wins. 4) Understand, Analyze and Assess Release sequence to bring quality release: Adopting a Value Stream Mapping method for analyzing the present state of Release and deployment management processes and design a future state for the sequences of events that bring value to the organization and customer i.e. analyze the sequence of steps from Request definition, development, QA, Deployments, and Operate. This assessment will provide good visibility into where IT department spends their more time and where it needs to be optimized and simplified. Typically, organizations should begin, automating the manual code deployments, which can give big immediate gains. Also there are several best practices that organizations need to implement to improve both speediness, control, and to improve the quality of the application deployments and releases. 5) Manage IT Pre-Production Environments: A well-organized and effective use of testing and staging (preproduction) environments is important for a successful release deployment. Due to the increase in release volume and velocity of the applications, and the complication involved of the application infrastructure stack have increased lot of difficulties of managing these environments. Lack of test environment availability or environment conflict can delay releases and raise the cost of release deployments. Organization needs to implement an effective process to schedule, manage, track, and control all the test and preproduction environments in the release lifecycle. A calendar-type view can provide a unified test management schedule, providing information and visibility about who and what is scheduled in which set of environments. The schedule view should also indicate the scheduled deployments, when is maintenance scheduled, and the release windows for each environment. VII. CONCLUSION The rapidity and complexity of the application releases continue to rise as businesses undertake to new commercial alterations and functionalities as and when it demands. Manual deployments, lack of relationship or collaboration between teams DevOps team, and lack of control of on the release process lead to inadequate quality releases at a higher cost to the business. Therefore, in order to influence the quality of deliveries across the environments and eventually help IT Management to make well-versed decisions about steadiness of service and awareness to changing business demands, organizations should follow an appropriated Release and Deployment management best practices that would fit for the business. Automation is the fastest approach to deliver releases with high performance, increasing quality and quickness. In summary, the best practices should pay attention on: A Well and early awareness of releases from all areas of IT, will enable to influence scheduling and resolve conflicts Tighter relationship among the delivery and operational planning More complete view of likely impact Better input for shared resource planning. 10

7 REFERENCES [1] IBM Software Thought Leadership (2013) 7 Proven Practices to Strengthen Release Management. IBM Corporation, USA. [2] Enterprise Release Management an ITSM White paper, A holistic approach to the challenges of complex release management ROBERT SPENCER Jul (2014) [3] Greer, D. and Ruhe, G. (2004) Software Release Planning Software Release Planning: An Evolutionary and Iterative Approach. Information &software Technology, 46, [4] M. Sakyo. (August 2004). The challenges posed by parallel development on release management. CM Crossroads [Online]. Available: [5] Rob Addy, Effective IT Service Management, Springer, ISBN , 2007 [6] B. C. Sussman, B. W. Fitzpatrick, and C. M. Pilato, Version Control with Subversion, For Subversion 1.7: (Compiled from r4304), pp. 96. [7] Project Management Institute A Guide to the Project Management Body of Knowledge, PMI Publications [8] Ruhe, G. and Sailu, M.O. (2005) Art and Science of Software Release Planning. IEEE Software, 22, [9] Curtis, P. and Carey, M., Thought Leadership in ERM (2012) Risk Assessment in Practice. The Committee of Sponsoring Organizations of the Treadway Commission (COSO), USA. 11

8 12