The top 5 reasons not to move your desktop apps to Citrix
by John Browne, on Apr 1, 2020 5:00:00 AM
Citrix was recently in the news for both good reasons and bad ones. Their stock price is soaring as people suddenly have to work from home to avoid spreading the coronavirus. And a United States Senator is coming under scrutiny for buying a lot of Citrix right after a committee briefing on the pandemic.
Citrix started back in 1989 as a way to access servers running OS/2. Their core technology is basically remote terminal services, where you allow a remote device to see and manipulate the screen of a remote PC. If you've ever used any remote desktop software you've probably used Citrix. LogMeIn and GoToMyPC are both products that Citrix acquired.
Over the ensuing 31 years Citrix waxed and waned and acquired a number of other companies to snap up different kinds of technologies. Today you can find a dizzying array of products on the Citrix website with names like XenApp and XenDesktop (recently changed to Virtual Apps and Desktops).
The rush to public cloud like AWS and Azure gave Citrix a boost as IT departments moved desktop apps to Citrix in order to retire on-prem hardware. Putting a desktop app onto a remote terminal server allowed IT to put all their on-prem datacenter hardware on Craigslist, but it really didn't do much for the C-suite's goals to "get into the cloud" or, more precisely, effect digital transformation.
If you've ever used any screen sharing app, whether Microsoft Remote Desktop, TeamViewer, LogMeIn, or whatever, you know how clunky they can be. You move the mouse on your laptop, that can be translated via the software into an event, which is sent over the network to the guest computer, which gets translated by the software into an event to drive the OS and move the mouse. The resulting UX change is then sent back to you as a refreshed view, which gets rendered on your host computer.
Can you say "latency" boys and girls?
Now imagine 3 or 4 or how about 20 or 50 people all doing that at once. which requires a separate instance of the app, the OS, and the remote desktop software for each concurrent user. That's the Citrix solution, such as it is.
The current unpleasantness and remote access
As I write this (from home) I'm joined by literally millions of other people who have only very recently discovered that they need to stay home. Work from home. Be productive working from home. Other than the crappy Keurig coffee at the office there is nothing I can't do at home that I could do there. Of course, I miss the face-to-face stuff with my colleagues, but for a variety of reasons Mobilize.Net is a lot more prepared and familiar with working remotely than many organizations.
When the "lock down" and "shelter in place" orders came down (my company and my home are right down the road from where this outbreak first surfaced in the US), a lot of people suddenly found themselves struggling to do their jobs remotely. IT answered the call for all those old legacy desktop apps by pushing them quickly up to Citrix on Azure or AWS or even on-prem datacenters. As I said earlier, Citrix stock price has responded nicely and no doubt their quarterly earnings will show how much of a windfall this is for them.
I guess every dark cloud has a silver lining, or some such rot.
This isn't going to be over any time soon, and it's fair to suppose that even when it is there will be a new normal, some of which will involve a lot more remote work. Citrix's gain is probably commercial real estate's loss.
Why Citrix is a bad idea for legacy desktop applications
Ok, having set the stage, let's consider what pushing all those desktop apps up to Citrix might entail, and why it's not such a good idea for everything.
1. It's really expensive.
Citrix is like your cellphone bill: it never goes away, and it certainly doesn't get smaller. It's a forever expense. Think of all the things you need to run Citrix: bandwidth, hosting hardware, software licenses, security, administration, configuration management, and so on. Sure you can host it yourself, but then you have to buy, support, and replace all those physical servers somewhere. Azure or AWS will let you do it with their hardware, but then you have to pay them instead. Responsiveness is a factor of load and server capacity, so managing that to prevent both performance issues under high demand, or costly unused capacity in slack times needs attention and skill. Citrix will be happy to sell you all the bits and pieces you need (again, kind of like your mobile phone carrier) but it all adds up. And it never goes away.
2. It's really complicated.
I know this because I literally asked the Citrix sales people how much it cost to host an application and they couldn't tell me. There were too many factors: hosting, configuration, bandwidth, storage, load, number of concurrent users, CALs, number of apps, and on and on and on. Finally I thanked them, swiped some candy from their tradeshow booth, and went to the nearest bar. I'm not going to imply that they make it complicated to price out on purpose, but it can certainly feel that way.
3. It solves nothing. Well, almost nothing.
The situation is clear: you've got a desktop app and now you need to access it remotely for a group of users. Citrix solves that the way a mule and plow solve the need to plant 1000 acres of soybeans. Legacy apps written in VB6, PowerBuilder, and Delphi are not going to be any easier to update just because they are hosted on a Citrix VM. You'll still have to find developers who are able and willing to work in those old platforms. That desktop app--running on Citrix--isn't any closer to API exposure, or using CI/CD, or real-time app monitoring. You've just taken a kludge and and wrapped it in a different kludge.
4. It's slow.
I'm told Citrix isn't inherently slow, but if you search for "Slow Citrix" on the internet over 1M hits come up so draw your own conclusions. It seems a common explanation for slow Citrix performance is #2 on our hit parade: complicated configuration.
5. It creates a false sense of accomplishment.
We see this all the time. The C-suite tells IT "move everything to the cloud" and IT knows that modernizing legacy apps isn't something you can do overnight so they lift and shift instead, running those legacy desktop apps in Citrix on Azure. As #3 on our hit parade shows, this actually solves nothing (ok, replace some on-prem hardware with someone else's). But now at the next board of directors meeting the CEO can tell the board "yes, we've fully embraced cloud computing" without having a clue what he's talking about. Because IT said it was so.
Citrix will work for a while. Migration will work forever.
As I write this on March 26, 2020, it seems hard to believe that just a few weeks ago everything seemed fine. Overnight it's as though we're living in a parallel universe, where nothing seems fine. And so to quickly isolate people to avoid either catching or spreading this disease, working from home suddenly became very very important, with its own set of casualties.
This is a marathon, not a 100-meter sprint. It's time (finally) to look at those legacy applications and move the critical ones to cloud native architectures. Start taking advantage of 21st century software languages, engineering practices, and real cloud native capabilities. And given how scrappy every organization needs to be in such a roller-coaster economy, automated migration with WebMAP looks better and better every day.