I got an interesting question the other day regarding Provisioning Server and XenApp.  As you might be aware, I’ve published many articles on the benefits of integrating XenServer, Provisioning Server and XenApp.  This question sparked an interesting discussion.


Let’s say you have 50 XenApp servers total.  Most of the time you have carved out 20 of those servers to deliver Office 2007-type applications and the other 30 servers host another application like SAP.  Then comes month-end when we need more capacity, roughly 10 server, for the SAP.  What is the best approach to dynamically changing your XenApp environment to support these cyclical surges for certain applications?  Two words… Provisioning Server

Within Provisioning Server, we create three device collections:

  1. XenApp 5 – Office Applications Servers: contains 10 servers dedicated to delivering Office-Based applications
  2. XenApp 5 – SAP Servers: contains 30 servers dedicated to delivery SAP
  3. XenApp 5 – Swing Servers: contains 10 servers whose applications can change based on the needs of the business

Within our Provisioning Server vDisk Pool, we have two different vDisks defined (remember a vDisk is just a complete image with Windows 2008, XenApp 5 and the corresponding applications):

  1. XenApp 5 – Office Applications
  2. XenApp 5 – SAP Application

Whenever we reach the month-end timeframe and require more SAP servers, we simply drag-drop the XenApp 5 – SAP Application vDisk onto the XenApp 5 – Swing Servers collection and those swing servers will boot up SAP during the next reboot,

So, this solves the issue of adding/changing XenApp workloads quickly, but that isn’t the end of the story. Think about what is going to happen. A swing server, which we will call Smithers1, is set with the Office vDisk.  The XenApp administrator will publish the Office applications for the server Smiters1.  Later, we will assign the SAP vDisk to Smithers1 in Provisioning Server.  When that server starts up, the XenApp Data Store still believes that Smithers1 is delivering Office, but Smithers1 doesn’t have Office installed, it has SAP.  We must un-publish office and publish SAP.  As you keep changing the swing server’s vDisk, we have to continue this process or else users might experience issues (like being load balanced to Smithers1, trying to start SAP, but the path is invalid). But there is a solution…

Within the SAP vDisk, we create a script that does the following:

  • List all applications published on this server
  • Un-publish all applications from this server
  • Publish the SAP application for this server

When a server starts with the SAP vDisk, it will be automatically publish the SAP application.  Then on the Office vDisk, we create a script that looks like the following:

  • List all applications published on this server
  • Un-publish all applications from this server
  • Publish the Office applications for this server

If we build these scripts into our vDisk, we don’t have to worry about publishing, un-publishing, re-publishing applications manually, it will be automatic giving us the truly dynamic XenApp swing server.

Daniel (Sr. Architect)