• View Communities
    • Citrix Developer Network
      The place for unfiltered straight talk on Citrix products. Blogs, code downloads, best practices, APIs, and more can all be found here.
    • Citrix Ready Community Verified
      Does it work with Citrix? Application compatibility questions are a thing of the past with the new Citrix Community Verified site.
    • Blogs
      Learn the latest from the Citrix employees who are building application delivery infrastructure technologies.
    • Blogosphere
      The Citrix Blogosphere is a window into the thousands of conversations taking place about Citrix and Application Delivery.
  •  Sign In
The Citrix Blog
Personal Blog
Daniel Feller
Related Tags
posted by Daniel Feller

Being a Sr. Architect within Citrix for almost a decade, I've been asked by more Citrix administrators than I could ever count, wanting to know if they should virtualize their XenApp environment.  My typical response, which is common for a consultant, was "It depends."   Unfortunately, this is not an easy yes or no question.  XenApp is a unique beast in the delivery center.  Users don't interact indirectly with a XenApp server like they do other systems (database, web, etc). Instead, users work on the servers directly.  And if the servers have been designed appropriately, they should reach their memory limit or CPU limit.

Let's say, for example, your business is to write screenplays for "The Simpsons" and you have a set of XenApp servers hosting a single application for storyboarding.  This application is critical to the business.  On average, throughout the day, the CPU is 60% utilized and the memory is 80% utilized (4GB on Windows 2003 Server).  What advantage would you gain by virtualizing this system?  The hypervisor WILL take resources.  Chances are slim you would be able to host a second virtual server on this physical system.  In this case, I don't see where server virtualization fits. You could add more memory and additional CPU sockets, but you are spending more money just to try to save money.  Of course there are some XenApp servers that are underutilized.  Why?  Was it an improper design? Or was there a business reason? With underutilized severs, we do have the opportunity to reduce the XenApp hardware footprint somewhat.  But in my opinion, server virtualization is trying to solve a small problem in the XenApp world, consolidation.  With proper hardware design, this can be mitigated. I have seen, based on my experience as a consultant and an administrator, the bigger challenge is management, availability and flexibility. 

When I was an admin, we used to have a scripted build for our MetaFrame 1.0, 1.8 and XP servers.  The scripts were very elegant and worked like a champ (I can say this because I wrote them), but they were a pain to maintain.  Plus you had to take into account hardware changes, application modifications, etc.  I've seen people go to cloning-like solutions, but you still have hardware configuration challenges, which I've seen some people end up with 10, 20 or even 50 different images.  When it was time to patch those systems, the good times rolled (sarcasm). Server virtualization cloning has the same challenges, although hardware changes are mitigated by the hypervisor.  Cloning in the virtualization world allows one to quickly get a system up and running, but does little for maintaining the images.  Just in my own personal lab, I've got roughly 20 virtual images.  And it seems like every time I turn on one virtual machine, there are new updates!!!  We have all heard of DLL-hell, well new we have Patch-hell. 

And we all love the server virtualization solution, even I do, which is why I'm writing this blog entry instead of preparing for my Synergy sessions or watching a good episode of The Simpsons without my boss catching me (Hope he doesn't read these). Everyone is talking about it as the next big thing, but we will continue to have tons of servers that are not virtualzed.  Does that mean 2 solutions, 2 sets of images, 2 sets of tools based on your environment?  When I think of that, I'm thankful I'm not an administrator. But this is where the story gets really interesting:

Provisioning Server integrated with XenServer, what a great concept.  One image for multiple servers.  And what's more, that one image can span virtual and physical servers.    When I need to make an update to the app or OS, I update one image and reboot the servers.  Time to rebuild the farm equals the time it takes to reboot the farm.  I don't care if the server is physical or virtual, they are all the same to me.  As I use this integrated solution more and more, I am impressed with the ease of maintenance.

But let's get back to the original question... If you now ask me if you should use server virtualization integrated with your XenApp environments, my answer has not changed... I will still say It Depends.  But what I say next is to look at the bigger picture.  Why do you want to virtualize? What are you trying to solve? What is wrong with your XenApp environment that you are looking at server virtualization?  And I bet the more we look into it, we will end up with a challenge revolving around management, availability or flexibility.  So I dare you to ask me, but be ready for a longer conversation, which will include some relevant Simpsons quips as well.

If you are interested on architectures, guidelines, implementation guides, then I encourage you to take a look at a set of materialsI've developed focused on the integration of XenServer and XenApp.  If you think I'm totally on, let me know so I can show my boss how awesome I am, but I'm also game for a good discussion with differing viewpoints. 

Labels

architecture architecture Delete
xenserver xenserver Delete
xenapp xenapp Delete
provisioning server provisioning_server Delete
lang-eng lang-eng Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. May 16, 2008

    Vinny Sosa says:

    Daniel, I agree with you 100%. Sometimes solutions from the same company may se...

    Daniel,

    I agree with you 100%. Sometimes solutions from the same company may seem an un-natural fit. The "It depends" asnwer really is the right answer when it comes to XenApp.

    As an example, I recently wrote a white paper detailing the high-level benefits of running XenApp on XenServer. The primary benefit was in cases where servers are underutilized. This underutilization occurs for a number of reasons. The most common if which are improper design (as you've mentioned) or some business need that has forced server siloes. This business-driven siloing is of the biggest concern to me as a veteran Citrite. What happens is that if one business unit pays for their XenApp servers and wants them maintained seperately from the XenApp servers owned by other busienss units, then that SLA is met by physically seperating the servers from each other. This is bad practice for XenApp servers and it is this business need that has driven a lot of server sprawl in the data center. Another reason for sprawl are service siloing for the sake of isolation which is another story all together.

    Customers can maintain isolated environment for business units while maximizing server utilization by using XenServer. So, if one business unit (BU) server is utilized 30% and another BU's server is utilized 30%, then hosting them both on one XenServer will improve hardware utilization, reduce power consumption, reduce footprint, etc., etc., etc. It should also reduce the cost to the Business Units as well since they are not paying for dedicated physical hardware. The challenge in this case then becomes creating a VM internal cost model that can be used to do internal chargebacks. I've heard it's something we are internally working in our own IT department here at Citrix.

    Some other things to consider with regards to virtualizing XenApp are that XenServer can be a godsend if you consider the ancillary services and components included with XenApp. XenServer could be a great solution for Licensing services, the IMA Data Store, Password Manager services, a Program Neighborhood Agent site or even Application Performance Monitoring database. These services are a part of the XenApp infrastructure but do not host application sessions. Seperating them away from hosting servers (XenApp core servers) and virtualizing them can increase capacity on XenApp servers (assuming customers have installed these services on farm servers). Now, it's important to note that I am  not saying these are best practices. I am simply suggesting that these are areas customers may want to consider for virtualization. As an example, it may not make sense to virtualize Application Performance Monitoring in environments with many servers or devices, especially if it is being used for End-point data capture as well.

    Anyways, great post man! Thanks for letting me piggy-back.

    Vinny Sosa
    Sr. Technical Marketing Manager, XenApp

  2. May 16, 2008

    Daniel Feller says:

    Vinny You are totally on there.  There are a whole slew of business and te...

    Vinny

    You are totally on there.  There are a whole slew of business and technical reasons why XenApp servers are underutilized.  Within the reference architecture document, you will see many of those reasons you pointed out are identified (security, business units, etc).  True that server virtualization can help better utilize your hardware, and has been shown numerous times, but we also must be wary of trying to maintain two different enviornments, the physical and virtual. And this is what I think people must be made aware of. 

    Dan

  3. May 17, 2008

    Anonymous says:

    Another use of Virtualised XenApp servers could be for you Dev/Axp XenApp enviro...

    Another use of Virtualised XenApp servers could be for you Dev/Axp XenApp environments. We have done this when performance is not a top priority. We are outsourced so the cost of a virtual guest is much cheaper than a piece of tin. We have all our support servers (WI, Licence etc) on virtual guests as well.

    Chris

  4. May 17, 2008

    Bernie Hannon says:

    All good points to consider when thinking about virtualizing XenApp. Here's anot...

    All good points to consider when thinking about virtualizing XenApp. Here's another that is often overlooked. The ability to spin up a virtual or physical instance of a XenApp server when using XenServer Platinum is an excellent P2V feature allowing administrators to take a physical server in need of maintenance off line and run it as a VM while the physical production server is being serviced. As Dan said, it's as easy as re-booting the server. Once the server is repaired, the process is reversed (V2P) and the physical server is back in production. The VM that temporarily served as the production unit goes away and avoids adding to the problem of VM sprawl. Taking this example even further, the image running the physical server can be easily copied and then run as a VM in a test lab where it can be patched or upgraded even while the physical production server continues to run on the original production image. With another re-boot, the administrator re-assigns the updated image to the production server and just like that, you've done an upgrade. Should the upgrade encounter a problem in production, the admin can re-boot the production server and point it to the previous production image and you're back in business.

    This level of flexibility in managing XenApp farms is just another benefit XenServer Platinum brings to XenApp and many other server platforms (i.e. web servers) where flexibility and manageability is every bit as important as the need to address under-utilization and server consolidation.

    Bernie Hannon-Dir. Citrix VMD Solution Testing & Certification       

  5. May 20, 2008

    Anonymous says:

    In general I'd say no. -For production machines hosting user applications/de...

    In general I'd say no.
    -For production machines hosting user applications/desktops BIG NO NO NO
    -For every non-production xenapp server there are some advantages

    I've seen it with several of my clients, both Vmware and Xen, for production machines it just doesn't perform. Its not as if there is not enough CPU power overall, but the responce times are annoying. When users press the start menu, it just takes those few extra miliseconds to open, witch totally undermines the user expireance. All clients I know who started virtualizing their production machines are now back to 'metal' (non-virtual machies).

    There are some tasks which can be done perfectly on virtual machines:
    -testing environment
    -acceptance environment
    -package server (rollback is a big plus here)
    -web interface
    -license server
    -management applications
    -exotic applications who are not used a lot

    -Dennis

  6. May 28, 2008

    Daniel Feller says:

    Dennis has an interesting point.  By virtualizing XenApp, you are adding an...

    Dennis has an interesting point.  By virtualizing XenApp, you are adding another layer to the stack. Each layer adds some level of redundancy.  What amount, what impact, and will users notice is only a guess until real-life tests are completed.  Based on this, if you would go down the virtualization route for XenApp servers, you want to go with the solution that is the leanest, because it should have the lowest levels of latency (hopefully). 

    I would be interested in hearing more from Dennis's experiences. When I was working with XenApp on XenServer 4.0, I had very similar arguments against virtualizing XenApp.  Latency was too great, causing the user experience to suffer.  The XenServer team has done some really great work on enhancing the product to make it friendlier to XenApp workloads. Enough so that I have started changing my attitude towards virtualizing XenApp with the right virtualization solution.

    Also, at Synergy last week I had some interesting conversations with a few people who were virtualizing XenApp on XenServer 4.1.  They were telling me that they thought the XenApp servers responded faster than when they were on bare metal.  This shocked me, until we went deeper into the architecture.  First, they were using a network attached storage solution for their XenServer virtual images. This made the environment perform better.  On bare metal, the storage is being served by Windows server, which is also responsible for many other things.  The bare metal server is not optimized for file hosting while the NAS is.  From a few different customers, this one design decision alone had a very positive impact on the environment.

    I guess the moral of the story is test appropriately as each environment is different, and the results will vary. 

    Thanks for the feedback Dennis

    Daniel

Add Comment