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]