Automating Software Release Management with IBM Rational ClearCase and IBM Rational ClearQuest



Similar documents
Maximizing Cross-Platform Application Availability

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

Redbooks Paper. Deploying Applications Using IBM Rational ClearCase and IBM Tivoli Provisioning Manager. Introduction

General Introduction to IBM (R) Rational (R) Asset Manager

Configuration Management

Successfully managing geographically distributed development

IBM Rational Software

IBM Rational ClearCase, Version 8.0

IBM Rational DOORS Next Generation

Kevin Lee Technical Consultant As part of a normal software build and release process

How Rational Configuration and Change Management Products Support the Software Engineering Institute's Software Capability Maturity Model

Service Asset & Configuration Management PinkVERIFY

Tools to support Requirements-Based Testing

Appendix 2-A. Application and System Development Requirements

IBM Tivoli Provisioning Manager V 7.1

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

GENERAL PLATFORM CRITERIA. General Platform Criterion Assessment Question

Rational Rational ClearQuest

A Software Development Platform for SOA

Modernizing enterprise application development with integrated change, build and release management.

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

Integration Technologies Group (ITG) ITIL V3 Service Asset and Configuration Management Assessment Robert R. Vespe Page 1 of 19

Requirements Definition and Management Processes

General Platform Criterion Assessment Question

IBM Rational Asset Manager

Enhance visibility into and control over software projects IBM Rational change and release management software

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

SAP HANA Backup and Recovery (Overview, SPS08)

5 CMDB GOOD PRACTICES

S609. RDz and Source Control Management Systems

Global Software Change Management for PVCS Version Manager

Change Management for Rational DOORS User s Guide

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Introducing IBM Tivoli Configuration Manager

Avoiding Web Services Chaos with WebSphere Service Registry and Repository

CMMI and IBM Rational Unified Process

Release & Deployment Management

Collaborative DevOps Learn the magic of Continuous Delivery. Saurabh Agarwal Product Engineering, DevOps Solutions

Simplifying development through activity-based change management

An introduction to the benefits of Application Lifecycle Management

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

Developing a highly dynamic web application for a large bank using rules-based technology

05.0 Application Development

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

Change Management MANDATORY CRITERIA

IBM WebSphere Cast Iron Cloud Integration

Agile Development with Jazz and Rational Team Concert

Asset management guidelines

Exam Name: Fundamentals of Applying Tivoli Storage

Software Configuration Management.

Rational Quality Manager. Quick Start Tutorial

ITG Software Engineering

The Top Web Application Attacks: Are you vulnerable?

Configuring Situation Events in Action Manager for WebSphere Business Monitor Version 6.0

Service Management Foundation

Release and Deployment Management Software

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Sujeet Mishra. Senior Staff Software Engineer IBM.

WebSphere ESB Best Practices

FUNCTIONAL PRODUCT OVERVIEW: BOND ENTERPRISE RELEASE AND DEPLOYMENT MANAGEMENT

Operational Change Control Best Practices

Getting Started with Multitenancy SAP BI 4.1

SOFTWARE TESTING TRAINING COURSES CONTENTS

Using Rational Software Solutions to Achieve CMMI Level 2

Design Ideas. LANDesk Service Desk Suite

This presentation will discuss how to troubleshoot different types of project creation issues with Information Server DataStage version 8.

ITIL A guide to event management

Hong Kong Information Security Group TRAINING AGENDA

Web Application Hosting Cloud Architecture

An ITIL Perspective for Storage Resource Management

How To Secure A Database From A Leaky, Unsecured, And Unpatched Server

CRM Developer Form

Fidelity National Financial Drives Improvements in Software Development and Reuse with IBM Rational Software Development Platform and Flashline

Configuration & Build Management

Listeners. Formats. Free Form. Formatted

Test management best practices

Software change and release management White paper June Extending open source tools for more effective software delivery.

IBM Tivoli and Maximo Asset Management Development Update & Maximo 7.1 Preview

Document Management. Document Management for the Agile Enterprise. AuraTech Pte Ltd

"Service Lifecycle Management strategies for CIOs"

Release Management PinkVerify v2.1. Mandatory Criteria

Rich Media & HD Video Streaming Integration with Brightcove

Bridge Development and Operations for faster delivery of applications

IBM Rational ClearCase 4.x and Active Directory

Performance Analytics with TDSz and TCR

Transcription:

IBM Software Development Technical Conference Automating Software Release Management with IBM Rational ClearCase and IBM Rational ClearQuest Kevin Lee Technical Consultant, IBM Rational Software kevin.lee@uk.ibm.com 2004 IBM Corporation

Agenda Terminology Implementing a Release Record in ClearQuest Referencing the Release Record Release Actions and States Automating Packaging Deployment Completing the Release Demo 2

Terminology Service Deployment Physical transition of Deployment Unit(s) Software Release Management Build, Construction and Packaging of Deployment Unit(s) and associated Infrastructure Enhancements Defects Software Change Request Management Activity tracking and management of Problems, Incidents and Change Requests Software Version Management Secure storage and version control of all artefacts (CIs) 3

Software Release = Single Deployment Unit Deployment Unit 1 1 1 1..* Bill of Materials Build Release 1 Supporting Artefacts Installation, Training, Support Material.jar,.exe,.dll files etc 1..* Deployment Component 1..* Release Notes 1 1..* Change Request 1 1..* Work Product Component.java,.c,.html,.x ml files etc enhancements, defects etc 4

Manage Change to Manage Releases If change is managed during the software development lifecycle, so that the creation or update of Configuration Items is always associated with an appropriate Change Request, then Software Release Management can be automated. This can only be achieved with tool support 5

Implementing a Release Record in ClearQuest Create a stateful record to encapsulate release lifecycle Recommended minimum set of fields: Name [SHORT_STRING] Description [MULTILINE_STRING] Manager [REFERENCE] to users UCM_project [REFERENCE] to UCM_Project UCM_baseline [SHORT_STRING] Applicable to either Base ClearCase or UCM 6

Implementing a Release Record cont Populate UCM_baseline automatically with a list of ClearCase baselines using a choice entry list hook: Dim objcleartool Dim strproject, strstreams, arrstreamlist, strbls, arrbllist Dim i, j Set objcleartool = CreateObject("ClearCase.Cleartool") strproject = GetFieldValue("UCM_Project").GetValue If (strproject <> "") Then ' get streams in our project first strstreams = objcleartool("lsstream -short -in " & strproject & \ "@\VOBNAME") arrstreamlist = Split(strStreams, vbcrlf) For i = 0 to (UBound(arrStreamList)-1) ' get all the baselines in the stream strbls = objcleartool("lsbl -short -stream " & \ arrstreamlist(i) & "@\VOBNAME") arrbllist = Split(strBLs, vbcrlf) For j = 0 to (UBound(arrBLList)-1) ' strip out "deliver" baselines If (Left(arrBLList(j), 9) <> "deliverbl") Then choices.additem(arrbllist(j)) End If next next End If 7

Example ClearQuest Release Record 8

Referencing the Release Three ways to reference a release: 1. as the release where a defect was found (Found_In Release) 2. as the intended release for the request (Targetted_At Release) 3. as the actual release for the request (Delivered_In Release) As we are using a stateful record, need to create shadow choice lists for the release names (otherwise we would just see the ClearCase record ID in the pull-down lists); for example on a defect record: Found_In_Rel [REFERENCE] to Release Found_In_Shadow [SHORT STRING] Targetted_At_Rel [REFERENCE] to Release Targetted_At_Shadow [SHORT STRING] Delivered_In_Rel [REFERENCE] to Release Delivered_In_Shadow [SHORT STRING] 9

Referencing the Release Record cont Shadow fields Release Record IDs (normally removed from form) 10

Referencing the Release Record cont Choice-list hook to populate the shadow choice list with the release name: Dim objcqsession, objcqquery, objcqresultset Dim lngstatus Set objcqsession = GetSession ' execute query to get names of all releases Set objcqquery = objcqsession.buildquery("release") objcqquery.buildfield("name") Set objcqresultset = objcqsession.buildresultset(objcqquery) objcqresultset.execute ' move through result set and populate list lngstatus = objcqresultset.movenext Do While (lngstatus = AD_SUCCESS) choices.additem(objcqresultset.getcolumnvalue(1)) lngstatus = objcqresultset.movenext Loop 11

Referencing the Release Record cont Value changed hook for each of the shadow fields, which updates the original reference list (use commit hook in production use) Dim objcqsession, objcqquery, objcqfilter, objcqresultset Dim strname Set objcqsession = GetSession() ' execute query to get our release based on the name strname = GetFieldValue("Found_In_Shadow").GetValue() Set objcqquery = objcqsession.buildquery("release") objcqquery.buildfield("id") Set objcqfilter = objcqquery.buildfilteroperator(ad_bool_op_and) objcqfilter.buildfilter "Name", AD_COMP_OP_EQ, strname Set objcqresultset = objcqsession.buildresultset(objcqquery) objcqresultset.execute ' inset the ID of the record into the shadow field If (objcqresultset.movenext = AD_SUCCESS) Then SetFieldValue "Found_In_Rel", objcqresultset.getcolumnvalue(1) End If 12

Release Actions and States Create an appropriate state transition matrix for the release record Use the lifecycle to enforce actions on child tasks, i.e. don t allow packaging until all change requests have been tested 13

Generating Release Notes Generate Dynamic Release Reports 14

Automating Packaging Use the ClearCase Baseline from Release Record to construct a read-only view then present to a deployment tool: Dim objcleartool Dim strrelname, strmyrel, strproject, strbaseline, lngstatus Set objcleartool = CreateObject("ClearCase.Cleartool") strrelname = GetFieldValue("Name").GetValue ' lowercase and replace spaces in the release name strmyrel = LCase(Replace(strRelName, " ", "_")) strproject = GetFieldValue("UCM_Project").GetValue strbaseline = GetFieldValue("UCM_Baseline").GetValue If (strproject <> "" and strbaseline <> "") Then lngstatus = objcleartool("mkstream -in " & strproject & \ "@\VOBNAME -baseline " & strbaseline & "@\VOBNAME -readonly \ " & strproject & "_" & strmyrel & "@\VOBNAME") lngstatus = objcleartool("mkview -stream " & strproject & \ "_" & strmyrel & "@\VOBNAME -tag " & strproject & "_" & strmyrel & "_view -stgloc -auto") ' package up files using view just created End If 15

Deployment - Infrastructure Deployment = move file(s) to different environments using ClearCase views, baselines and deployment tool Clients ClearCase ClearQuest WebSphere Studio Asset Repository (ClearCase) Deployment Change Repository (ClearQuest) Integration Test Acceptance Test Websphere Application Servers Production Service Delivery Software Library (DSL) 16

Deployment Deployment mechanism usually depends on the technology being used, but essentially two types: Data Moving - simple point-to-point basis (i.e. servers) Distribution - complex package to (multiple) endpoints Tivoli Data Moving Service, example command line: wspmvdata -s @source -t @destination r \ tpost:c:\temp\bounce_webserver.bat -P \ sp:"c:\views\alex_rel3_int\classics\html" -P \ tp:"c:\program Files\IBM HTTP Server\htdocs" -R *.* 17

Deployment cont Add Deployment tab onto Release Record 18

Deployment ClearCase Promotion Levels Baselines indicate related versions Baselines can be promoted to indicate what environment they have progressed to: Integration Test Acceptance Test Production Mimics traditional mainframe promotion 19

Deployment cont Use the Action hooks to change the ClearCase baseline promotion levels, e.g. when the deploy action was selected promote the baseline to RELEASED: Dim objcleartool Dim strbaseline, lngstatus Set objcleartool = CreateObject("ClearCase.Cleartool") ' get the release baseline and promote it to RELEASED strbaseline = GetFieldValue("UCM_Baseline").GetValue If (strbaseline <> "") Then lngstatus = objcleartool("chbl -nc -level RELEASED " & \ strbaseline & "@\VOBNAME") End If 20

Completing the Release = Single Deployment Unit We have already shown how we can generate the release note from within ClearQuest. Can add additional fields on the release record that we must complete before the release can be deployed. For separate documents, such as Installation Documents we can either attach (via the ClearQuest attachments capability) or reference. We can make such fields mandatory so that the release can t be approved until they are included. Deployment Unit 21

22

Summary Use ClearQuest to create Release record and associate with Change Requests Use ClearCase to manage the baselines for the Release Implement your own Release process in the tools Link to a deployment tool to transition the release 23

References developerworks article (this presentation in more detail) http://www-106.ibm.com/developerworks/edu/i-dw-r-automatesrmi.html?s_tact=104ahw18&s_cmp=zhp A primer on ClearQuest integrations http://www-106.ibm.com/developerworks/rational/library/1051.html 24

25

26

Backup Release Best Practices 1. Have regular, targeted Release dates 2. Always have a tested back-out plan 3. Have a documented Release Management process, describing roles, activities and artefacts 4. Construct Deployment Units as early as possible 5. All Releases should be built by an independent team 6. All Deployments should be performed by a team independent of the Development team 7. Test the Deployment process at least once before deploying to Live 8. Automate as much as possible use integrated tools for Configuration, Change Management and Deployment 9. A mature Software Configuration Management process and tool is required to support the development of multiple releases in parallel 10. The Deployment Unit does not just mean software, it includes hardware and supporting documentation 27