AWS Logo
Menu
Dynamically delivering applications with Omnissa App Volumes to Amazon WorkSpaces

Dynamically delivering applications with Omnissa App Volumes to Amazon WorkSpaces

This article provides a walkthrough of implementing proof of concept to dynamically deliver applications using Omnissa App Volumes, to the end users using Amazon WorkSpaces.

Mayank Jain
Amazon Employee
Published May 27, 2025

Introduction

In this blog post I explained how traditional application deployment methods are becoming unsustainable. With tens and hundreds of applications running across different systems, managing and updating those application can be very time consuming and an overhead on IT teams. However, with the advent of dynamic application delivery solutions like Omnissa App Volumes, enterprises can overcome these challenges and streamline their application management and delivery processes. In this article, I walk you through setting up a Proof of Concept environment to dynamically deliver applications using Omnissa App Volumes, to your end users using Amazon WorkSpaces Personal and Pools.

Overview of the solution

Figure: AppVolumes architecture
AppVolumes architecture
  1. User logs in to their WorkSpaces Personal or Pools.
  2. During logon the AppVolumes agent/service starts and communicates with AppVolume Manager.
  3. AppVolume Manager checks the user’s application assignment and instructs the agent to mount the applications in the user session.
  4. User launches the application as normal.
From the end user perspective, the process is seamless. They can’t distinct between locally installed application and dynamically delivered application.

Prerequisites

  • An existing App Volumes 4 version 2406 or above deployment on EC2 instance and FSx for Windows file share as datastore to store templates and application packages . If you do not have the deployment, refer Install AppVolumes Manager and Configuring App Volumes Manager. AppVolumes is available from AWS Marketplace and provides
  • An existing WorkSpaces Personal and WorkSpaces Pools deployment.
  • All the resources, that is AppVolumes Manager, application packaging WorkSpaces for AppVolumes, WorkSpaces Pools and WorkSpaces Personal and FSx for Windows should be joined to the same Active Directory Domain.
  • Any application that runs in kernel mode or has filter drivers running in kernel mode can’t be packaged using AppVolumes. For example: Anti-virus, printer drivers etc.
Note: AppVolumes doesn't support Auto-Stop running mode in WorkSpaces Personal and Manual running mode in Horizon 8 on WorkSpaces Core.

Walkthrough

Step 1: Prepare AppVolumes packaging Personal WorkSpace
AppVolumes require fresh OS image every time you create new application packages. For creating application packages, you use Personal WorkSpaces and install the AppVolumes agent on it. Then you create custom image and bundle from the WorkSpace so that you can use this image to create new WorkSpaces. Let us call this WorkSpace created from custom image as packaging WorkSpace. Next, you create application packages and after creating the application packages, you rebuild those WorkSpaces to revert back to the original state as that of the custom image. For details, see Preparing a Packaging Virtual Machine and Best Practices for Packaging App Volumes Applications.
  1. Create a Personal WorkSpaces in the same Active Directory domain as AppVolumes Manager. The WorkSpace user should have local administrator access.
  2. Connect to the WorkSpace using WorkSpaces client.
  3. On WorkSpace, install the AppVolumes agent in non-persistent mode. For details on installing the AppVolumes agent, see Install AppVolumes Agent.
  4. Create custom image and bundle from the WorkSpace.
  5. For image and bundle name and description, specify AppVol_Non-PersistentMode_Image and AppVol_Non-PersistentMode_bundle.
  6. Create a WorkSpace from the custom bundle. This WorkSpace is referred as packaging WorkSpace in the rest of the article.
Note: The virtual machine on which App Volumes agent is installed with persistent desktop enabled cannot be used as a packaging virtual machine.
Step 2: Create an AppVolumes application
First step in creating an application package is to create an AppVolumes application in AppVolumes Manager. This allows you to manage the lifecycle of the packages added to the application.
  1. To create AppVolumes Application, see Create an App Volumes Application.
  2. While creating the App Volumes application do not select “RDS package attachment” option as WorkSpaces do not support multi-session yet. See screenshot below.
Step 3: Create a package for an AppVolumes application
Third step is to create a package for an AppVolumes application. A package stores one or more programs required for the application to run. You can create a package for an application either immediately after creating the application or at a later point in time. To create the package, see Create a Package for an App Volumes Application.
Step 4: Package an App Volumes application
After adding a package to an application, next step is to select a packaging machine and build the packages. For this, you use the Packaging WorkSpace created in Step 1, using the custom image.
To package an AppVolumes application, see Package an App Volumes Application. To understand some of the best practices that can be followed while packaging an application, see Best Practices for Packaging App Volumes Applications.
After the application package has been created successfully, rebuild the WorkSpace to revert the WorkSpace back to the original state.
Note: The virtual machine on which App Volumes agent is installed with persistent desktop enabled cannot be used as a packaging virtual machine.
Step 5: Test the application package
Before you publish the application package to production, it is recommended that you test and verify the package on a clean WorkSpace. For this you can create a new WorkSpace from the custom image created in Step 1.
To test the application package you must assign it to the users who should test the applications before publishing it to the end users in production. To assign the application see, Assign an App Volumes Application to an Entity. Once the testing is successful, publish the application package and assign it to your end users using the same process you followed for assigning the application to the test users.
Step 6: Creating custom image with AppVolumes agent installed
To create WorkSpaces Personal and WorkSpaces Pools and to dynamically deliver the application to your users you need to create a custom image that has AppVolumes agent installed. For WorkSpaces Personal, the AppVolumes agent needs to be deployed in persistent mode and for WorkSpaces Pools, the AppVolumes agent needs to be deployed in non-persistent mode.
For WorkSpaces Personal:
  1. Create a Personal WorkSpaces in the same Active Directory domain as AppVolumes Manager. The WorkSpace user should have local administrator access.
  2. Connect to the WorkSpace using WorkSpaces client.
  3. On WorkSpace, install the AppVolumes agent in persistent mode. For details on installing the AppVolumes agent, see Install AppVolumes Agent.
  4. Install any other application that should be part of your base/golden image.
  5. Create custom image and bundle from the WorkSpace.
  6. For image and bundle name and description, specify AppVol_PersistentMode_Image and AppVol_PersistentMode_bundle. You can specify any other name and description that helps you identify that the image has agent installed in persistent mode.
  7. Create WorkSpaces for your end users using this custom image and bundle.
For WorkSpaces Pools:
  1. Create a Personal WorkSpaces in the same Active Directory domain as AppVolumes Manager. The WorkSpace user should have local administrator access.
  2. Connect to the WorkSpace using WorkSpaces client.
  3. On WorkSpace, install the AppVolumes agent in non-persistent mode. For details on installing the AppVolumes agent, see Install AppVolumes Agent.
  4. Install any other application that should be part of your base/golden image.
  5. Create custom image and bundle from the WorkSpace.
  6. For image and bundle name and description, specify AppVol_Non-PersistentMode_Image and AppVol_Non-PersistentMode_bundle. You can specify any other name and description that helps you identify that the image has agent installed in non-persistent mode.
  7. Create WorkSpaces Pools using this custom image and bundle.
Step 7: Test the solution
Following screenshot shows that “TaskWorkerAppsPackage” package is associated with “TaskWorkerApps” application and has 3 programs packaged.
The below screenshot shows the 3 applications that are packaged in “TaskWorkerAppsPackage” package.
The following screenshot shows the user assignment for the packages.
When I login to WorkSpaces Pools machine, the applications are assigned to me during the logon. Following screenshot shows the 3 applications, 7-zip, VLC media player and Notepad++ in my Pools session.
From the end users perspective, the integration is seamless. They can’t differentiate between a locally installed application and dynamically delivered application.
AppVolumes application delivery makes it easy for organizations to manage base images and reduce the number of base or golden images that they have to manage. They can install the basic or core application on the base image and dynamically deliver the application to the users based on their line of business. Administrators can assign, update, or remove applications to be delivered at the next user login without the need to modify the desktops or disrupt users while they are working.

Conclusion

Dynamic application delivery with Omnissa AppVolumes and Amazon WorkSpaces Personal and Pools offers a game-changing solution for enterprises struggling with application management and delivery challenges. By leveraging AppVolumes' innovative approach, organizations can significantly reduce administrative overhead, accelerate application updates, and enhance the overall end-user experience.
 

Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.

Comments