IPD - Microsoft Application Virtualization 4 6
IPD - Microsoft Application Virtualization 4 6
IPD - Microsoft Application Virtualization 4 6
and Design
Version 2.0
This documentation is provided to you for informational purposes only, and is provided to you
entirely "AS IS". Your use of the documentation cannot be understood as substituting for
customized service and information that might be developed by Microsoft Corporation for a
particular user based upon that user’s particular environment. To the extent permitted by law,
MICROSOFT MAKES NO WARRANTY OF ANY KIND, DISCLAIMS ALL EXPRESS, IMPLIED AND
STATUTORY WARRANTIES, AND ASSUMES NO LIABILITY TO YOU FOR ANY DAMAGES OF ANY
TYPE IN CONNECTION WITH THESE MATERIALS OR ANY INTELLECTUAL PROPERTY IN THEM.
Microsoft may have patents, patent applications, trademarks, or other intellectual property rights
covering subject matter within this documentation. Except as provided in a separate agreement
from Microsoft, your use of this document does not give you any license to these patents,
trademarks or other intellectual property.
Information in this document, including URL and other Internet Web site references, is subject to
change without notice. Unless otherwise noted, the example companies, organizations, products,
domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious.
Microsoft, Active Directory, SQL Server, Windows, Windows Server, and Windows Vista 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.
You have no obligation to give Microsoft any suggestions, comments or other feedback
(“Feedback”) relating to the documentation. However, if you do provide any Feedback to
Microsoft then you provide to Microsoft, without charge, the right to use, share and
commercialize your Feedback in any way and for any purpose. You also give to third parties,
without charge, any patent rights needed for their products, technologies and services to use or
interface with any specific parts of a Microsoft software or service that includes the Feedback.
You will not give Feedback that is subject to a license that requires Microsoft to license its
software or documentation to third parties because we include your Feedback in them.
Assumptions
In writing this guide, the following assumptions were made in order to focus the scope of the material presented:
The decision to implement Microsoft Application Virtualization has already been made.
The reader has familiarity with Microsoft technologies such as Active Directory® Domain Services
(AD DS), Microsoft SQL Server®, Systems Management Server, System Center Configuration Manager
2007, file servers, and IIS servers. This guide does not attempt to educate the reader on the features and
capabilities of these or other Microsoft products.
Feedback
Please direct questions and comments about this guide to satfdbk@microsoft.com.
Please provide feedback on the usefulness of this guide by filling out the following survey:
http://go.microsoft.com/fwlink/?LinkID=132579.
Figure 2. Mapping of Microsoft Application Virtualization 4.6 technology into Core Infrastructure Model
Decisions
This guide addresses the decisions and/or activities that need to occur in planning an App-V implementation.
The following steps represent the most critical design elements in a well-planned App-V design:
Step 1: Determine the Project Scope
Step 2: Determine Which Model(s) Will Be Needed
Step 3: Determine How Many Instances Will Be Needed for Each Model
Step 4: Client and Sequencer Considerations
Step 5: Design the Streaming Infrastructure
Step 6: Design the Full Infrastructure
Some of these items represent decisions that must be made. Where this is the case, a corresponding list of
response options will be presented.
Other items in this list represent tasks that must be carried out. These types of items are addressed because
their presence is significant in order to complete the infrastructure design.
Decision Flow
The following figure provides a graphical overview of the steps in designing an App-V infrastructure.
Applicable Scenarios
This guide addresses the following considerations that are related to planning and designing the necessary
components for a successful App-V infrastructure:
Planning for streaming applications or deploying via software management systems.
Planning for centralized, decentralized, or departmental use.
Planning for isolated use, such as a lab or classroom.
Planning for Internet-based clients.
Rapidly deploying a new version of an application.
Out of Scope
This guide will not cover the mechanics (such as step-by-step directions) of delivering virtualized application
packages to desktops.
Step Summary
Decisions about the scope of the project must be based on the specific needs of the organization. In this step,
information about the applications to be virtualized and their usage at locations in the company was gathered.
This information drives decisions in Steps 2 and 3 for determining the types and number of instances, and in
Step 5 for designing the streaming mechanism.
Standalone Model
App-V in Standalone Model consists of the sequencer and the Microsoft Application Virtualization client; no
additional App-V infrastructure is required. Applications are prepared for virtualization in a process called
sequencing. The sequencer packages the publication information, shortcuts, and the install routines into a
Windows Installer file (MSI), and the virtualized application in to an SFT file. The application can then be
distributed using existing installation method, such as:
Active Directory publishing through Group Policy objects (GPOs).
Media distribution via USB key or CD.
Run from a file share or Web server.
Software management systems such as System Center Configuration Manager (ConfigMgr) 2007 or
Microsoft Systems Management Server (SMS) 2003.
Streaming Model
App-V in Streaming Model consists of one or more streaming servers, the sequencer, and the App-V client;
another mechanism such as an electronic software distribution system or Group Policy will need to be used to
publish the application icons to the client. As with Standalone Model deployments, applications are sequenced
using the App-V sequencer. However, instead of being packaged with an MSI file, the App-V–enabled
applications are placed on a streaming server that streams applications to client computers. Streaming is the
term used to describe the process of obtaining content from a sequenced application package, starting with
Feature Block 1, and then obtaining additional blocks as needed, which allows the application to be quickly
available for the user.
The virtual application package content is placed on Microsoft System Center Application Virtualization
Streaming Servers so that the package can be streamed to the clients on demand and be cached locally. File
servers and Web servers can also be used as streaming servers. Streaming applications across a WAN is
supported but should be tested in the organization’s environment to ensure performance is acceptable.
Additionally, ConfigMgr 2007 SP1 with R2 distribution points can stream content to users; it provides the further
benefit of automating the redirection to the “closest” server for clients that roam. ConfigMgr 2007 can be used to
publish and deploy streaming applications and keep the content on the streaming servers synchronized.
application content available to end-user computers. Streaming servers should be on the same high-speed LAN
connection as the clients.
A complete App-V management environment will be needed if any of the following features are required when
planning an App-V installation:
Dynamic group-based application publishing. The shortcuts and file type associations will be published
to the clients by the Application Virtualization Management Server. Applications can be associated with
security groups in Active Directory. Users will only receive the applications if they are members of the
associated groups.
License enforcement:
Named license. A software package can be associated with a specific user name. Only the user who
is named in the policy will be able to launch the application.
Concurrent license restrictions. Software that is licensed for concurrent usage can be metered out
based on the number of users currently using an application. If more than the defined number of
users attempts to launch the application, the surplus launch attempts will be denied access to the
application.
Reporting. App-V provides a console for generating reports on system utilization, software usage,
application utilization, and system errors, or the data can be extracted to create custom reports.
Step Summary
In this step, the three models for distributing virtualized applications to the clients were described, and it was
noted which might be needed in the organization. This will be used in Steps 3, 4, 5, and 6.
If the organization already has a method for publishing the applications to clients, then the Standalone or
Streaming Models may suffice. If no infrastructure is in place to publish applications or if the additional features
provided by the App-V Management Server are desired, then Full Infrastructure Model should be chosen. A
combination of models may be required to deliver virtual applications within the organization.
Deciding how to deploy App-V applications will come down to determining what model or combination of models
for distribution will be required in the organization’s environment.
Step Summary
In this step, the number of App-V Full Infrastructure Model instances was determined, and an App-V Streaming
Model instance was determined for each location requiring
App-V–enabled applications and recorded in Table A-2 in the Appendix. Ensure that each user and location that
needs to receive virtualized applications as identified in Step 1 can receive them via one of the methods above.
Note that the Standalone Model can be used wherever it is needed in the organization since no infrastructure is
required.
The reader has a choice at this juncture. If the decision to only use the Standalone Model has been made, all
that remains is to complete Step 4. If the decision to use the Streaming Model has been made, then Steps 4
and 5 need to be completed. If the organization will be using one or more Full Infrastructure Model instances,
then Steps 4, 5, and 6 will need to be completed.
Solution Accelerators microsoft.com/technet/SolutionAccelerators
16 Infrastructure Planning and Design
RD Session Host servers should have sufficient network throughput to the App-V streaming servers to ensure
that applications can be quickly loaded and cached on the RD Session Host server. Furthermore, if an
application is updated through App-V, the RD Session Host server can quickly update its cache. If there is a
significant delay in updating an application, all users who attempt to use the application in question will not be
able to access it for the time the update is being loaded. Application updates can only occur after the last user
has exited the application. The update will then take place the next time that the application is launched.
Physical Sequencer
The following considerations should be taken into account when planning to use a physical sequencer:
When using a physical workstation, a reference disk image of the computer should be created once the
sequencer is installed. Each time an application is sequenced, the image should be reapplied to the
workstation to reset the computer. Physical machine sequencing will be able to sequence an application
much more quickly than virtual machine sequencing.
With its slower reset time, the system will need to be re-imaged in order to sequence the next application.
If the application has specific hardware library dependencies, such as graphics accelerators (for example,
CAD software), a physical server might be more desirable.
Virtual Sequencer
Virtual machines are ideal for sequencing applications and can be quickly and easily reset. It is possible to
quickly revert a sequencer to its base environment, which is ideal for sequencing many applications. Two virtual
hard disks will be required: the first for the OS and the second dedicated to the virtual drive for the App-V client.
The following consideration should be taken into account when planning to use a virtual sequencer:
The system is slower to sequence applications due to running in a virtual machine than on a physical
machine. This does not usually cause a significant issue.
The Microsoft Application Virtualization Sequencer system environment must also be configured to match
deployment environments. An App-V package uses a virtual drive on the client to store sequenced application
files. When building the sequencer, it is important to physically designate a drive on the computer used for
sequencing. By default, this is a drive mapped to drive Q. On a physical computer, this can be a separate
partition mapped to the sequencer drive letter, or it can be a new hard drive in the computer. In a virtual
machine, this is best defined as a new virtual drive and is then configured as drive Q in Windows Volume
Manager.
Step Summary
In this step, it was decided whether to sequence on a virtual environment or a physical environment. It was also
determined where to place the sequencer.
If it was decided that only the Standalone Model will be used, the planning and design is complete. If it was
decided that Streaming or Full Infrastructure Models will be used, proceed to Step 5 to design the streaming
infrastructure.
Additional Reading
Planning and Deployment Guide for the Application Virtualization System: http://technet.microsoft.com/en-
us/library/cc843778.aspx
Microsoft Application Virtualization documentation: http://technet.microsoft.com/en-
us/library/dd351468.aspx
The App-V Blog : Do I need to re-sequence my applications when I move to a new OS?:
http://blogs.technet.com/softgrid/archive/2009/12/14/do-i-need-to-re-sequence-my-applications-when-i-
move-to-a-new-os.aspx
“Application Virtualization 4.5 for Terminal Services“
http://download.microsoft.com/download/6/9/0/69095D7C-649D-4A0E-AF0B-17B26EACCF67/App-V
%20Terminal%20Services.docx
“Virtual Application Management with Microsoft Application Virtualization 4.5 and System Center
Configuration Manager 2007 R2“ http://download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-
4102c05a6d44/App-V_and_ConfigMgr_Whitepaper_Final.docx
“App-V Application Publishing and Client Interaction”:
http://download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-
4102c05a6d44/AppPubandClientInteraction.docx
Microsoft Application Virtualization 4.5 Sequencing Guide:
http://download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-4102c05a6d44/App-
45_Sequencing_Guide_Final.docx
Note ConfigMgr 2007 SP1 with R2 uses IIS on standard distribution points and file server SMB
streaming on branch distribution points.
1
Note An alternative transparent way of providing new versions of applications to users for IIS
or SMB streaming servers is to revise the OSD file to specify a new SFT file name (for example,
*_2.SFT) and send those with the next publishing refresh. When a user’s computer is started, the
client searches for the new file name, differentially streams the blocks down, and starts the new
application automatically. This may mitigate the need for Active Upgrade functionality.
The method of deploying the application in the environment can have an impact.
For example, are applications fully cached on the client? This results in only pulling updates when the
application is patched. However, it also requires a large download of the application initially. If an
application is streamed on demand, then a smaller amount of data is initially streamed. But depending
upon usage, additional blocks will be streamed and cached when new features are invoked that were not
part of Feature Block 1. In addition to network performance impacts due to the amount and frequency of
the streamed data, the act of streaming also has a processor impact on the server. A sufficiently large
number of streams can cause the server’s performance to degrade, regardless of the available network
bandwidth.
Additionally, depending upon the protocols chosen, additional processor overhead can be incurred with
streaming. If a protocol that supports encryption is used, then additional processor overhead is required to
encrypt the stream.
This is just a sampling of the variables that can affect the performance and scaling of the streaming servers.
Because a number of these variables are related to the environment, testing within the environment where the
App-V services will run is required. Once a baseline is established on the size of the servers, additional servers
can be added for redundancy and/or to increase capacity. Start with one streaming server (or two if required for
fault tolerance), and add additional servers as required. Performance monitoring should be done on the
streaming servers to help plan for additional capacity and performance requirements. Enough free drive space
should be available on the server(s) or a highly connected network access server (NAS) to hold the applications
being streamed.
Step Summary
Although an organization may have a mix of streaming server types, each client can connect to only one type at
a time. The setting for the application content source is defined by the choice of streaming method for that
client.
In this step, the method that the Microsoft Application Virtualization Management System will use to stream the
virtual application packages, or .SFT files, from the server to the clients was determined.
If a Full Infrastructure Model instance was selected, proceed to Step 6 to design the infrastructure.
Additional Reading
Infrastructure Planning and Design guide: Windows Server 2008 File Services:
http://www.microsoft.com/downloads/details.aspx?FamilyId=AD3921FB-8224-4681-9064-
075FDF042B0C&displaylang=en
Infrastructure Planning and Design guide: Internet Information Services 7.0:
http://www.microsoft.com/downloads/details.aspx?FamilyId=AD3921FB-8224-4681-9064-
075FDF042B0C&displaylang=en
App-V 4.5 Server Sizing Guide: http://download.microsoft.com/download/1/6/1/161042F3-9CDE-45F7-
BC20-4FBDA8888890/AppV45_ServerSizingGuide_Final.docx
Application Virtualization 4.5 documentation page: http://technet.microsoft.com/en-
us/appvirtualization/cc843994.aspx
Management Server
Management Servers can be configured to perform the publishing refresh process, stream or load applications,
and authorize the launch of cached applications. In testing, it was found that if a Management Server only
performs the publishing refresh process, it can support a very large population (approximately 480,000
publishing refreshes per hour). Implementing the additional processes of loading and launching cached
operations are additive and will effectively reduce the maximum population that could be supported. Adding the
loading or streaming of packages will further reduce the performance of a single Management Server.
To increase the number of users that a Full Infrastructure Model instance is able to support, add additional
servers via load balancing.
SQL Server
The App-V SQL Server database is a required component in an App-V Full Infrastructure Model
implementation. The database contains configuration information and stores usage information for the App-V
infrastructure. The following is a list of App-V infrastructure operations that use the database:
Publishing refresh
Application load
Application launch authorization
Management Console
Online/offline client application usage data collection and reporting or offline metering
Most of these are lightweight operations and will place a very small load on the server running SQL Server.
However, the offline metering will place a load on both the server and network based on the number of users
and the amount of application usage data that is collected.
Running the built-in reporting capabilities available on the App-V Management Console in large environments
can potentially add significant CPU load on the App-V SQL Server-based server. In such environments, the
product group recommends to periodically extract the data to a new database on a different server running SQL
Server so that custom reports can be generated against it using existing reporting tools available in the
organization.
The Microsoft Application Virtualization data store can be located on a dedicated SQL Server instance, or it may
be located on a SQL Server instance that has sufficient capacity to accommodate the App-V database along
with any other databases that reside on that instance.
Database Sizing
Database sizing and growth are primarily dependent on application launches and retained reporting information.
These operations are ongoing and continually add to the size of the database. These two processes will need to
be calculated along with any database cleanup operations to predict the proper size of the database. Other
database operations such as adding an application, adding new App-V clients, and fixing client errors will not
significantly increase the size of the database.
If a user launches and shuts down one application per hour for a normal work day, for a population of 10,000
users, the total impact to the database would be approximately 125 MB per day.
The following equation can be used to approximate the amount of data created by launching applications
against a Management Server:
(560 bytes per launch and shutdown) X (number of launches per day) X (user population) = Daily
database growth
Note This should only include applications launched from the Management Server, not from
Streaming Servers, IIS servers, or file servers, as that data is not captured and sent to the data
store.
If one application was launched each hour by a user all day, for a population of 10,000 users, the total would be
approximately 80 MB of data added to the data store each day.
The following equation can be used to approximate the amount of data created by application usage
information:
(365 bytes per application launched) X (number of launches per day) X (user population) = Daily
database growth
The Management Server service is only used to configure the App-V environment and generate reports. If the
service fails, the App-V system will continue to function normally with the exception of App-V management
changes and reporting.
App-V does not offer any automatic fault tolerance for the Management Server service, so it is a single point of
failure to be monitored in the system.
Record the server(s) designated to hold the Management Server service in Table A-3 in the Appendix.
Management Server
Management Servers perform a critical role in the App-V infrastructure. They are the servers that have direct
connectivity to the client workstations. The Management Server role must be deployed in the same location
and, if possible, on the same fast LAN as the SQL Server role in order to ensure good connectivity between the
Management Server and the App-V configuration information that is stored in the SQL Server database. In
locations where fault tolerance is not required, the Management Server can be deployed to the same server as
SQL Server and the Management Server service.
Fault tolerance is achieved by load balancing Management Servers. The Management Server is not cluster
aware nor has it been tested on a server cluster, so this configuration is not supported at this time. There are
two network load balancing options available: software-based NLB and hardware load balancer.
Hardware load Hardware load balancers tend to increase the complexity of the environment Medium
balancer due to the need for two and the additional knowledge needed.
Cost
NLB NLB is available in all editions of Windows Server 2003 and later. As a best Low
practice, an additional network adapter is added to all nodes in the cluster to
create a private network for the cluster heartbeat.
Hardware load Two or more hardware load balancers are needed to ensure fault tolerance. If High
balancer only one hardware load balancer is used, it becomes the single point of
failure.
Fault Tolerance
NLB NLB only provides fault tolerance at the machine level. If the application layer →
fails, NLB will not detect it.
Hardware load Hardware load balancers are able to detect application layer failures. ↑
balancer
Security
Although there are a number of fault-tolerance strategies and technologies available, not all are applicable to a
given service. Additionally, if App-V roles are combined, certain fault-tolerance options may no longer apply due
to incompatibilities.
In Table A-3 in the Appendix, verify that incompatible fault-tolerance options have not been selected for server
roles that are to be combined.
Table 2. Compatible Fault-Tolerant Role Combinations
Role NLB Server clustering Minimum servers
SQL Server Not applicable √ 2
Streaming Server √ Not applicable 2
Management Server √ Not applicable 2
Management Server service Not applicable Not applicable Not applicable
Step Summary
This step should be repeated for each Full Infrastructure Model instance. At this point, the requirements around
scaling and fault tolerance will have been identified, as well as the implementation necessary to meet those
requirements for a given App-V instance.
Fault tolerance for App-V in the Full Infrastructure Model or the Streaming Model provides a system that is able
to service client requests for new applications or updates. Applications that have previously been cached will
run in a disconnected mode in the event of an infrastructure failure.
Additional Considerations
The Microsoft System Center Application Virtualization Dashboard is a Windows SharePoint Services-based
application that lets customers utilize a browser based graphically rich reporting experience to provide a view of
multiple sets of App-V statistics on a single Web page. Customers can also customize and create more
dashboards to meet their business and organizational requirements.
This dashboard is fully supported by the Solution Accelerators team at Microsoft.
For more information, see http://go.microsoft.com/fwlink/?LinkId=183417.
Additional Reading
“An Overview of Windows Clustering Technologies: Server Clusters and Network Load Balancing”:
http://technet2.microsoft.com/windowsserver/en/library/c35dd48b-4fbc-4eee-8e5c-
2a9a35cf63b21033.mspx?mfr=true
Planning Server Deployments: http://technet2.microsoft.com/windowsserver/en/library/cd6dd855-c25a-
42e9-a0b1-861989aeac741033.mspx?mfr=true
“Configuring Network Load Balancing”: http://support.microsoft.com/kb/240997
Infrastructure Planning and Design: Windows Server 2008 Active Directory Domain Services:
http://go.microsoft.com/fwlink/?LinkId=157704
Infrastructure Planning and Design: Microsoft SQL Server 2008: http://go.microsoft.com/fwlink/?
LinkId=163302
Planning and Deployment Guide for the Application Virtualization System: http://technet.microsoft.com/en-
us/library/cc843778.aspx
App-V 4.5 Server Sizing Guide: http://download.microsoft.com/download/1/6/1/161042F3-9CDE-45F7-
BC20-4FBDA8888890/AppV45_ServerSizingGuide_Final.docx
Conclusion
This guide has summarized the critical design decisions, activities, and tasks required to enable a successful
design of a Microsoft Application Virtualization infrastructure. It focused on decisions involving:
Which models will be used in the organization to deliver virtualized applications.
How many instances of each model will be required to cover the locations and applications defined in the
scope.
The placement, scaling considerations, and fault-tolerance options of each server role.
This was done by leading the reader through the six steps in the decision flow to arrive at a successful design.
Where appropriate, the decisions and tasks have been illustrated with typical usage scenarios.
This guide discussed the technical aspects, service characteristics, and business requirements needed to
complete a comprehensive review of the decision-making process.
When used in conjunction with product documentation, this guide will allow organizations to confidently plan the
implementation of Microsoft Application Virtualization technologies.
Additional Reading
Microsoft Application Virtualization Team Blog: http://blogs.technet.com/softgrid/
Microsoft Application Virtualization 4.5 documentation page: http://technet.microsoft.com/en-
us/appvirtualization/cc843994.aspx
Use the table below to record information about each location in scope.
Table A-2. Location Categorization
Location Number Available Model Streaming instance Streaming instance
of users bandwidth name fault-tolerance
(if required) selection
(if required)
Detroit 250 T1 Full SVR-DET-A NLB
Flint 30 768 Streaming SVR-FLT-A None
If Full Infrastructure Model has been selected, use the table below to record the fault-tolerance selection for
each server role.
Table A-3. Full Infrastructure Fault Tolerance
Server role Server name Fault-tolerance selection
Version History
Version Description Date
2.0 Updated to reflect the availability of Application Virtualization 4.6, February 2010
with these areas impacted:
Provides support for Windows 7 and Windows Server 2008
R2
BranchCache for file or IIS servers
64-bit client support
Remote Desktop Services terminology changed from
Terminal Services
Server sizing data
Acknowledgments
The Solution Accelerators–Management and Infrastructure (SA-MI) team acknowledges and thanks the people
who produced the Infrastructure Planning and Design guide: Microsoft Application Virtualization 4.6. The
following people were either directly responsible for or made a substantial contribution to the writing,
development, and testing of this guide.
Contributors:
Jude Chosnyk – GrandMasters
Joe Coulombe – Microsoft
Charles Denny – Microsoft
Michael Kaczmarek – Microsoft
Robin Maher – Microsoft
Daniel Nerenberg – Studio B
Fergus Stewart – Microsoft
Melissa Stowe – Microsoft
Reviewers:
Karri Alexion-Tiernan – Microsoft
Matt Babey – Microsoft
Carlos Brito – Microsoft
Steve Chadly – Microsoft
Matthijs Gates – Microsoft
Emre Kanlikilicer – Microsoft
Brian Kelly – Microsoft
Jim Kerr – Microsoft
Chris Maher – Microsoft
Editors:
Laurie Dunham – Microsoft
Pat Rytkonen – Volt Technical Services