How good an idea is it to virtualize XenApp? Way back in 2010, when more of the poles were ice, we asked is virtualizing Citrix XenApp a waste of time and effort? There were a number of benefits identified: hardware abstraction allowing easier image management and OS upgrades; options for higher availability and faster recovery, even failover; virtualization-enabled silo consolidation; and importantly, better management of user capacity on servers.
Yet, with XenApp running on Windows 2008 R2 memory limitations are of far less issue. Introducing a hypervisor has an overhead which can impact user density and can change Microsoft server license costs per physical server. Do these considerations outweigh other benefits? Hypervisor technology and performance has moved on considerably – what is the impact of that? What other services can virtualized XenApp drive?
Reasons for Virtualizing XenApp
Yes, hosting on physical servers gives greatest scale on that device and more raw performance. For some application types, physical may be the only choice. If you want to increase 2D and 3D application scalability and performance by making use of Citrix’s HDX 3D, you’ll need to make use of the server’s graphics processing unit (GPU). While the latest versions of Citrix XenServer hypervisor support GPU pass-through, not all GPUs support pass-through (at the time of writing, Nvidia’s Quadro K5000 does not, for example, as noted by Thomas Poppelgaard).
Still, not all applications require GPUs. When considering “Should I virtualize XenApp?,” you have a number of key benefits:
- A consistent hardware platform to better utilize automated deployment services (such as Citrix Provisioning Services), reducing the time and complexity in deploying new servers.
- Live motion of VMs removes dependencies on any single physical host – and this is increasingly flexible: Windows 2012, for instance, can perform live migration with no shared resources.
- Allocation of additional resources can be automated and optimally balanced, allowing you to use your physical server estate optimally as demand changes, not just disaster dictates.
- Facilitation of re-allocation and re-purposing of resources, letting you to adopt a more flexible, less siloed compute environment.
That said, be mindful that in a shared environment it is likely that you are utilizing SAN resources. Citrix XenApp and Remote Desktop Services (RDS) VMs have similar challenges to virtual desktop VMs in terms of storage, cost, and performance. But, such challenges can be overcome. Atlantis ILIO for XenApp, for example, is a software virtual machine that accelerates the performance of virtualized Citrix XenApp and RDS instances on a shared SAN environment, which we’ve discussed before.
Fundamentally, virtualizing XenApp servers offers you greater flexibility than physical servers. While I’ve come across those implementing and considering 1:1 virtualization ratios to gain that flexibility and maximize the resources for a VM, this seems overly keen. I’d recommend reviewing Daniel Feller’s article on Big or Small VMs for XenApp as a more considered approach for a more general application environment delivery.
XenApp in the Public Cloud
Indeed, without virtualizing XenApp, how can you utilize public cloud resources? Not hosting, but bursting into an IaaS for flexible demand. Citrix needed a public demo environment to provide our partners and customers demos of the new Citrix Receiver for mobile devices, and they have published their C3 demo lab blueprint, which utilized both Amazon and Softlayer services; hopefully, Craig will finish the Netscaler section soon.
While flexibility on internal resources is easy to understand, I’ve had mixed experiences in integrating Cloud/IaaS environments.
- Where does your image customization come from?
- How do your services join your domain? Do you create a new domain?
- Where are the SQL services going to be?
- How does the IaaS network interact with your private cloud/datacentre? Does it need to?
There is a significant cost saving if you down servers and keep the image in storage; is it possible to automate that “tepid standby” recovery? Microsoft’s Azure did/does a free three-month hosting plan which was ideal for testing. I managed to burn through the offered capacity in a long weekend with a small XenApp farm when I forgot to turn it off. Oops. Also, there is no Netscaler option for Azure as yet (although there is for other vendors – Amazon, for instance). That said, Citrix Netscaler isn’t the only connectivity option.
The interesting question here is, is this too much flexibility? How many are utilizing or are considering utilizing such services? I’d be interested to know; there’s a quick survey which you can access here if you’ve got time. I may look to revisit that tangent later.
How Good an Idea is it to Virtualize XenApp?
Successful virtualization does depend on the nature of your environment. While the goal is flexibility, not everyone will be willing to bend. In some organisations, the virtual server environment may not be not controlled by the same team that manages XenApp. Steve Kaplan wrote a interesting article on Private Clouds, organisations running their data centres with an IaaS model. In that “private cloud” scenario, do the profiles offered support the CPU and the memory requirements of XenApp VMs (even small ones)? Does the number of VM instances incur a higher charge? There is still a significant degree of automation and flexibility with physical servers, meaning that deployment time for new instances can be negligible. And automation tools need not be expensive; Aaron Parker wrote an interesting piece on using free Microsoft tools to create and deploy XenApp images. Still, you’ve got to buy the physical devices and cable them up. Physical can be automated, but it is still not dynamic.
The decline in need to deliver x32 environments and improvements in memory requirements for Windows Server 2008R2/2012 hasn’t reduced the flexibility that virtualizing XenApp instances can bring. Virtualizing XenApp can be a Good Idea. From speaking to a number of XenApp admins, I would suggest virtualizing XenApp – especially since XenApp 6.x has become far more common. While XenApp 4.5 may be going EoL this year, that’s not to say businesses might not still need it to be available in an unsupported capacity.
Be mindful that although virtualizing XenApp is a good idea, it is not the only idea. Your load testing and application requirements are key considerations; don’t be inflexible about implementing flexibility.