Transcript Document

Software Packaging Best Practices – Pre-Deployment Critical Steps Lynn Sweetwood Macrovision Corporation VP PM, Enterprise Software Group

Agenda  Introduction  Packaging Process – Packaging – Customization – Conflict Resolution – Testing – Preparation for distribution  Workflow Management

Introduction - Packaging Challenges

“So, what’s so hard about packaging an application?

Just take what you have and send it out to the endpoints.

Simple, right?”

Enterprises that do not dedicate resources to packaging applications will fail at software distribution through 2004.

-(0.8 Probability) -Gartner Group

2002

Introduction - Packaging Costs Cost of Ownership Factors Communications 5% –7% Other 3% –5% Software 8% –10% Client hardware 10% –12% Server hardware 12% –15% Administration, development, support 50% –70% Source: IDC, 2004

Summary of TCO Studies

Introduction - Packaging Goals  Improve the Reliability of Applications  Decrease Costly Deployment Failures  Reduce Software Rollout Times  Standardize the Application Preparation Process  Increase Employee Productivity

Software Packaging

Software Packaging Customization Conflict Resolution Testing Distribution

Software Packaging - Windows Installer (MSI)  Use Microsoft Windows Installer (circa 1999) – – – – Created by Microsoft Office Team Targeted to System Administrators Part of strategy to lower TCO for Windows Core component of Windows OSs since Windows 2000 – Redistributable available for Windows 95, 98, and NT 4

Software Packaging - MSI Characteristics File Format Architecture Process Structure Rollback Elevation Install on Demand Self healing

Legacy Setup Types

Setup.exe

Programmatic Single Proprietary Not available Not available Not available

Windows Installer (MSI)

.MSI File Database Client/Server Open Schema Available Available Available Not available Available

Software Packaging – Why MSI    Standardization of File Versioning Rules – – MSI compares the version, date, and language Stability of the OS is maintained Customizing Installations – Customization natively supported by WI • Silent/Reduced UI, Transforms, Command Line • Capabilities similar for each package – Future Patches/Upgrades from ISV remain valid Advertising installs only “Application Entry Points” – Shortcuts, COM Activation Data, File associations

Software Packaging - Process

Script Setup ZENworks .AXT

Other .MSI

C a p t u r e Snap-Shot Monitor Installation Edit Extract Additional Data from Setup

MSI Package

Software Packaging – Preferred Method  Use installation monitoring – Fast • • Takes only as long as setup to execute Eliminates pre and post cataloging process – – Accurate • Watches only processes started after launching setup Eliminates dependency on “Snap-shot” process

Software Packaging – Additional Data  Extract maximum information – – “SmartScan” • Identifies installation as InstallScript-driven • • • Exposes conditional data stored in CAB Files Creates more portable package Preserves the feature hierarchy “Setup Intent” • Performs static dependency scan on file set installed

Software Packaging - General Steps  Use a clean system for packaging – Only base OS and service packs – Leverage VMware or VirtualPC  Utilize a template – Reduces repetitive tasks – Enforces corporate standards  Utilize global exclusions – Reduces the time spent removing unwanted, unnecessary data

Software Packaging - General Steps   Avoid repackaging OS updates and Internet Explorer – Integral parts of the OS – Contain logic which is lost when repackaged Use Component Best Practices – – One “Key Path” per component One “PE-Style” file per component (EXE, OCX, DLL, TLB etc.) – One “Help” file per component (HLP, CHM, etc.)

Software Packaging - General Steps  Collect all project data before beginning – Installation instructions • Serial Number, License Key, Passwords • • Default installation directory Prerequisites or dependencies – Exclusions • Collection of resources and system changes to be ignored by the Repackager • Files, Registry entries, shortcuts – Company information standards • Per-Machine, per-user installation • Silent installation

Software Packaging

Software Packaging

Customization

Software Packaging Customization Conflict Resolution Testing Distribution

Customization - Common Requirements    Resource modification – – – Files, registry entries, shortcuts Configure ODBC Environment variables Apply company standards – – Add/Remove program behavior Implement templates Custom Actions – Extend the functionality of the installation – Launch an executable during the installation

Customization - Other Requirements     Service install and service control settings – – Specify installation information for Service Control the Service when installed or uninstalled System Search – – – Pull information from the machine into the setup Find location of previously installed application Use to Set conditions during install Setting Permissions – Install grants the permissions needed to make the app work – Set on file, folders, and registry objects Build packages to support MSI 1.2, 2.0 or 3.0

Customization - Existing MSI Packages  Avoid repackaging vendor supplied MSI packages – Installation Hierarchy is lost – Upgrades and Patches become invalid – Create transforms instead

Customization - Transforms   Transforms – Simplified Windows Installer database with extension .MST

– – Modifies the MSI “as it is being installed” Requires command line options or EXE-Style launcher – Nearly all aspects of the install can be modified Two typical uses – Modification of installation – Multiple language support

Customization - Transforms   Creating Transforms – Blank Transform – Response Transform • Execute the UI of the MSI package • Data set during the execution is stored in the Transform Common Install Modifications – Product properties, e.g., main installation directory – – – – – – – Default feature states Shortcut properties Registry and INI data Files Windows NT service settings ODBC settings Installation program server locations

Customization

Conflict Resolution

Software Packaging Customization Conflict Resolution Testing Distribution

Conflict Resolution - Detection   Check for internal application issues – Use ICE rules Check for cross-application issues prior to deployment – – – – All installations introduce risk of breakage Existing or future applications High risk testing in the field Resource Conflicts • Two or more applications installing incompatible resources – Installation Conflicts • • Failure to share GUID’s or Shared DLL ref counts Uninstallation removes critical components of other applications

Conflict Resolution - Scope  Check for all types of cross-application issues – Product components – – – – – – – – Product files Registry entries Shortcuts INI files ODBC resources NT services File extensions Product properties

Conflict Resolution – Application Catalog

T e s t / P r e p a r e Conflict Testing/ Resolution Security Testing

Application Catalog Application Data OS Images Built-in Rules Custom Rules Conflict Data Cleanup Process

Runtime Testing D i s t r i b u t e

Conflict Resolution - Data Groups   Use grouping within the database – – – OS Images Common applications Departmental applications Focuses detection – – Faster processing Effort is directed to likely scenarios Source: Nelson Ruest, 2004

Conflict Resolution - Options

Identify Conflicts

Scalable Enterprise Conflict Database Marketing R & D Sales Systems Custom Resolution Policies

Resolve Conflicts

Resolve Using Tranforms .MSI

.MST

Resolve Inside Original MSI .MSI

Resolve Using Application Isolation .MSI

.DLL

Validate Application Standards

Conflict Resolution

Conflict Resolution

Testing

Software Packaging Customization Conflict Resolution Testing Distribution

Testing - Challenges  Tester may not know the application  Testing instructions are typically incomplete  Application too complex

Testing - Runtime Tests    Test applications in a runtime state – Augments installation and un-installation tests Test for common issues – Entry points to application – – Permissions in a locked-down environment Check status of individual components Create your own tests

Testing – Patch Impact Analysis

Testing - Patches    Collect all patches and preview Run initial test to focus efforts – Test for overlap with application contents – Test for overlap with application runtime dependencies Integrate with full patch management toolset

Testing – Security & Operation

Testing – Pre-Deployment

Distribution Preparation

Software Packaging Customization Conflict Resolution Testing Distribution

Distribution Preparation  Use integrated tools to save time  Require valid login to destination  Maintain archive log of package handoff  Complete the other steps first – “Garbage in, Garbage out”

Distribution

Distribution

Application Management Lifecycle Software Packaging Process

Request Package Customize Resolution And Test Distribute License Management Monitor /Repair Updates Retirement

Complete Application Lifecycle

Managing the Lifecycle Web Interface End Users • Submit Requests • Install Instructions • Priority • Reporting / Queries Packagers App Catalog All App Data History Communication Security Conflict Database        Package Instructions Best Practices Time Stamp Critical Steps Request Clarification Test / Resolve Conflicts Virtual Teaming Notify Finished Package Applications Manager     User Requests Real Time Status  Assign Roles  Allocate Packagers  Monitor Productivity Reporting / Queries Capture Documentation

Managing the Lifecycle    Implement a scaleable and customizable solution – – Grows to handle all packages Maps to unique business practices Tie together all phases of application management – Integrated process All application information is globally accessible – – Leverage Application Catalog Ensure security is in place

Workflow management

Workflow management

Workflow management

Summary          Use Windows Installer (MSI) Extract maximum data from original installations Use templates for packaging and customization Create transforms for vendor-supplied MSIs Create an application catalog, and organize applications and OS images in catalog Test against application catalog for cross-app conflicts Test in runtime mode Pre-test patches against catalog to focus testing Investigate application workflow management tools

Contact Information: Lynn Sweetwood [email protected]