Title: Lynn Sweetwood
1Software Packaging Best Practices
Pre-Deployment Critical Steps
- Lynn Sweetwood
- Macrovision Corporation
- VP PM, Enterprise Software Group
2Agenda
- Introduction
- Packaging Process
- Packaging
- Customization
- Conflict Resolution
- Testing
- Preparation for distribution
- Workflow Management
3Introduction - Packaging Challenges
- So, whats 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
4Introduction - Packaging Costs
Cost of Ownership Factors
Other35
Communications57
Software810
Administration, development,support5070
Client hardware1012
Server hardware1215
Source IDC, 2004Summary of TCO Studies
5Introduction - Packaging Goals
- Improve the Reliability of Applications
- Decrease Costly Deployment Failures
- Reduce Software Rollout Times
- Standardize the Application Preparation Process
- Increase Employee Productivity
6Software Packaging
Software Packaging
Testing
Distribution
Conflict Resolution
Customization
7Software 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
8Software Packaging - MSI Characteristics
Legacy Setup Types Windows Installer (MSI)
File Format Setup.exe .MSI File
Architecture Programmatic Database
Process Single Client/Server
Structure Proprietary Open Schema
Rollback Not available Available
Elevation Not available Available
Install on Demand Not available Available
Self healing Not available Available
9Software 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
10Software Packaging - Process
Capture
Script Setup
Snap-Shot
Extract Additional Data from Setup
ZENworks.AXT
Monitor Installation
Other
.MSI
Edit
11Software 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
12Software 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
13Software 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
14Software 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.)
15Software 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
16Software Packaging
17Software Packaging
18Customization
19Customization - 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
20Customization - 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
21Customization - Existing MSI Packages
- Avoid repackaging vendor supplied MSI packages
- Installation Hierarchy is lost
- Upgrades and Patches become invalid
- Create transforms instead
22Customization - 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
23Customization - 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
24Customization
25Conflict Resolution
26Conflict 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 GUIDs or Shared DLL ref counts
- Uninstallation removes critical components of
other applications
27Conflict 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
28Conflict Resolution Application Catalog
Test / Prepare
Conflict Testing/ Resolution
Distribute
Security Testing
Runtime Testing
- Application
- Catalog
- Application Data
- OS Images
- Built-in Rules
- Custom Rules
- Conflict Data
- Cleanup Process
29Conflict 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
30Conflict Resolution - Options
Identify Conflicts
Resolve Conflicts
Scalable Enterprise Conflict Database
Resolve Using Tranforms
.MST
.MSI
Resolve Inside Original MSI
Marketing
Application Groups
R D
.MSI
Sales
Resolve Using Application Isolation
Systems
.MSI
.DLL
Custom Resolution Policies
31Validate Application Standards
32Conflict Resolution
33Conflict Resolution
34Testing
35Testing - Challenges
- Tester may not know the application
- Testing instructions are typically incomplete
- Application too complex
36Testing - 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
37Testing Patch Impact Analysis
38Testing - 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
39Testing Security Operation
40Testing Pre-Deployment
41Distribution Preparation
42Distribution 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
43Distribution
44Distribution
45Application Management Lifecycle
Software Packaging Process
License Management
Monitor /Repair
Resolution And Test
Request
Package
Customize
Updates
Retirement
Distribute
Complete Application Lifecycle
46Managing the Lifecycle
Web Interface
Applications Manager
-
- User Requests
- Real Time Status
- Assign Roles
- Allocate Packagers
- Monitor Productivity
- Reporting / Queries
- Capture Documentation
End Users
-
- Submit Requests
- Install Instructions
- Priority
- Reporting / Queries
- 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
Packagers
47Managing 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
48Workflow management
49Workflow management
50Workflow management
51Summary
- 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
52 Contact InformationLynn Sweetwoodlsweetwood
_at_macrovision.com