Why Developers Should Replace Traditional Workstation with a Cloud Desktop
Here's why cloud desktops may be a better choice for software developers to use as development boxes than developer workstations.
Writing, building, and testing software is hard work — for developers and computers alike. That's why, traditionally, developers have purchased high-end machines to serve as "development boxes" — meaning the PCs or laptops that serve as workstations for software development.
But today, there's an alternative to paying top dollar for a development PC featuring plenty of memory and CPU: cloud desktops. Instead of relying on a physical machine to do development work, programmers can use virtual machines hosted in the cloud.
Here's why developers should consider cloud desktops, and how to decide whether this approach is right for you.
What Is a Cloud Desktop?
A cloud desktop is a virtual desktop computing environment hosted by a cloud-based server and delivered to end users via the internet. With cloud desktops, developers — and anyone else who needs a desktop environment — can connect to a virtual desktop session from anywhere, using any device.
Most cloud desktop offerings are available on a pay-as-you-go basis — meaning there is no major upfront cost to use cloud desktops. Users can also choose from a variety of virtual infrastructure configurations with different amounts of virtual CPU, memory, and storage.
Cloud desktops have been around for years, but pandemic-era remote work made them more popular and led cloud providers to enhance their cloud desktop platforms — such as Amazon WorkSpaces and Azure Virtual Desktop.
Advantages of Cloud Desktops as Development Boxes
For developers who need desktop environments where they can write code, build applications, and test release candidates prior to pushing them into production, cloud desktops offer several key advantages.
Resource scalability
Probably the biggest benefit of cloud desktops for developers is that their resource allocations are easy to scale. You can quickly add or remove virtual memory and CPU from the desktop environment.
That's valuable because most developers don't actually need heft CPU and memory resources all of the time. They only need them for resource-intensive tasks like compiling code.
So, instead of paying thousands of dollars for a high-end PC to serve as a development box when you will only be using all of that PC's resources a fraction of the time, developers can take advantage of cloud desktops to acquire extensive resources when they need them, then scale back (and pay less) when they don't.
Fast deployment to the cloud
Because cloud desktops are hosted in the cloud, moving applications from a cloud desktop environment to a production cloud hosting environment is typically faster and simpler than uploading code from a local developer PC to the cloud.
This means cloud desktops help developers get their applications into production faster, and without having to worry that a slow internet connection will delay their CI/CD pipeline.
Stronger physical security
Since cloud desktops are not physical devices, they're immune to physical security risks. That's an advantage for developers who write sensitive code and worry that the theft or loss of their development laptops could expose that code to malicious parties.
Portability
Traditional development boxes tend either to be PCs, which aren't portable at all, or hefty laptops that are a chore to lug around. As a result, conventional development machines constrain developers' ability to work remotely.
Cloud desktops eliminate this challenge by allowing developers to connect to their development environments from any device and location. Instead of being tied to a travel-unfriendly physical device to work, developers can log in from lightweight devices and code from anywhere.
Challenges of Cloud Desktops for Developers
On balance, it's worth noting that cloud desktops may present some challenges. Two issues that are likely to matter for some developers are:
Limited OS options: If you use cloud desktops to host development environments, you'll have to settle for whichever operating system configurations your cloud desktop vendor supports. Finding a Linux-based cloud desktop might be challenging, for example.
Lack of VM support: Because cloud desktops are themselves virtual machines, running "nested" virtual machines on top of them is technically possible, but it's unlikely to work as well as it would when running VMs directly on bare metal. This could be an issue for developers who need to build or test code on multiple operating systems at once and rely on VMs to do it.
Beyond these, cloud desktops as development boxes are subject to all of the limitations of cloud desktops in general: You need an internet connection to access them, performance may be spotty if your connection is flaky, and you have to entrust your data to a third-party provider.
If these limitations are likely to be major issues for you, you should stick with a traditional development box. And remember that if you take that approach, you could also use a cloud IDE — which gives you a cloud-based programming environment, even if you use a traditional computer to access it — to gain some of the advantages of a cloud-based development environment while retaining full control of your PC infrastructure.
Cloud Desktops as the Future of Development Environments?
For many software developers today, there is no longer a compelling reason to rely on expensive, inconvenient physical PCs or laptops to serve as developer workstations. Unless you require functionality that cloud-based virtual PCs can't deliver — such as the ability to run multiple VMs in your development environment — consider migrating your development machine to the cloud.
Read more about:
Technical ExplainerAbout the Author
You May Also Like