DEV Community

Isaac Lyman
Isaac Lyman

Posted on • Originally published at isaaclyman.com

Cloud workstations: the future of remote work

Application streaming is one of the emerging technologies I'm most bullish on. So far its full potential has flown under the radar, but there are companies doing impressive things with it:

  • Xbox Cloud Gaming, currently in beta, streams Xbox games from cloud servers with low latency even on an LTE connection. It's powered by Rainway, whose streaming offering has pivoted from video games to fully-interactive streamed apps of every kind.
  • Google Stadia is a similar service with a library of games you can buy and then play exclusively through the cloud.
  • Amazon AppStream offers non-persistent desktops and apps in the cloud. It interfaces with identity and storage solutions to provide secure work environments for enterprise customers.
  • Workspot was the first cloud workstation company. They began offering cloud Linux desktops in 1999, but shut down in the aftermath of the dotcom crash. Their domain and name were purchased by a company that now offers cloud Windows desktops, including high-end GPU solutions for graphics-intensive work.
  • Shadow PC is a B2C offering of persistent high-end cloud PCs originally marketed to gamers. At $30 per user per month, it also has compelling potential for enterprise customers.
  • Remote Desktop tools, while clearly behind the forefront of technology, have long been popular for work that must occur in a particular location or on a particular operating system.

Amazon AppStream, Workspot, and Shadow PC fall under the umbrella of Desktop-as-a-Service or DaaS. DaaS allows powerful workstations to be provisioned in the cloud and used for professional, performance-sensitive work via an endpoint---that is, any device with a screen. The advantages to using a cloud workstation instead of traditional hardware are strong enough that I predict it will eventually become a major player in enterprise work.

There are some barriers to be crossed, though. Most people would probably say they prefer to have their computing power inside their computer rather than connecting to a remote workstation every time they need to do something more demanding than sending an email. It's true that there are several potential downsides to remote computing as a way of life:

  • Performance: Most people's experience with remote computing is limited to Remote Desktop on Windows. Remote Desktop is an awful experience, characterized by an ultralow frame rate and 100ms or more of latency as a baseline. When running a CPU-heavy process it quickly becomes unusable. If this is your only point of reference, a knee-jerk reaction against the category is completely understandable.
  • Internet dependence: If your ISP isn't dependable, any blip in your connection could mean temporarily losing the ability to work. Internet dependence also makes travel more difficult. A connection that dips in and out every few minutes (e.g. on an airplane) is enough to drive anyone up the wall, so the idea of losing access to your entire computer when that happens is especially unpleasant.
  • Versatility: As inadvisable as it may be, many people use their work computer for non-work activities like contracting on the side or playing video games. A workstation intended for remote computing would mean diminished capacity on one's physical endpoint for other things.
  • Ownership: Some employers would abuse their access to remote workstations to install spyware on their employees' computers or delete files without permission. Beyond that, there's also a sense of pride involved in owning a high-performance computer (even if it's technically property of the company). Some employees may measure their value to the company by the class of computer allotted to them.
  • Distance and complexity: If a physical computer breaks down there are things you can do to try to rescue it, like booting in Safe Mode or removing the battery. A remote workstation doesn't offer these possibilities. The physical distance between you and your primary computing environment can be a factor in how difficult it is to troubleshoot problems.
  • Incentives: Dell, Apple, et. al. are incentivized to build the fastest computers possible. The first thing a power user (read: big spender) does when comparison shopping is look at the performance specs of each device. A cloud computing vendor's target market would be enterprise companies, not end users, so they may be incentivized to sacrifice performance for a variety of reasons. When many decision-makers are involved, performance almost always goes by the wayside.

So pushback from employees should be expected. Much of it is justified. Having a high-performance computer issued by your employer is a good experience most of the time, and Remote Desktop is a bad experience most of the time. However, Remote Desktop is not representative of the sector. With the right technology, there are considerable potential advantages to working in a cloud desktop environment:

  • Performance: Processing power can be offered more cheaply and efficiently in the cloud. A cloud environment also has the ability to offer automatic scaling for CPU, GPU, RAM, and hard drive space. No employee uses all of their computer's resouces 24 hours a day---but many hit 100% now and then, suffering reduced productivity on power-intensive tasks. The ability to hot-swap cores and capacity between environments, making efficient use of hardware and employee time, is possible if they all exist in the same cloud.
  • Theft mitigation: Stolen computers are estimated to cost the corporate world 2.1 billion dollars per year. The actual computer hardware is only a fraction of the total cost per incident. It can take a week or longer to procure and ship a replacement computer and then for the employee to install the applications they need and restore their files and settings. There’s also a significant security cost for an IT team to investigate the incident, roll over compromised tokens and passwords, and mitigate any associated data loss and regulatory risks. On the other hand, if the employee’s computer is a cheap and naive portal to a cloud system, it can be replaced without incurring setup time and few if any files will have been compromised. Under ideal circumstances mitigation would consist of resetting the employee’s cloud password and ending any active sessions. As long as employees practice good internet hygiene, many of the security risks of laptop theft can be avoided entirely.
  • Emergency access: In the event of a breach or zero-day a company would have the means to audit, patch or update every employee’s workstation overnight without waiting for them to respond to a notification or even turn on their computer. Of course any back door into cloud workstations would be a major part of the company’s risk profile, and many would prefer not to do this, but for less privileged systems there are security-conscious ways to allow limited access for urgent concerns.
  • Easy upgrades and repairs: Upgrading an employee’s workstation involves several of the same costs and delays as replacing a stolen machine. If their primary work environment is in the cloud, however, all the hardware components they rely on can be upgraded without their direct involvement. No productive time needs to be lost. Their disk can even be imaged and moved to a new configuration or a whole new cloud with minimal disruption. And if there’s a problem with their cloud workstation, there’s no need for them to ship it to the company’s IT department and wait for it to be returned. Their physical endpoint may still break down, but since one endpoint is as good as another, the cost of replacement is marginal.
  • Form factor: Cloud desktops offer everyone the ability to use the endpoint that best meets their needs regardless of the amount of computing power they require, whether that’s an iPad with a keyboard cover for frequent flyers or a dual-monitor station with a mechanical keyboard for those who work from a home office. In a pinch you can even stream your workstation to a smartphone or smart TV.

As a software engineer that works in technology throughout the stack---data visualization, compiled code, ETL processes, performance-sensitive queries and so on---my response to a Desktop-as-a-Service offering at work would depend heavily on the technology powering it. The advantages are clear: the power and freedom to work without disruptions and never have to think about my hardware. But the potential downsides do give me pause. To get buy-in, I think most employees would need some assurances:

  • Performance: Beyond a simple uptime SLA, streaming performance should be part of the contract so that incentives are aligned. Any network latency or framerate reduction that can be detected by a human is too much. A cloud workstation has to replicate the responsiveness and smoothness of a native workstation to be a suitable replacement. There's ample evidence that video games, the most latency-sensitive applications there are, can perform admirably over streaming---even on Stadia, a service criticized on release for its latency issues, I found Destiny 2 to be perfectly playable. Better technology and closer data centers should keep latency in the single-digit millisecond range or close to it, but if poor corporate decision-making and technical bloat lead to slowdowns, clients should have contractual recourse.
  • Choice: Employees should know that DaaS is being offered for their convenience and productivity, not as a cost-cutting measure. Most companies understand that giving up even one percent of their workforce's productivity to save a few bucks on workstations would be shooting themselves in the foot. But to avoid any misunderstanding, DaaS should be opt-in with the ability to opt out at any time and trade in one's cloud workstation for traditional hardware.
  • Privacy: The exact circumstances and conditions of corporate access to an employee's cloud workstation should be specified in clear and simple terms. For example, if an employee uses a picture of their family as a desktop background, they should know that the picture is their own private file and won't ever be accessed, copied, or used by anyone else. If their workstation ever has to be accessed without their advance permission they should be notified immediately.
  • Backups: Every employee's cloud storage should be backed up at least daily. An incident at the data center should never result in loss of work.
  • Scalability: Since CPU cores and memory can be offered more cheaply in a data center than in individual hardware endpoints, employees should be aware that they'll have access to more computing power via DaaS than they could reasonably have in a traditional workstation. Where possible, automatic server scaling should also be offered. The prospect of being able to scale up to supercomputer levels of processing power will be very appealing to data engineers, video and audio producers, and other power users. But this has to come with a guaranteed minimum (never less than x CPU cores, y GHz of processing power, and z GBs of RAM per workstation) so there's no concern of bottlenecking during peak hours.
  • Ease of access: Although it's reasonable to ask employees to be protective of their cloud password and use multi-factor authentication, accessing their cloud workstation shouldn't be a hassle. To use a device via Remote Desktop it's sometimes necessary to pass two or three login screens as well as open an Authenticator app to get a generated token or wait for a one-time code via text message. Logging into a cloud workstation should involve a single login screen: username, password, 2FA code.

These caveats granted, I would jump at the chance to use a cloud workstation versus my current work computer. No more week-long setup process when I upgrade my hardware, no more carrying around a heavy and costly work laptop when I go on vacation, no more trying to explain complicated fixes over the phone if something breaks while I'm away from my computer. If you tack on the benefits of increased processing power for intensive queries and tasks, the decision is easy.

I don't expect everyone to agree with me. Travelers, people who don't have access to reliable internet, and hardware enthusiasts will always prefer to keep their processing power on their desk. But all in all I think it's inevitable that cloud workstations will play a bigger and bigger role in our work lives.

Discussion (13)

Collapse
natescode profile image
Nate

I wish it were common. I've been waiting 4 weeks to have IT install Visual Studio because my client laptop is so locked down, I can't install anything. Of course IT was lazy and didn't install it BEFORE shipping it to me.

Collapse
codewander profile image
codewander

I have been approximating this for a while, usually using ssh. I like something like gitpod with in browser vscode over full workstation.

Collapse
isaacdlyman profile image
Isaac Lyman Author

I think I heard of gitpod a few years ago and never checked it out. Thanks for the reminder, I’ll have to give it a try.

Collapse
liviufromendtest profile image
Liviu Lupei

Nice article!

But most of the services that you listed are struggling and aren't very successful.
I don't know exactly why, but maybe because of:

  1. Higher costs.
    Your company would have to pay for both your laptop and a cloud machine.
    You'd still need an expensive laptop, even if the workload happens in the cloud.

  2. Vendor lock-in, availability and price increases.
    The vendor might randomly increase the prices as they please, because they know migrating would be more expensive.
    And maybe when you need it the most, you'll see a "Under maintenance" message.

  3. Frustrating experience. I did connect to various workspaces on different cloud providers (including AWS), and even with my fast internet, it's not the best experience.

I would definitely use such a service in the future, when those downsides will be less painful.

Collapse
isaacdlyman profile image
Isaac Lyman Author

most of the services that you listed are struggling and aren't very successful

That’s really interesting, how do you know that?

Collapse
liviufromendtest profile image
Liviu Lupei

I think you can tell that just by following TechCrunch and by following startups from that area.

Collapse
larsonnn profile image
Lars Feldeisen

It's not the future its already common in the industry. I guess this is your personal experience.

But check VMware or other big names in the industry. And technologies like KVM/ESXi etc.
nothing new here. Even sharing the GPU among virtual machines is old. The only one which is new the infrastructure for gaming. But the technology behind it its not special at all. Maybe some stuff.

Collapse
isaacdlyman profile image
Isaac Lyman Author • Edited on

The technology is available but not widely adopted. I’ve never interviewed for a job where cloud workstations were offered, never even heard of a company doing so.

Collapse
t0nyba11 profile image
Tony B

For 95% of the remote workforce, we have already arrived without most of this complexity, as all our tools run out of the browser anyway. Remote work simply means a secure network connection, either to a cloud service, or to a private VPN. We don't really need anything like remote desktop or workstations at all for most purposes.

Collapse
isaacdlyman profile image
Isaac Lyman Author • Edited on

That may be true for many workers but 95% seems high. Most people don’t code, run database queries, use Excel, produce videos, store work files, or run any of hundreds of other desktop apps in the browser.

EDIT: it’s also worth pointing out that many web applications are very client-heavy. Having a computer that can access the internet and having a computer that can do a given job on the internet are very different things.

Collapse
t0nyba11 profile image
Tony B

If you're still developing code on legacy architectures, then yes you still need remote desktop to be remote. But most modern cloud-based development doesn't need anything more than a browser. Likewise for most people's office 365 use. There are always edge cases, but those are getting smaller everyday.

Collapse
marcuzy profile image
Oleg Krasavin

It tends to centralization, and I don't think it's a good tendency. We should get some compromise between the two sides.

Collapse
rwxrob profile image
Rob Muhlestein

No, just no. Let me say it again, no. Anyone with any amount of significant experience as a developer or systems operations professional will tell you that having not only a powerful desktop that can run multiple VMs simultaneously is not just nice, but mandatory, but also that having a home lab is absolutely essential. The percentage of technologists who require such things is far higher than the few who can get away with depending on the Internet for development. Consider all the professionals who actually travel in airplanes, and on subways, and who are definitely not "digital nomads" they just want to be fully productive when disconnected. The very premise of git itself (the reason it won over every other source management solution) is based on the hard requirement to be productive anywhere --- without the Internet. Peer review and pair programming are valuable, occasional things. They are not the norm and never will be.