Server Application Virtualization Overview
Applies To: System Center 2012 SP1 - Virtual Machine Manager, System Center 2012 R2 Virtual Machine Manager, System Center 2012 - Virtual Machine Manager
You can use Microsoft Server Application Virtualization (Server App-V) to create virtual application packages. Virtual application packages are images of applications that can be copied to a computer running the Server App-V Agent and started without requiring a local installation. The application then runs as if it is a locally installed application. Running virtual applications can help reduce hardware and operational costs and help streamline enterprise application management. Server App-V builds on the technology used with Application Virtualization (App-V) by separating the application configuration and state from the underlying operating system running on computers in a data center environment. Server App-V allows for dynamic composition of application and hardware images which can help significantly reduce the number of images that need to be managed. Server App-V also enables automation of deployment and management scenarios which can improve reliability, availability and serviceability of datacenter applications.
Not all applications are supported for use with Server App-V. Applications such as antivirus software that require device or kernel driver support are not supported. Server App-V is primarily designed for use with business applications or the business tiers of multi-tiered applications. Consequently some large server applications such as Microsoft Exchange Server, Microsoft SQL Server, and Microsoft SharePoint are not supported. While there is no list of supported applications for use with Server App-V, Server App-V has been optimized to create virtual application packages for applications with the following attributes:
State persisted to local disk
Microsoft Windows Services
Internet Information Services (IIS)
COM+ / DCOM
Text-based Configuration Files
Microsoft SQL Server Reporting Services
Local Users and Groups
Microsoft SQL Server Databases
For more information about configuring Server App-V see Server Application Virtualization Software Requirements.
You should also familiarize yourself with the following terminology:
- Virtual Application Package
An application packaged by the Sequencer to run in a self-contained, virtual environment. The virtual environment contains the information necessary to run the application on the client without installing the application locally.
- Deployment Configuration File
An .xml file that contains customized settings that are applied to a specific virtual application package when the package is run on a target computer.
- Virtual Environment
A runtime container that defines the resources available to application processes that are launched from a sequenced application package.
There are two major steps that you must take to implement Server App-V in your environment:
Create a virtual application package by sequencing an application
Using the application installation media, create a virtual application package that includes all required resources and configuration settings. You should also identify any items that will require configuration when the package is run. For more information about sequencing applications, see How to Sequence a New Server Application.
Deploy the virtual application package
Specify any configuration settings that must be set for a particular instance of the application, then deploy it using the appropriate tools. For more information about configuring an application, see How to Perform Post-Sequencing Configuration. For test deployments, you can use the Server App-V PowerShell cmdlets to deploy and manage your package. For more information about using cmdlets to deploy a package, see How to Deploy a Virtual Application Package for Testing.
The following table shows some of the differences in Server App-V and App-V.
If an application creates data or modifies configuration in a user-specific location in the registry when the application is sequenced, the data or configuration remains associated with the same user at deployment time and run time.
If an application creates data or modifies configuration in a registry location specific to the current user when the application is sequenced, the data or configuration is mapped so that it is accessible to any user running the application.
Application files that are part of a virtual application package, such as the .exe files and libraries that are required to run the application, are available to all processes that are running on the computer where the application is copied.
Application files that are part of a virtual application package are only available to that virtual application and any other processes started in that application's virtual environment.
COM objects, DCOM objects, COM+ objects, WMI Providers, and NT Services that are part of a virtual application package are exposed on the local system to let the operating system, tools, and other applications interact with them. For example, the native Service Control Manager (SCM) can be used to start a service that is part of a virtual application package.
COM, DCOM, COM+, WMI, and service information that is associated with a virtual application package is kept within that package, unavailable to any processes running outside that package. For example, the native SCM will not see any NT services that are running inside a virtual environment.
The Server App-V Agent uses heuristics to automatically detect which processes on a computer must be run within virtual environments. Typically, no launcher shim is needed. To explicitly add a process to a virtual environment, you can add "/RunInVE:<package GUID>" to the end of the process's command line.
For a process to be virtualized, that process must be opened by an App-V program such as sfttray.exe, or it has to be the child of another virtual process. To explicitly add a process to a virtual environment, you can run the command "sfttray.exe /exe <executable to launch> /app <name of application>".