So this question came up a couple of days ago in my inbox, what actually makes customers choose Citrix over plain RDS?
Isn’t RDS good enough in many circumstances? and has Citrix out-played its role in the application/desktop delivery marked? Not likely… So this questions has also appeard in my head many times over the last year, what is an RDS customer missing out on compared to XenDesktop? So therefore I decided to write this blogpost showing the different features which IS not included in RDS and an architectual overview of the different solutions and strenghts to both of them. NOTE: However I’m not interested in discussing the pricing here, I’m a technologist and therefore this is mostly going to be a feature matrix show-off
Microsoft RDS has become alot better over the years, especially with the 2012 release and actually having central management in Server Manager, but alot of the architecture is still the same. Also that we can now have the Connection broker in Active/Active deployment as lon as we have a SQL server (Note: 2016 TP5 now supports Azure Database for that part) External access is being driven by the Remote Desktop Gateway (Which is a web service to forward proxy TCP and UDP traffic to the actual servers / vdi sessions) and we also have the web interface role where users can get applications and desktop and allow them to start remote connection.
But still the remote desktop application which is built-into the operating system still does not have a good integration with a RDS deployment to show “buisness applications” and with Microsoft pushing alot to Azure they should have a better integration there to show buisness applications and web applications from the same kind of portal.
From a management perspective as I mentioned still done using Server Manager (Which is a GUI addon to PowerShell where also alot is done, but server manager is still kinda clunky for larger deployments and also it does not give any good insight in how a session is being handled or such, you would require to have System Center or digg into events logs or third party tools to get more information. But we can now centrally provision the different roles directly from Server Manager and the same with application publishing which makes things alot easier!
Citrix has adopted the FMA architecture from the previous XenDesktop versions, but the architecture might still resemble RDS. NOTE: That the overview is quite simplified but this is because I will dig into the features later in the blog. With Citrix has have more moving parts. Yet a bit simplified. With RDS I would need a load balancer for my Gateways and Web Interface servers. With Citrix in larger deployments you have NetScaler which can serve as an Proxy server and load balance the requires Citrix services as well. Also with Citrix we have a better management solution using Desktop Studio, which also allows for easy integration with other platforms and also simple image management using MCS (Which is another topic as well) plus that we have Director as well which can be used for troubleshooting and monitoring of the Citrix infrastructure as well.
So in most cases, and what I often see as well is HOW GOOD IS THE PROTOCOL? Again and again I’ve seen many people state that RDS is as good as Citrix ICA, but again ill just post this picture and let it state the obvious. You need facts!
Luckily I’ve done my research on this part.
While RDP as mostly a one-trick pony which we can do some adjustments in Group Policy to adjust the bandwidth usage, it is still quite limited to the TCP stack of the Windows NDIS architecture, which is not really adjustable.
(ThinWire vs Framehawk vs RDP) https://msandbu.wordpress.com/2015/11/06/putting-thinwire-and-framehawk-to-the-test/
Now with Citrix we can have different protocols depends on the use-case, for instance me and a good friend of mine, did an Citrix session over a 1800 MS latency connection using ThinWire+ and it worked pretty well, while RDP didn’t work that well, on another hand we tried Framehawk on a 20% packet loss connection where it worked fine and RDP didn’t work at ALL.
But again this shows that we have different protocols that we can use for different use-cases, or different flavours if you will.
Another trick to it is that in most cases, Citrix is deployed behind a NetScaler Gateway, which has loads of options to customize TCP settings at more granular level then we could ever do in Windows without messing in Registry in some cases. So is RDP a good enough protocol for end-users? Sure it is! but remember a couple of things
- Mobile users access using a crappy Hotel Wifi (Latency, packet loss)
- Roaming users on 3G/4G connection (TCP retransmissions, packet loss)
- Users with HIGH requirements in terms of performance (Consuming alot of bandwidth)
- Connections without using UDP (Firewall requirements)
- Multimedia requirements (3D, CAD applications)
With these types of end-users, Citrix has the better options.
Image management is the top crown, being able to easily update images and roll-out the changes when updates are needed in a timely fashion without causing to much downtime / maintance.
With RDS there is no straight forward solution do to image management. Yes RDS has single-image management but this is mainly for VDI setups running on Hyper-V which is now the supported solution for it. But a downside to this is that it requires Hyper-V in order to be able to do this using Server Manager.
Citrix on the other hand has many more options in terms of management OS image management. For instance Citrix has Machine Creation Services which is a Storage way to handle OS provisioning and changes to virtual machines, which I described in my other post on MCS and Shadow Clones ( https://msandbu.wordpress.com/2016/05/13/nutanix-citrix-better-together-with-shadow-clones/ )
Also Citrix has Provisioning Services, which allows Images to be distributed / streamed using the network. So virtual machines and physical machines can be configured with PXE boot and stream and operating system down and store in RAM. Doing updates to the image just requires an reboot.
Another thing to think about here is the hypervisor support, where in most cases PXE supports both physical and virtual. MCS is dependant on doing API calls to the Hypervisor layer, but it already has support for
- Hyper-v w SCVMM
- Amazon EC2
Other features that Citrix has
- RemotePC (This golden gem which allows a physical computer to be accessed remotely using the same Citrix infrastructure) just need to install an VDA agent and publish it and can then be accessed using Citrix Receiver. Even thou if Microsoft has RDP built into each OS there is not central management of it and there is no support to add these to the gateway builtin, each user has to remember the IP and FQDN in case.
- App-V and Configuration Manager integration and management (Citrix actually has App-V management capabilities directly from Studio, they also have an integration pack with Configuration Manager which allows for use of WoL for RemotePC for instance. It can also leverage the Configuration Manager integration do to application distirbution and direct publishing for that leverage Configuration Manager heavily
- Personal vDisk and AppDisks. Note that RDS has something called User Profile disks, but that is a primitive VHDX user profile mapping. Personal vdisk and AppDisks are more layering capabilities which allows us to store Personalization and Applications into their own layer. For instance use of AppDisks makes application distribution easier since all we have to do is attach an layer to the virtual machine (note that appdisks supports XenServer and VMware as of now)
- VM hosted application (allows us to publish applications which for under some scenariones can only be installed on a client computer)
- Linux support (Citrix can also deliver virtual desktops or dedicated virtual desktops from Linux using the same infrastructure)
- Full 3D support (Microsoft still has alot of limitations here using RemoteFX vGPU, but Citrix has multiple solutions for instance to do vGPU from NVidia or do GPU-passtrough directly from XenServer (Note this is also supported on VMware)
- Full VPN and endpoint analysis using NetScaler Gateway (NetScaler Gateway using Smart Access has alot of different options to do endpoint analysis using OPSWAT before clients are allowed access to a Citrix enviroment.
- Skype for Buisness HDX optimization pack (Allows to offload Skype audio and video directly to an endpoint from the servers)
- Universal Print Services (Allows for easier management of print drivers)
- System Center Operations Manager management packs (Part of the Comtrade deal which allows platinum customers to use management packs from ComTrade to get a full overview of the Citrix infrastructure.
- More granluar control using Citrix Policies (Which allows us to define more settings on Flash redirection, Sound quality, bandwidth QoS and much more)
- HTML5 based access (Storefront supports HTML 5 based access, which opens up for Chromebook access, Microsoft is still developing their HTML 5 web front-end)
- Application Compability Analysis (AppDNA)
- Hell of a lot better management and insight using Director!
- Local App Access (Allows us to “present” locally installed applications into a remote session)
- Better Group policy filtering (based upon where resources are connecting from and using Smart Access filters from NetScaler)
- Performance optimization (Using for instance PVS and Write Cache to RAM with Overflow to Disk you don’t have to be restrained to the resources on the backend infrastructure, but allows for a better user experience
- Zone based deployment which allows users to be redirected to their closest datacenter based upon RTT
- Mix of different OS-versions, with Citrix we have an VDA agent that can be used on different OS versions and be managed from the same infrastructure while Microsoft has limited management for each OS version.
NOTE: Did I forget a crucial feature or something in partciular please let me know!
So why choose Citrix over Microsoft RDS? Well to be honest Citrix has a lot of feature which makes it more enterprise friendly.
- Easier management and monitoring capabilities
- Better image-management and broad hypervisor/cloud support + Performance Optimization
- Better protocol which is multi-purpose (ThinWire, Framehawk etc)
- Broader support for other ecosystem (Linux, HTML5 Chromebooks)
- NetScaler (Optimized TCP, Smart Access, Load balancing)
- GPU support for different workloads
- Remote PC support
- Collabaration support with Skype for Buisness
- Zone based deployment
- Layering capabilities (Personlization and Application)
So to sum it up, you can have a Toyota Yaris which can get you from A to B just fine or you can have a garage filled with different cars depending on requirements with bunch of different features which makes the driver experience better, because that is what matters in the end… End-user experience!