Sequencing Applications for Deployment at Microsoft
Technical Case Study
Published: May 2009
A successful strategy for application virtualization relies on selecting the appropriate
applications for packaging, and following an effective sequencing process to perform
the packaging tasks that help ensure a positive user experience.
|
Situation
|
Solution
|
Benefits
|
Products & Technology
|
|
Microsoft needs to package applications for deployment in a virtual application
environment.
|
Microsoft Application Virtualization 4.5 provides the Application Virtualization
Sequencer, which is used to package applications that can be deployed via several
Application Virtualization deployment options.
|
- Sequencing contributes to the overall reduction in application management
costs.
- A sequenced application can easily be deployed by using the Application Virtualization
Full Infrastructure model, or by integrating with Configuration Manager 2007 R2.
- A sequenced application can be isolated from all other applications and operating
system components, or it can be configured to allow interaction as needed.
|
- Microsoft Application Virtualization 4.5
- Microsoft System Center Configuration Manager 2007 R2
|
The Microsoft® Application Virtualization (App-V) Sequencer is a component of
Microsoft Application Virtualization version 4.5 and is used to package or
"sequence" Windows®-based applications. Sequencing is the foundation
for all other virtual application processes. It provides the virtual applications
that are deployed through any one of the App-V deployment scenarios, including the
App-V Full Infrastructure model, the App-V Stand-alone model, or the Microsoft System
Center Configuration Manager 2007 R2 integrated model.
This case study gives IT professionals and technical decision makers information
about the processes and best practices that Microsoft follows when sequencing virtual
applications for deployment at Microsoft. The case study begins with an overview
of Application Virtualization and how sequencing affects the tasks that occur in
the application management life cycle. Next, the case study describes the common
challenges that Microsoft has faced during the sequencing process, and it describes
the solution strategy on how Microsoft has addressed these challenges.
Note: This case study assumes that readers have a general understanding of
the components that make up App-V 4.5. Readers who do not have this prerequisite
knowledge should refer to the Microsoft Application Virtualization 4.5 Web
site, located at http://www.microsoft.com/systemcenter/appv/default.mspx.
Application Virtualization Overview
App-V 4.5 is part of the Microsoft Desktop Optimization Pack (MDOP) and is
used to deploy and manage virtual applications on desktop clients. Virtual applications
run in an isolated environment that minimizes conflicts with other applications
on the host computer. App-V centralizes application management processes, including
provisioning, deploying, upgrading, updating, and removing software applications
on client computers. App-V provides significant benefits in simplifying and reducing
costs associated with tasks throughout the application management life cycle.
The sequencing process is the first of many steps for deploying a virtual application
to clients, and it affects each phase of the application management life cycle,
as discussed in the following sections.
Application Provisioning
During the application provisioning phase, a client workstation is installed and
configured as an App-V Sequencer. The App-V Sequencer monitors a traditional application
installation process, and it generates a virtual run-time environment that is packaged
into several files and provided to the virtual application deployment team. Table
1 describes the files that are generated.
Table 1. Sequenced Package Files
|
File type
|
Description
|
|
.sft file
|
This file contains all of the application files, dependencies, and configuration
information, and may contain more than one application (such as in application suites).
This file can be quite large but is typically divided into two distinct "feature
blocks" that are efficiently streamed to App-V clients.
|
|
.ico file
|
This file provides the App-V client shortcuts that are used to launch a corresponding
.osd file and to begin the data streaming process from the application source location.
|
|
.osd file
|
This file configures and controls how a virtual application starts and runs. The
.osd file contains information such as application name, host name, data source
location path, protocol and port to use, supported operating systems, and general
comments.
|
|
.sprj file
|
This project file describes the applications contained in the sequenced package.
This file includes a list of files, directories, and registry entries that are to
be added, changed, deleted, or upgraded in a typical sequenced application. The
.sprj file is often used when upgrades or service packs are added to an application.
|
|
Manifest file
|
This XML file contains package information that enterprise software-deployment solutions
use to deploy a virtual application.
|
|
.msi file
|
This Microsoft Installer file is used to publish and install a virtual application
package on an App-V client that is configured in Stand-alone mode. If selected during
the sequencing process, the .msi file is created and incorporates all package components
in a single installable file, except the .sft file.
|
Application Deployment
After the sequencing process is complete, the administrator imports the sequenced
application package files onto an App-V management server or an App-V streaming
server, or configures the package to be distributed via System Center Configuration
Manager 2007 R2. The App-V clients reference the .osd file—which is generated
during the sequencing process—to determine the application's .sft file location,
and the protocol and port used to stream the application.
The benefits of deploying a sequenced virtual application to clients include the
following:
- A virtual application package is isolated from other applications that are installed
on the client computer. This allows for multiple application versions to run on
a client, and it simplifies the ability to test application updates and service
pack integrations without interfering with standard production application releases.
- A virtual application package delivers a pre-configured application that is centrally
managed and deployed via the App-V management server or Configuration Manager 2007.
Application Servicing
Throughout the application management life cycle, most applications require updates
to fix security issues and application bugs, or to provide updated functionality.
When a virtual application requires an update, the package is re-sequenced to include
the updated components. The primary benefit of deploying an updated virtual application
is that it can seamlessly replace the older version without requiring the App-V
client to restart.
Application Removal
A sequenced virtual application is never installed on a client computer in the same
way as a traditional application. Virtual applications do not place entries into
the client computer's registry, and they do not place files within the standard
file structure. A virtual application leaves no footprint on the client workstation,
which provides many benefits related to managing a clean workstation environment.
These benefits include:
- No need for running complex clean-up scripts to remove registry and files left behind
after an application is uninstalled.
- No need to periodically rebuild workstations in order to revert to a clean operating
system state.
- Minimizes complexities with applying operating system updates or upgrades.
Situation
Even though sequencing provides many benefits for deploying and managing virtual
applications, there are a number of considerations that, if not planned for, can
affect the time and costs associated with the packaging and deployment process,
or result in negative user experience. These considerations include the following:
- Understanding application usage scenarios. A lack of application knowledge
causes a higher failure and re-sequencing rate, and it increases interaction with
the application owner.
- Determining appropriate applications to sequence. Some applications may not
be able to function in a virtual environment, or may be more costly to sequence
as a virtual application than to deploy through traditional installation methods.
- Determining application dependencies. Many applications depend on functionality
from other operating system components or other installed applications. Virtual
applications are typically deployed within their own isolated run-time environment,
which does not allow for interaction between other external components. This results
in application failures or loss of feature parity with the locally installed application
equivalent.
Note: During the Microsoft App-V pilot project at Microsoft, out of approximately
40–60 applications, 57 percent of the applications tested in the pilot project had
a dependency on locally installed applications that were considered part of the
base operating system. Thirty percent had dependencies on other applications. Thirteen
percent of applications ran without any dependency considerations. Dependency management
is a critical factor in sequencing a virtual application.
- Creating operating system–specific sequences. The Windows XP and Windows
Vista® operating systems provide distinctly different user dependencies for
both security and functionality. Applications that were sequenced by using Windows XP
as the host operating system may have to be re-sequenced in order to function effectively
in Windows Vista. It is important to note that App-V is not intended to be an application-compatibility
solution for operating system deployments. If the application does not natively
run on a specific version of an operating system, App-V will not solve this issue.
Other solutions, such as Microsoft Enterprise Desktop Virtualization (MED-V), can
be used to address this problem.
Note: At Microsoft, 51 percent of the applications sampled during the App-V
pilot project successfully ported from Windows XP with Service Pack 2
(SP2) to Windows Vista without any modifications to the sequence. Administrators
fixed the majority of application failures by enabling Local Interaction to allow
the sequenced application to interact with local client processes. Only 25 percent
of the sample applications did not successfully port from Windows XP to Windows
Vista and required an operating system–specific sequence due to intelligent installers
that detected the underlying operating system.
- Setting user expectations. Some applications may require workarounds or require
the user to perform application tasks in different ways, when compared to the traditionally
installed application. Users need to be educated on any changes to functionality
or processes when using a virtual application. For example, an organization might
sequence an application such as WinZip to provide the standard functionality of
the tool; however, specific features such as right-click capabilities may not be
available. Users who are accustomed to using the right-click capabilities need to
perform tasks differently when using the virtualized version of the application.
Note: Microsoft deployed approximately 40 applications by using App-V. Of
the 40 applications, only five required specific user education because of changes
in the way the virtual application ran in the virtual environment. These changes
were mainly related to graphical user interface (GUI) integration in the operating
system, such as right-click commands.
Solution
To address the previously described challenges, it is important to understand the
overall process and concepts related to sequencing an application.
Overview of the App-V Sequencing Process
The App-V sequencing process consists of a number of steps, as outlined in Figure
1.
.jpg)
Figure 1: App-V sequencing process
Managing Application Dependencies and Interactions
Many applications contain dependencies on other applications or on local components
installed with the operating system. For a virtual environment, this is challenging
because it is assumed that an application is a self-contained "bubble"
that will not interact with other components. Applications that require interaction
with other components can be configured through several methods, including:
- Application bundling. Previous to App-V 4.5, a common solution was bundling
application dependencies with the primary application. This can still be performed
when all other options do not work; however, this option results in large packages
that are difficult and inefficient to update. Features such as Dynamic Suite Composition
provide more-efficient alternatives.
- Dynamic Suite Composition. Provides the ability to sequence a primary application
independently from secondary or dependent applications. It can then be linked to
the primary and secondary applications by inserting a <DEPENDENCIES> tag within
the primary application's .osd file and referencing the dependent application. The
main advantage of Dynamic Suite Composition is that a single secondary application
can be used as a plug-in for multiple primary applications.
- Local Interaction. Local Interaction enables virtual applications to interact
with the local system to resolve feature issues that require access to external
components of the operating system. For example, an application may need to integrate
with search capabilities of the operating system, or obtain access to send-mail
features. Local Interaction is disabled by default, but an administrator can enable
it by configuring the LOCAL_INTERACTION_ALLOWED policy to TRUE in the .osd
file.
Integrating a Sequenced Application with Configuration Manager 2007 R2
Configuration Manager 2007 R2 provides numerous benefits to a virtual application
solution, including enhanced scalability and availability using Configuration Manager
distribution points, data-throttling using Background Intelligent Transfer Service
(BITS), and support for branch-cache scenarios. An application sequenced for deployment
via the App-V Full Infrastructure model can be used seamlessly with an integrated
Configuration Manager infrastructure for both of the following delivery methods:
- Streaming delivery. When a user clicks an advertised program shortcut or
a registered file-type association, the Configuration Manager client polls the management
point to determine what distribution point should be used to stream the virtual
application. The Configuration Manager client then applies an OverrideURL registry
value that points to the .sft file location on a distribution point. This override
value replaces the setting that was specified in the original .osd file configured
during the sequencing process. The App-V client then uses the value to stream the
application from the appropriate distribution point.
- Local download and execute delivery. When a virtual application is advertised
via the local download and execute delivery option, the Configuration Manager client
downloads the virtual application to the local Configuration Manager Client cache,
and it registers the program shortcuts and file type associations. When a user starts
the virtual application, the App-V client streams the .sft file from the Configuration
Manager cache to the local App-V Client cache, and then starts the application.
This method enables offline capabilities because starting a virtual application
does not require direct access to a distribution point.
Although a sequenced application can be used for both the App-V Full Infrastructure
model and the Configuration Manager integration model, an organization must consider
the following points:
- Determine whether the intended deployment method will use the streaming delivery
method or the local download and execute delivery method. An application that will
be streamed from a distribution point should be sequenced to include only critical
components in Feature Block 1; all noncritical components can be sequenced in Feature
Block 2. An application that will be deployed via download and execute methods does
not have to be sequenced into multiple Feature Blocks because the entire package
will be downloaded via the Configuration Manager client and streamed locally.
- Be aware of disk space requirements for both distribution point servers and clients.
The download and execute model will require three times the size of the .sft file
on the client computer. Streaming delivery might potentially require 1 to 10 times
the size of the .sft file on the distribution point. It is important to try to keep
the sequenced package as small as possible, and to enable package compression to
help minimize the disk space used on the server and client computers.
- Dynamic Suite Composition is fully supported in Configuration Manager 2007.
However, it is important that both applications are advertised and registered with
the client.
- Local Interaction is fully supported on a Configuration Manager client and is enabled
within the sequenced application during the sequencing process.
Sequencing Strategy
To help minimize the costs associated with application management, an organization
should follow a specific sequencing process to help reduce the costs of packaging
applications.
The process can be categorized into several distinct phases that begin with evaluating
the current software catalog, continue with building the sequencing workstation,
and then finish with performing the sequencing tasks. The following sections discuss
considerations for each phase.
Phase 1: Evaluate the Current Software Catalog
When determining which applications are suitable virtualization candidates, Microsoft
evaluates the potential candidate and places the application into one of three categories:
- Ideal Candidate. Applications meet all of the possible candidate criteria
and have no identifiable roadblocks to success.
- Possible Candidate. Applications do not meet disqualifying criteria but may
require additional research or validation.
- Not a Candidate. Applications are more expensive to virtualize than the benefits
achieved from virtualization. This category also includes applications that technically
cannot be virtualized because of current limitations.
To assist with identifying applications that are not a suitable candidate for virtualization,
Table 2 provides information to consider.
Table 2. Application Considerations
|
Application type
|
Definition
|
Examples
|
|
Applications with drivers
|
Applications that install and rely on a system-level driver, such as an application
that installs a print driver or a universal serial bus (USB) device driver.
Some applications may allow for the drivers to be installed independent of the other
components of the application. As a workaround for this scenario, the driver portion
of this application can be installed locally on the client system, allowing the
other components of the application to be virtualized.
|
OEM hardware utilities
|
|
Applications that integrate closely with the operating system
|
Some applications, such as the Windows Internet Explorer® browser, are closely
tied to the operating system. As such, these applications cannot be sequenced.
These applications can be started from within a virtual environment, thus having
access to all of the components and configuration settings related to that virtual
environment. This is a common technique used for Web-based applications that may
require specific ActiveX® controls or need extended security settings.
|
Windows Media® Player
Internet Explorer
|
|
Applications with shell extensions
|
Microsoft Application Virtualization does not support shell extensions that contain
a custom dynamic-link library (DLL). This would require providing access to the
virtual environment to Windows Explorer. Shell extensions are in-process Component
Object Model (COM) objects that extend the abilities of the Windows operating system.
|
WinZip
|
|
COM+ applications
|
COM+ is dynamic; it happens at run time. Hence, there is no way (currently) for
the Sequencer to capture this information in a "static" form within a
sequence. COM and DCOM, by contrast, are recorded in component services and are
static.
|
BizTalk®
|
|
Applications with background or headless service "boot-time"
|
App-V 4.5 supports the virtualization of services; however, they must be started
from within the virtual environment. An example of this would be virtualizing PCAnywhere,
which installs a service in the background to provide the PCAnywhere server functionality.
|
PCAnywhere
Firewall Client for Microsoft Internet Security and Acceleration (ISA) Server
eTrust AntiVirus
|
|
Applications that integrate with many other applications
|
Applications with complex or unknown integration with other applications or operating
system components need to be fully evaluated to identify and define interaction
requirements.
After the issues are defined, an organization can determine whether application
isolation will provide a benefit over locally installing the application.
A workaround for this may be to sequence multiple applications into one "suite"
that would allow them to communicate within the isolated virtual environment.
|
Microsoft Office 2007 suites
Microsoft Office Live Meeting 2007
Microsoft Office Communicator 2007
|
|
Applications with licensing enforcement tied to a computer
|
Applications where the license is tied to system hardware or to the system's media
access control (MAC) address.
|
Computer-aided design (CAD) software
|
|
Applications or suites of applications that, when sequenced, will result in an .sft
file greater than 4 gigabytes (GB)
|
App-V 4.5 does not support sequences larger than 4 GB.
|
Microsoft Flight Simulator X
|
Evaluating and developing a software catalog before undertaking application sequencing
tasks helps to determine where Dynamic Suite Composition or Local Interaction may
be beneficial to help ensure application functionality and efficiency.
Phase 2: Build the Sequencing Workstation
The App-V Sequencer computer must be appropriately configured to support an effective
sequencing process. Configuration considerations include the following:
- Partitioning. The App-V Sequencer should be configured with at least two
primary partitions: The first partition, which is typically drive C, contains the
operating system files and should be formatted as an NTFS file system; the second
partition is used as the destination path for application installation when performing
a sequencing procedure. The second partition should also be formatted as NTFS.
- App-V virtual drive. The App-V client captures and utilizes a drive letter
that is used to execute virtual applications. An organization should standardize
on a common drive letter for execution across the entire Windows desktop environment.
By default, drive Q is be designated as the App-V virtual drive. The sequencer should
also use the same drive letter when sequencing an application for the virtual environment.
- Clean sequencing workstation. It is important to sequence an application
on a computer that has a clean operating system, with no extraneous applications
installed. The sequencer should contain the same operating system environment as
the client base in the organization. The sequencer should be imaged and reverted
back to a clean state after every sequencing task.
Note: There may be times that a pre-existing application is required on the
sequencer. For example, if a secondary application is being packaged for use with
Dynamic Suite Composition, the primary application is usually installed on the sequencer
to capture the interaction between the applications.
Phase 3: Perform Sequencing Tasks
Specific sequencing tasks depend on the application that is being packaged and its
potential dependencies. A primary application follows the standard sequencing process
of installing, starting, customizing, and then saving the package on the App-V Sequencer.
A secondary application that will be used as a plug-in requires the primary application
to be already installed on the computer. After the primary application is installed
and configured, the sequencing process begins and the secondary application is monitored
and installed via the App-V Sequencer.
A secondary application that will be used as middleware does not require the primary
application to be installed initially. Middleware applications are typically required
to run with any application, and as such are not directly dependent on the primary
application.
Note: To simplify secondary package management, follow an appropriate naming
convention for secondary packages. For example, if Silverlight 1.0 is sequenced
as a supporting plug-in, the naming convention may be Silverlight Plug-in Dependent
Package.
Best Practices
Through experience, Microsoft has developed a number of best practices for sequencing
applications. Best practices include:
- Thoroughly understand how an application is installed and what components will be
needed prior to sequencing. It is also important to gain an understanding of how
users commonly use the application immediately after they start it.
- Always document the sequencing process in a step-by-step fashion to create a template
for future sequencing tasks.
- The App-V Sequencer and the client computers must have the same Microsoft Installer
version. If they do not have the same version, users may see an Installer dialog
box or have issues running the virtual application.
- If the application stops responding during sequencing, re-sequence it even if it
appears to function correctly afterward.
- Use the Application Virtualization Dynamic Suite Composition Tool to edit and associate
virtual application package dependencies. This tool is part of the Microsoft Application
Virtualization 4.5 Resource Kit Tools found at
http://technet.microsoft.com/en-us/appvirtualization/dd277292.aspx.
- Disable "install on first use" and "Auto Update" features when
sequencing an application.
Conclusion
Sequencing an application for deployment in a virtual environment relies on a consistent
and structured process. It is important to understand which applications can be
sequenced, and to have a thorough understanding of the installation process for
each application and dependent component. Awareness of how the application will
be deployed will also help ensure that the sequenced application is packaged as
efficiently as needed.
For More Information
For more information about Microsoft products or services, call the Microsoft Sales
Information Center at (800) 426-9400. In Canada, call the Microsoft Canada information
Centre at (800) 563-9048. Outside the 50 United States and Canada, please contact
your local Microsoft subsidiary. To access information via the World Wide Web, go
to:
http://www.microsoft.com
http://www.microsoft.com/appv
http://www.microsoft.com/systemcenter/configurationmanager/en/us/default.aspx
http://technet.microsoft.com/en-us/windows/bb899442.aspx
http://www.microsoft.com/technet/itshowcase
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES,
EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft, Windows, and Windows Server are
either registered trademarks or trademarks of Microsoft Corporation in the United
States and/or other countries. The names of actual companies and products mentioned
herein may be the trademarks of their respective owners.