RAK - Friedrich Lehn | Consultant, Coach & Trainer

Download Report

Transcript RAK - Friedrich Lehn | Consultant, Coach & Trainer

Release Management
in the UBS Data Warehouse Program
Friedrich Lehn
for UBS AG, Switzerland
[email protected]
© 2002 Friedrich Lehn - All rights reserved
Agenda
 Project Overview
 Project Infrastructure
 Change Management
 Release Process
 Summary
Project Overview
UBS
 Global, integrated investment services firm
and leading bank in Switzerland
 World’s leading provider of private banking services
 Total client assets US$ 1.41 trillion in 2001
 Acquired
in 2000
Project Overview
Data Warehouse Program (DWP)
 Establish common infrastructure for analytical data
processing
 Provide a business oriented set of data warehouse
and data mart services
 Standardized business data model
 Align the bank’s data mart portfolio
 Improve flexibility, time-to-market and data quality
Project Overview
Data Flow
System of Records
extract, condition & load (inbound)
Common Data / Business Warehouse
data mart sourcing (outbound)
Data Marts
visualization
business user
Project Overview
Delivery Streams
 Main organizational element:
team working on a subject data area / data mart
 Three letter acronym as base for naming standards
 Standardized infrastructure:
UNIX directories, access group, meta data area, ...
 Team size typically between 1 and 5
 Delivery streams release independently from each other
Project Overview
Application Structure
System of Records
RCL
DSF DSF
MDR
<STR>
RCL
MDR
DSF
<FDS>
<STR>
<MAR>
release control tools
meta data repository
DWP sourcing framework
data feed definition
delivery stream
outbound stream / data mart sourcing
... <STR>
<FDS>
... <FDS>
DWP Sourcing Framework
<MAR>
...
<MAR>
Project Infrastructure
System Environments
Development
•
•
•
•
•
•
•
Test
IBM SP2 cluster, AIX 4.3
DB2 UDB EEE
PowerCenter V5.1
DWP Sourcing Framework
Cognos / Business Objects
Netscape Enterprise Webserver V3.63
ClearCase V4.2
Production
Project Infrastructure
Logical Environments and Release Structure
Development
Test
Production
S
emergency (SOS) releases
D
A
X
F
T
P
delivery stream development
V
framework test / delivery
stream migration to new
framework releases
framework development
mandatory
optional
Project Infrastructure
Release Cycles
 delivery stream development: D  A  P
 framework development:
after sign-off:
TXF [V]
XDAP
 migration to new framework
releases:
{DAP}  X  F
 emergency releases:
PEP
Change Management
Design Principles
 Support different, clearly separated environments with
different responsibilities
 All environments have identical structure
(products, databases, server configurations)
 All program changes are done on the development system
 All changes on test and production systems go through the
release process and are clearly tracked
 “just-in-time production”
Change Management
Challenges
 currently ~60 delivery streams
 and ~500 feeds
 between 10 and 7103 objects per release unit
 >3500 single releases since May 2000
 >5500 deliver requests
 ~1000 active installations
Change Management
Directory Structure
 Two areas:
/dwp_root
/dwp_data
release area, version controlled
dynamic data, archival on demand
 Additional directory level in order to support more than one
logical environment on one system
 /dwp_root is organized by delivery streams, e. g.:
/dwp_root/d/streams/rcl/bin
Change Management
Directory Structure (continued)
 /dwp_data is organized by logical processing steps, e. g.:
/dwp_data/p/data/landing
(landing area)
/dwp_data/p/data/tgtfiles
(target files)
/dwp_data/p/logs/system
(framework log area)
 Tool support for generation of directories in source
environments (delta processing)
 Automatic creation of missing directories in target
environments by release procedures
Change Management
ClearCase Set-up
 One single VOB /vobs/dwp
 Same directory structure as below /dwp_root, directories are
automatically created
 In general: only linear version trees (important:
synchronization with database change management)
 Branch support for emergency releases
Change Management
ClearCase Set-up
 In general: fully automated access layer
(freeze and deliver routines)
 On demand (larger teams): direct ClearCase access via
team specific views:
/dwp_root/d/streams/rcl -> /view/rcl_team/vobs/dwp/streams/rcl
 Allows use of DWP framework
 Common labeling strategy (freeze -nocheckin)
Change Management
Release Naming
 <delivery stream>_<major>.<minor>.<patch>
e. g.:
RCL_1.1.0
 <major>
major release number
(high level “wave” planning)
 <minor>
minor release number
(delivery stream development plan)
 <patch>
patch level (bug fixes)
 Emergency releases: RCL_1.1.0_SOS_<#>
Change Management
Release Attributes
 Description (standard comment)
 INSTALLED (list of environments where release is installed)
 TRANSITIONS (describes the deployment path of a release)
 RESPONSIBLE (due to centralized freeze routine)
 PCRVERSION (PowerCenter meta data version)
 CR (change request link)
 PSO (production sign off)
Change Management
Versioning Example
common.pm
/main/1
RCL_1.0.0_sos_1
/main/sos/1
RCL_1.0.0
/main/2
RCL_1.0.1
RCL_1.0.0_sos_1
/main/sos/1
/main/3
RCL_1.0.2
/main/4
RCL_2.0.0
/main/5
Change Management
Change Control Board
 Responsible for high level planning and impact analysis
 Defines release scope and release numbers on base
of delivery streams
 Assigns responsibilities (delivery stream manager, data
modeler, database administrator, business responsible)
 Result is documented in “wave plan” document
Release Process
Roles & Responsibilities
Role
Responsibility
developer
development, unit and integration testing
delivery stream manager manager, release planning
database administrator
database change control
release manager
deployment, tracking, configuration control,
administration
Release Process
Process Overview
Development
Test
Freeze
Production
Receive
ClearCase
Deliver
Deployment Package
Release Process
Release Objects
 PowerCenter mappings
 Job dependency data
 scripts / SQLs / programs and source code in general
not included:
 Database objects (in concept phase)
 documentation (intranet database)
Release Process
Release Procedure
Responsible
1. Submit database change request *)
delivery stream manager
2. Implement database changes *)
database administrator
3. Prepare release area
(UNIX, PowerCenter, job dependencies, Uniserv)
delivery stream manager
4. Submit release request
delivery stream manager
5. Prepare release area (DDLs) *)
database administrator
6. Create new release (Freeze)
release manager
7. Create deployment package (Deliver)
release manager
8. Apply database changes to target system *)
database administrator
9. Install release in daily deployment window
(Receive)
release manager
(IT integration / IT operation)
*) in case of database changes only
Release Process
Freeze Process
freeze <release unit> [ -patch | -minor | -major | -sos <release> ]
1. Retrieve previous release (“element * RCL_1.0.0”)
2. Compare with release area (check for new, changed, deleted files)
3. Display results and ask for confirmation
4. Apply changes in ClearCase
5. Create release label and set release attributes
6. Attach release label
Release Process
Deliver Process
deliver <release unit> -t <target env.> [ -r <release> ] [ -a ]
1. Retrieve specified / latest release in ClearCase
2. Retrieve current release in target environment and create delta
3. Use -a(ll) for initialization / synchronization
4. Create deployment package (tar file + control file)
5. Update release attributes (predecessor and current release!)
6. Lock release label
Release Process
Receive Process
receive
1. Check hand-over area for pending releases
2. Remote copy deployment package to target system
3. Install it
4. Standardized post-installation steps: e. g. access permissions
5. Delivery stream defined post-installation steps (PostInstall.ksh file):
e. g. for non-standard path names, generators, setuid bits
Release Process
Delta Deployment
 Smaller packages (“top 1” feed: > 7000 files)
 clear change log
 both ways: creation and removal of files
Release Process
Release Cache
Question: Which is the predecessor release
in a specific target?
Installation information is stored with each release label.
 cleartool lstype -kind lbtype
cleartool desc lbtype:RCL_1.0.0
Problem: takes ages with 3500 release labels!
Release Process
Release Cache
Solution 1:
Manage installation information on element version level
+ delta processing easy
– label twice (release and installation label)
– missing overview, need log files for tracking
– error prone (e. g. interruption of freeze process)
Release Process
Release Cache
Solution 2:
Release cache (including all release attributes,
master information remains in ClearCase)
– additional software layer required (consistency!)
+ clear information structure
+ efficient delta processing
+ added value: release database
Release Process
Release Database
Release Process
Release Database (Details)
Release Process
Release
Request (1)
Release Process
Release
Request (2)
Release Process
Release
Request (3)
Release Process
Release Tracker (Overview)
Release Process
Release Tracker (Details)
Release Process
Releasing Meta Data
 PowerCenter, job dependency and feed configuration
meta data are stored in the database
 Unload utilities to export the corresponding data
and store it in the delivery stream´s release area (tar file)
 Meta data is frozen and delivered together with all other
file system objects
 Load utility for loading objects in target environment
 e. g.: meta_pcr <delivery stream> [ unload | load ]
Release Process
Database Change Management (Concept Phase)
 PATROL DB-Change Manager by bmcsoftware
 Scope filter: assign database objects to delivery stream
( view in ClearCase)
 Apply database changes to development database
 Create release baseline:
freeze all database object versions for a delivery stream
( label in ClearCase, name equal to release label)
 Export DDL to release area
(for documentation & change detection)
Release Process
Database Change Management (target system)
 Target baseline: target database version
(delivery stream plus timestamp as name)
 create delta DDL depending on release baseline
and latest target baseline (PATROL)
 apply delta DDL
 create new target baseline
Release Process
Database Retrofitting Process
 Rationale: certain database changes have to be applied
and tested directly on the Production system (load
performance optimization: indexes, summary tables, ...)
 In order to include target system changes into next regular
release, changes are promoted back to Development
using the Retrofitting Process
 In principle: new, database administrator driven release in
ClearCase and PATROL that is not delivered
Summary
Experiences
 Over 3500 releases since May 2000
 Effort for creation and installation of new release:
5 - 60 minutes depending on amount of meta data
(without database changes)
 Main effort necessary for handling of meta data
 No ClearCase problem encountered so far
Friedrich H. Lehn
[email protected]
www.fhlConsult.com
Thank You!
©2002 Friedrich Lehn - All rights reserved
Questions?
©2002 Friedrich Lehn - All rights reserved