If you've been around the server-based computing industry for any length of time you're no stranger to the Citrix rumor mill. At one time there were stories about Citrix being doomed as a company, acquired by Microsoft, acquired by Oracle and even IBM or Cisco acquiring them. Of course none of these rumors came true, however the Microsoft killing Citrix rumor continues to have the most weight because they are the most likely company that actually could replace the functionality in XenApp into the native RDS functionality.
Citrix's Demise in 1997?
One very interesting rumor (almost a fact) was that of Citrix's demise in 1997. That year was when Citrix's license to the NT 3.51 source code was up and Citrix needed to obtain a license of the NT 4.0 source code or they were sunk as a company. Microsoft was noticing Citrix's rise in profitability and began to wonder if they should take a bigger piece of the pie and not let this company keep reselling a modified Windows product quite successfully. Citrix stock tanked and it certainly looked like they might be doomed. After much negotiations, Microsoft later decided to strike a deal with Citrix. They would pay Citrix $175 million to incorporate Citrix's MultiWin technology into a Microsoft Windows Terminal Server product. Microsoft would supply it's own protocol RDP and Citrix would retain rights to ICA. This was a defining moment in Citrix's future. Had that deal not come along, Citrix would quite possibly not exist today. An interesting bit of trivia on this topic is that there was a person who was critical in the negotiations of this deal at Microsoft. That man, Paul Maritz is now public enemy No. 1 at the helm of VMware. However, if it weren't for him there might not be a Citrix to compete with today. Interesting trivia, but getting off topic.
Microsoft to release "Citrix-killer" in 2003 R2
If you look at the history of RDS and Citrix products, there have been various "Citrix-killer" rumors over the years. None of the rumors were more crushing and realistic than the Project Bear Paw announcements in 2003. Microsoft had already successfully launched Server 2003 and were in the planning / execution phases for 2003 R2 and they made it known that they were planning on making some substantial improvements in Terminal Services. Back in the Server 2003 timeframe there was very little that could be done with native Terminal Services as it lacked application publishing, seamless windows, good web interface, load balancing, enterprise management, etc. In June of 2003 a Program Manager for Terminal Services named Adam Henderson presented a deck at TechEd called "Terminal Services in Windows Server 2003 Technical Overview". The presentation was largely a rehash of existing known info, but it did contain a roadmap slide indicating what Microsoft was planning to do with Terminal Services. The short list of items includes:
- Application Publishing
- Remote Apps Integrated Locally (RAIL) - Basically start menu integration
- Single sign-on
- Multimedia redirection
Brian has blogged about the announcements related to Bear Paw and further analysis of what it means to Citrix. There is also a document containing info from a Citrix FAQ regarding their responses to the Bear Paw announcement.
Bear Paw never happened. So what's your point?
Bear Paw never was released, though Microsoft did incrementally improve TS/RDS over the years. Let's look at Server OS releases since then and talk through their major enhancements:
Server 2003 R2
This server OS release focused on core infrastructure improvements to AD, branch office server deployment, etc. Unfortunately, nothing really improved in 2003 R2 related to Terminal Services which is why I advised many customers to just keep deploying Server 2003 unless your organization standardized on 2003 R2 Server images. Pure RDS/TS folks were just able to skip this release.
This was a big release for Microsoft. There were lots of core OS changes that ultimately improved the situation for RDS like:
- Hard resource quotas for shared critical resources - To protect things like paged pool memory allocations
- Page file optimizations - Reading and writing the page file in larger blocks of memory
- Low priority I/O - Allows for things like disk defragmentation and anti-virus scans to run only when low disk I/Os are occuring
- SMB 2.0 - Can improve read/write speeds to file servers where user documents and profile data are stored
- Kernel Transaction Manager - Provides better reliability of application of server hot fixes, etc.
- Windows System Resource Manager - Provides mechanism to control resource consumption of user processes (works with RDS sessions)
- Group Policy Preferences - Removes the need for most logon scripts.
Specifically for Terminal Server functionality, the following features were added:
- TS Remote App - Seamless windows and locally integrated apps in the start menu.
- TS Web Access - Web user interface to TS Remote App Published applications.
- TS Session Broker - Limited, but functional brokering of user sessions.
- TS Gateway - RDP over SSL tunneling/proxying of RDP sessions. Single point of access through public firewall.
- TS Easy Print - A least common denominator fall back software printer similar to Citrix's Universal Print Driver v1 / v2
- Higher screen resolution - Up to 4096x2048.
- Parallel session creation - Prior to Server 2008, only a single TS session could be logged on simultaneously. Session Manager improvements now brings a minimum of 4 simultaneous sessions.
- Dynamic System Address Space - Dynamic balancing between Paged Pool, Nonpaged Pool and System PTEs. In 2003 these boundaries were determined at boot time and were static.
- Built-in User Profile Hive Cleanup Services - No more need for UPHClean (at least for stuck registry handles)
While these are some great features for Server 2008 Terminal Services, the reality is that they were quite limited. Limited enough to prevent most people from deploying this without Citrix as some add-on middleware. Brian blogged about this release and his assessment was "Citrix has nothing to worry about" and it was largely true. However, this release pretty much adds the rumored features of Bear Paw. There were plenty of companies wondering if this release had just enough that would allow them to shake the extra Citrix licensing. In most cases, it didn't deliver enough.
Server 2008 R2
Yet another huge release for Microsoft and lots of changes for TS (now called Remote Desktop Services). Let's look at some core additions:
- Hyper-V 2.0 aka R2 baked in - Hyper-V 1.0 was much too poor performing for most to consider it. Hyper-V R2 is right up there with vSphere and XenServer
- Direct Access / Branch Cache - Great new technologies for enabling branch office users and mobile laptop users to provide access to files, etc in an WAN friendly way.
- IIS 7.0 - Yet a more secure IIS web server version
Specifically for TS/RDS, the following features were added:
- Broker now integrates VDI (RDVH - Remote Desktop Virtualization Host) and TS (RDSH - Remote Desktop Services Session Host)
- Improvements to RDS Web Access and RD Gateway
- True Multi-monitor support (prior to this Microsoft only supported spanning - now you can have up to 16 independent monitors in any shape and resolution)
- Improved multimedia support and bidirectional audio support (for VoIP applications)
- Aero Glass supported over RDS
- Windows Installer Engine properly supports multiple simultaneous logons and processing of self healing by queuing actions (this use to fail completely)
- RDS Powershell Provider - For automating RDS via PowerShell
Server 2008 R2 with SP1
Server 2008 R2 Service Pack 1 added two primary features:
- Dynamic Memory - A method of dynamically allocating memory to VMs to provide higher density while allowing good performance.
- RemoteFX - New method of providing virtual GPU access to VMs on Hyper-V. Provides a content agnostic host-side rendered RDS model. RemoteFX is the future direction for RDS, however it's currently a LAN-only technology.
In looking at all of these incremental improvements to RDS, it's clear that Microsoft continues to improve the platform. So what is it about Citrix XenApp that continues to lead the pack against Microsoft and RDS?
Star Wars aka "Where Microsoft Loses"
Brian blogged back in 2005 an article named "Do you need Citrix or is Terminal Server enough?" It's a good read and I suggest you take some time looking it over. What's interesting is that Brian highlights two misconceptions in the beginning of the article. In summary, they are:
Misconception #1: ICA is better than RDP.
Brian states that this is false and that RDP has made significant strides with the protocol, etc. While I would agree with Brian that RDP has come along way, it's all about the WAN man! The WAN is one area where Microsoft loses big time and anyone who's run RDP over 200+ ms will tell you that. The blocky tiles painting one by one will only reach about 15 tiles before you're ready to murder someone. Working on a RDS session like this for any length of time is not likely to be well received as a practical solution. So I'll disagree with Brian here and say that ICA is king on the WAN. If Microsoft wanted to pose a serious threat to Citrix, they'd have to make RDP almost as good if not as good as ICA to compete here.
Misconception #2: f you have 50 (or 75, or 100, or whatever) number of users or less, you can use pure Terminal Server. With more users you need Citrix.
Brian states that this is false and that the number of users you have or the number of RDS servers has nothing to do with whether you use RDS or Citrix. This too is an area where I'll disagree with Brian. RDS has RemoteApp and it does work. Try maintaining that at scale with hundreds of published resources across many silos of servers and unless you develop some of your own tooling, it's painful.
In my years of consulting I'm often asked "Can we get rid of our Citrix licensing yet and just use pure Microsoft?" After I go through the many different aspects of what Citrix does for the customer it ultimately comes back to these two items for most people. Sure Citrix has smooth roaming, workspace control, smart access, etc. But to be honest, what brings most customers back to Citrix every time is the above two items. These are the lynchpins of Citrix being entrenched into customers.
The Empire Strikes Back
At Microsoft's BUILD conference a few weeks ago, Microsoft provided a sneak peek at what might be coming in the next release of Windows for the desktop systems as well as Server OS release. Currently known only as Windows 8, Microsoft seeded developer builds for the desktop OS and Server OS. While there were some interesting things disclosed about Windows 8 Desktop OS, it's all largely a "Meh!" to me as it seems to be little different than Windows 7 for the Corporate user. I do think that Windows 8 will have a big impact on the tablet market with it's Metro user interface. However, that's largely off topic so I want to focus on the Server OS preview and talk specifically about what it means for RDS.
Microsoft shared a video of a presentation at BUILD regarding RDS enhancements in Windows Server 8. In this presentation Nadim Abdo and Gaurav Daga lead an hour long presentation that provided some details about what Microsoft is doing with RDS in Server 8. And for me, this is the Bear Paw Citrix should be worried about. I highly recommend you watch the entire presentation as there is some good visuals that you'll want to see rather than just reading about. If you're short on time, here is a quick breakdown of the items that are covered and my thoughts on them:
- New Metro Style RemoteFX Client - Of course this has to exist. Microsoft is investing heavily into the Metro UI in Windows 8, so they are introducing a Metro-style RDS client. This will likely only apply to Windows 8 clients, but it does look pretty cool. Aside from that, it's Meh! One nice feature of the Metro style client is snapshot previews of your existing RDS sessions. That's a pretty cool feature.
- RemoteFX for WAN - RemoteFX is quite impressive on the LAN, but up until now was limited to that scenario. Microsoft is making improvements to RemoteFX that will allow it to function well on WAN networks. Recall from the previous section that this is one of the key reasons why Microsoft loses today. RDP and any other TCP-based protocol tends to have problems when you run those protocols over a network that has packet loss or high latency. The issue is due to the fact that TCP is a connection oriented protocol and as such attempts to maintain packet order and retransmits lost packets. UDP does not have this problem as it's a connection-less protocol that effectively broadcasts content. Microsoft is adding UDP transport support to RemoteFX to accommodate better performance for RDP over wide area networks. They are still providing intelligent fallback to TCP capability in the event the host/client can't establish UDP communication (think firewalls!). In addition to the transport changes, Microsoft is introducing something called Adaptive Graphics that will help reduce required bandwidth for rich content over WAN networks. Microsoft has improved RD Gateway to add support for RDP, so connections via UDP-base RDP are secured through RD Gateway just as they are with TCP-based RDP.
- RemoteFX Adaptive Graphics - Microsoft is breaking up content into different types and rendering them differently. This was always the case with traditional RDP whereby some content could be GDI primitive remoted while others were bitmap remoted and audio/video content was redirected. Historically under RemoteFX you only had host side rendering for all content with just audio/video content being redirected. It appears Microsoft is improving this so different types of content are rendered differently. For example, text might be rendered with one codec and delivered quickly with extremely low bandwidth. Meanwhile, image content is delivered using a progressive rendering technique that I'll assume is quite similar to that of Citrix's Progressive Display. Lastly any animated content or fast moving images will be rendered using a video codec (I believe Microsoft said H.264) and sent that way. Between the RemoteFX for the WAN and this Adaptive Graphics, these two features sound like they will finally level the playing field in the RDS/RemoteFX vs HDX game.
- RemoteFX Media Remoting - Microsoft has developed some new H.264 codecs that they are using to process video and compress it about 10:1 vs what was possible on 2008 R2 / Windows 7 via RemoteFX. Really excited to get a chance to place these new video codecs in the multimedia tests that Benny Tritsch and myself perform. As far as I know these video codecs are not specifically limited to Windows Media types as it was demonstrated using Flash. Can't wait to dig into this more.
- RemoteFX Multi Touch - Microsoft will offer 10-finger multitouch remoting for applications running over RDS. While this is quite limited today, it's clear that much of the PC/device industry is moving towards touch. I was quite impressed to find that Microsoft is supporting full multi-touch and not a limited one or two finger touch solution. It remains to be seen if this technology will work well over the WAN, but it is quite impressive. It's also important to note that this technology will not be limited to the Metro-style RemoteFX client, but will be available in the regular client as well.
- RemoteFX USB Redirection - While Citrix and others have long supported USB device redirection in their VDI solutions. USB device redirection and isolation was always something that has plagued multi-user Terminal Server or RDSH systems. Due to the inability to redirection and isolate USB devices, some applications have needed to go the route of VDI because there was no way to redirect the device within Terminal Services. Now before anyone says "We've been redirecting USB Printers, Thumbdrives and Scanners for years", that's absolutely true but those devices were not being redirected at the USB Bus level, they were redirected via device dependent redirection virtual channels for printing, drive mapping and TWAIN. What Microsoft has done with Windows 8 is not only provide redirected, isolated USB device support within their VDI product RDVH, but also within RDSH (Traditional Terminal Server). This is incredible news and as far as I'm concerned opens up so many more applications that are now possible in Terminal Services. Being that this is a platform play, it will of course be beneficial for Microsoft ISVs such as Citrix and Quest, etc. Very exciting news.
- Software or Physical GPU - One of the biggest limitations with Windows 7 SP1 + Hyper-V is that is required a physical GPU in the server to support any 3D graphics (unless you were planning on using 2008 R2 RDSH which didn't use a physical GPU). Microsoft has added some capabilities to Windows 8 Server for VDI scenarios to now support RemoteFX capabilities either with or without a physical GPU. If the physical GPU is available, RemoteFX can use it. If you don't have a physical GPU, there will be a soft GPU where the GPU instructions are emulated in CPU. So now RemoteFX will be support in VDI scenarios without or without a GPU and on physical machines. One has to wonder if this was always in the plans or if this is something Microsoft did in reaction to VMware shipping soft GPU support in View 5. All I know is things are getting very exciting between VMware and Microsoft having soft GPU support, Citrix having DX primitive remoting for Aero as well as GPU-based HDX3DPro (including GPU passthrough) for high end graphics. Very exciting times for rich graphics in remoting scenarios.
- Published apps and desktops via email - Microsoft seems to have improved the RemoteApps publishing and Web Access scenario by making it more like the Outlook Anywhere / Exchange Autodiscover process. When you setup a modern Outlook client for corporate use all you need to do is specify your Corporate email ID and password and Outlook will behind the scenes query autodiscover.domain.com and if Autodiscover is setup, Outlook can configure itself for RPC over HTTPS and connect you to your mailbox. It seems that the Metro-style RDS client and Server 8 is supporting similar functionality where a user can just enter their email address and password and automatically get a list of the published apps and desktops that are assigned to them. This is true even with a non-corporate asset. I really want to dig into this feature more and figure out how it's working. I'll plan on putting up an article on that later.
- Bandwidth and Round Trip Latency Info - Microsoft has demo'd the Metro Style RDS client having a Connection Info window where the end user can see their estimated network bandwidth and round trip latency. I'm hoping Microsoft provides this via server side PerfMon counters since latency was never something that one could easily record for performance metrics and such. Citrix had this for years now.
I'm hoping to get more time to work with Server 8 / Windows 8 hands on so I can provide further details on the specifics of the above items.
Will there be a Return of the Jedi?
What will Citrix do in response to these improvements? Well, first of all we should assume they already know about these enhancements as they work very closely with Microsoft. My general gut feeling is that Microsoft will continue to improve RemoteFX, but there will still be use cases where HDX outperforms it in certain WAN conditions, etc. Also, Microsoft is very focused on the latest greatest client side OS (because that's how they earn revenue). So there's a huge opportunity there for Citrix to provide a Windows 8 experience on down level operating systems and alternative operating systems. How well this will work or not depends largely on how good Microsoft's RemoteFX thin clients are. If they are good enough, no one in their right mind is going to consider repurposing a PC or buying new thin clients that are non-RemoteFX if they can acquire a bad ass RemoteFX thin client for $100. Given that we make the assumption that Citrix will find ways to stay ahead in the protocol space, but we assume that Microsoft will continually play catch up, there's only one area that I discussed where Citrix maintains the lead and that is in enterprise management. Citrix does a much better job of this right now than Microsoft does. I'm pretty confident at this time that Microsoft won't nail this as Citrix has largely because Microsoft has a tendency to try and glue everything to SCCM and SCVMM. If they do that, they'll fail miserably. If they find someway to improve management of large environments and it's inbox, then lookout Citrix.