4) Agent

The Agent is the single most important peice of a VDI puzzle.  What happens in the agent directly affects your user's experience.  USB Support, bandwidth consumption, authentication support, and countless other things are dependant on their agent.

Bandwidth - PCoIP:
Lets talk about the most discussed item when it comes to XenDesktop vs VMware View, the bandwidth.  VMware has two protocols, RDP and PCoIP.  I could care less about RDP as it doesn't compete with ICA/HDX, so I'm going to focus on PCoIP.  PCoIP is a dynamic protocol, which means it'll use as much, or as little, bandwidth as you give it.  This is because PCoIP comes from the high end remote workstation background.  If you look on youtube you can find a video of me playing a high end video game remotely using PCoIP and a Zero Client.  This is the heart and soul of PCoIP.  Well, that's fine and dandy if you are running on a LAN, but if someone is asking about bandwidth consumption, they are mostly likely asking because they have a WAN, this puts PCoIP in a different light.  

Perception and truth are sometimes very far from each other.  The perception out there is that PCoIP is a bandwidth hog.  Well, as I've already mentioned, PCoIP left to itself will use whatever is available.   But you can drastically reduce this but just setting a couple Group Policies.  It's not a perfect solution but it gets the job done.  However, it is possible to have a decent experience at an average of 250k (and now with View5 that average is even lower).

As of the latest version of View, PCoIP has been optimized so it runs at significantly less BW than previous versions, also some features have been added to allow the admin to further reduce bandwidth, such as disabling Build to Lossless.

What is Build to Lossless?
PCoIP is a pixel perfect protocol.  This is ideal if you work in an environment where a single pixel could be life or death (literally) such as Health Care.  This is great... for that single use case.  However, in 99% of the other use cases, an image that looks the same to the naked eye is good enough, Citrix can do just that.  The difference between perceptually perfect and pixel perfect is a technology Teradici calls Build to Lossless, or BTL, and this technology can consume quite a bit of bandwidth.  So, how did Teradici respond?  They are now allowing admins to disable this feature.  This will allow for a lower total BW consumption while keeping the user perception nearly the same.  If you are a Citrix person, you already know what this feels like.  In the Citrix world, it compresses all images anyway, and you can set the compression to low/medium/high.  The higher the compression the worse the image quality.  Well, now you can do something similar in VMware View.

Bandwidth - ICA/HDX:
Where PCoIP came from the high end, ICA came from the low end.  I've been a Citrix Certified Guru for over a decade, and when I originally got certified a T1 link was considered a huge pipe to the Internet.  More commonly I had my users connecting in over a modem bank, which means at most my users could use 5.2k in bandwidth, yet I had to shove a "desktop" down that small pipe.  Citrix was able to do this!  Back then it might mean turning the video down to black and white and the resolution to 640x480, but that wasn't uncommon anyway and Citrix was able to do this and make it look great.  Well Citrix hasn't been sleeping for the past decade, they've been innovating.  ICA has joined forces with HDX (High Definition Experience) which, contrary to popular belief, is NOT a protocol.  ICA is a protocol HDX is a bunch of cool technologies that enhance the ICA experience.  So they work in conjunction with it and improve it by giving it tools outside the protocol that the protocol can rely on to remove some of the overhead.  Things like MMR (Multimedia Redirection) are a function of HDX (more on MMR to come).

ICA as a protocol rocks.  I don't think anyone from any company (VMware included) would say otherwise.  Its a great protocol.  Its, tried, true, tested, there is a lot of 3rd party products that know how to manipulate ICA to make it even faster.  Its been around for a long time and will continue to be around for a long time.  When VDI came around (which I attribute to Citrix) Citrix ported their ICA protocol so that it could be used to connect directly to a desktop, which is why you will hear XenDesktop's ICA sometimes referred to as Port-ICA.  I honestly don't know all the differences between ICA and Port-ICA but I'd guess Port-ICA doesn't get all the bells and whistles (however in practice I've never had something come up as a concern).  In any case,  Citrix ported ICA to the desktop and XenDesktop was born.

Whereas Citrix came from the low bandwidth space, Teradici (PCoIP) came from the high end.  This difference was more apparent in eariler versions of the software however, today its pretty much gone.  I used to harp on ICA because it couldn't do the things that PCoIP can at the high end but Citrix has some cooler 3D technologies now that make it possible.  On the flip side Citrix harps on PCoIP for using too much bandwidth.  However, the fact of the matter is both technologies compete at every level, both high end graphics and low end (low bandwidth) use cases.

The one thing that still stands out for me is that ICA has been around a lot longer than PCoIP and as such there are a lot more 3rd party products available to accelerate, cache, compress, de-dup the ICA protocol.  Now PCoIP does a lot of these things natively so it doesn't necessarily need 3rd party products, however, in practice many companies already own WAN acceleration utilities and they want to continue to use these utilities and find they can't.    This is what I like to refer to as vendor buy in.  A lot of Citrix shops are like Apple people, it doesn't matter if the Samsung Galaxy Nexus smokes the iPhone4S in every way imaginable, they will continue to buy iPhones.  Citrix shops tend to have the same view... which is both good and bad.  The good is that financially it makes sense, if you've already invested heavily in ICA as a protocol, it makes sense to just continue investing in it.  Its bad, because the protocol is not the end all be all argument to VDI, and I like a company to look at all the angles before choosing one product or the other. 

The other thing I wanted to chat about is MMR.  ICA and PCoIP are as different as they can be.  In the end they do the same thing but how they go about doing it is completely opposite of each other.   

ICA takes the approach that if the client can handle some of the load, let the client do it, this is known as client side rendering.  There are a lot of features to HDX, and the client you choose can make a huge impact on your user's experience.  I like to think of ICA like this:  Say your client knows how to draw a circle, a square, and a octagon.  If Citrix can just send a command that says "draw a circle" then the client will actually draw it.  This saves bandwidth and host side CPU.  The issue is that the client needs to know how to draw those, if the client doesn't know how to draw a circle it has to fall back to the host to be host rendered which burns more bandwidth and looks crappy (mainly because Citrix isn't that good with host rendering).  So Citrix environments end up having to invest in the administration of their clients, something that defeats the purpose of VDI in my opinion.

PCoIP on the other hand does everything host side and the client is completely dumb.  In fact Teradici pushes the use of Zero Clients.  These clients are very different than a typical Thin Client because they have no Operating System, in fact there is no application layer to the device.  The device just decodes PCoIP signal that's it.  These things rock from a security stand point and I push them at every client site I go to because I love their zero management and extremely high performance.  The issue with a Zero Client and host rendering is, now that you've made the client so dumb, it can't help you in any way.

In practice, I've noticed that MMR can make a huge difference in an environment that relies heavily on video.  This tends to give Citrix a bump in the performance gap but at the cost of high client side management.  Also, when videos change formats it can completley change the users perception.  Take the somewhat recent change of YouTube: everything used to be flash based, Citrix did a great job for a long time redirecting Flash content.  Well all of a sudden Flash is no longer being used so every YouTube video starts looking like crap in a Citrix environment because it has to default to host side rendering.  This is until Citrix rewrote the clients to support WebM format.  On the VMware side, sense its all host based, the video looks the same regardless of video format.  However MMR will always use less bandwidth than host side rendering.

If I were Citrix I'd just keep pumping out marketing videos that utilize MMR, becuase it uses less bandwidth and gives a better overall experience than PCoIP.  Yes it comes at a cost of high client management costs, but OPEX on a Thin Client is still lower than a Physical Machine, and I'd rather have a single CAPEX cost on the more expensive Thin Client if it means a reduced OPEX on my WAN connection which tends to be something you can't change regardless.  I'd love it if Citrix flooded the market with these videos because I feel strongly that VMware is really dropping the ball here on MMR.  The fact is MMR used to be a part of the View product line, so MMR works with PCoIP.  For some reason VMware dropped support for MMR with Windows 7 and I think this was a mistake on their part.