Development teams deserve better than VDI
The COVID-19 pandemic resulted in a huge increase in the use of Virtual Desktop Infrastructure (VDI) and its closely related cousin Desktop-as-a-Service (DaaS). A 2020 study predicts a compound annual growth rate of 14.4% for VDI between 2019 and 2027, and Gartner forecasts DaaS usage to grow over 150% between 2020 and 2023.
Organizations turn to VDI for a variety of reasons including:
But for developers, the typical Windows-based VDI is overkill and adds unnecessary overhead.
A dedicated developer workspace platform like Coder meets the needs of the organization that drove its VDI adoption while providing developers with a better experience than VDI. System administrators benefit as well since the lighter-weight developer workspaces in Coder require fewer resources and can be packed more densely on your infrastructure.
Much of the recent growth in the use of VDI results from the sudden shift to remote work as a result of the pandemic, though broader trends are playing a part as well.
Like VDI, with Coder developer workspaces are centralized and run within the organization’s infrastructure. Developers can access their workspaces from wherever they are—their home, a coffee shop, the office—and using any device, even an iPad.
VDI allows IT to maintain a minimal number of master images. Rather than spending time troubleshooting an individual user’s machine, IT staff simply create a new virtual desktop allowing the user to resume work immediately.
With Coder, developer workspaces are created from a centrally managed image repository. Developers can create or rebuild existing workspaces or launch a new one with a click of a button, no need to open a ticket. And unlike most VDI implementations, developers’ customizations to their workspaces persist across rebuilds and automatically load with new workspaces.
VDI is a common solution for organizations that prioritize a high level of security or are in highly regulated industries.
Coder applies the same principles as VDI in this regard: limit access to the organization’s resources and keep valuable information and data off of user endpoints. As a result, Coder is an ideal component for implementing zero-trust security for software development teams. It even fully functions in air-gapped networks.
Organizations that are growing rapidly or that employ large numbers of seasonal workers often use VDI to avoid the bottleneck of acquiring physical devices.
Because Coder is deployed on Kubernetes, it can easily scale out to accommodate more users or scale in when the demand diminishes.
Organizations that utilize large numbers of contractors use VDI to quickly provision and de-provision desktop resources as needed. This allows outside consultants to bring in their own laptops, access centralized desktops, and conduct their jobs, and for IT staff to quickly and efficiently cut off access at the end of the contract.
Again, Coder applies the same principles specifically for developers. By centralizing the management and orchestration of developer workspaces, Coder significantly reduces their onboarding times (whether they are contract or full time). Instead of being given access to a virtual machine and then needing to configure their development environment with all the dependencies required for a project (just as they would with a physical endpoint), developers can immediately begin coding in a preconfigured workspace.
Nearly all of Coder’s customers cite reduced onboarding times as a key factor in deciding to go with Coder.
Coder clearly satisfies the business requirements that often drive the adoption of VDI. But while VDI is a general solution for running any application, Coder is optimized specifically for writing code. As a result, Coder provides a significantly better experience for developers. Unlike VDI where all windows are within a single window, Coder allows developers to move IDEs, terminals, and other windows across all of their monitors.
Coder allows developers to use the power and scale of the cloud to offload the burden of slow builds and tests from their local machine. While this is certainly true as well when moving the developer environment to VDI, Coder offers much more flexibility.
Because Coder enables “self-service” developer workspace creation, a developer could, for instance, increase the CPU and memory in their Coder workspace before beginning an intensive build or test.
Even better, Coder can also be configured to share processor and memory resources between workspaces, allowing workspaces to use idle processor and memory capacity while reducing total resource utilization.
How many hours have been wasted debugging a failed deployment after someone said “but it worked on my machine!”?
By ensuring that all members of the team are working from the same pre-configured image, Coder reduces configuration drift. Moreover, since workspaces run from an immutable container image, updating the application runtime or other dependencies is as simple as rebuilding the workspace, ensuring that the entire team is using a matching development environment. There is also a rich ecosystem of container signing and scanning tools, which ensures that containers are secure and contain up-to-date versions of system libraries and other applications.
While this is certainly also possible with VDI, it would be more difficult. VDI is intended to meet the general computing needs of the organization as a whole. Users sometimes expect full persistence of their environment, which provides a familiar experience but introduces the same challenges as managing end-user devices, particularly around ensuring patching, updates, and resolving software incompatibilities. As a result, developers who are required to use VDI are often provided a virtual desktop and told to configure their own environments on it, which inevitably leads to configuration drift and more “works on my machine” type problems.
If you asked developers who are VDI averse to explain their reluctance, the most common answer would probably be the latency associated with VDI, particularly on slow networks or when experiencing high packet loss.
VDI works by rendering a full virtual desktop environment and sending it to the client. It transmits relatively large packets of data back and forth across the network for each keystroke or movement of the mouse.
While VDI vendors have made significant improvements in optimizing compression of these frames, the requirement for VDI systems to render a full graphical desktop inevitably results in higher load on the server and a perceptibly slower experience for users, particularly those working on a slower connection, such as those in the home. Many office applications, such as reading email, do not have a high degree of interactivity. In these cases, higher round-trip latency does not significantly degrade the user experience, but that’s not true for developer workspaces.
Coder works differently. When using VS Code in the browser, everything you type is rendered locally on your computer, then sent to the server to synchronize, significantly reducing the data packets that must travel back and forth, and thereby significantly reducing latency. Since it is purpose-built for software development, Coder can optimize the experience of writing code, much more intelligently than generic VDI solutions.
Developers can also run many IDEs locally and connect to their remote workspace through SSH, allowing them to take advantage of both the responsiveness of their local environment while offloading compute-intensive tasks like builds and tests to the remote workspace.
The result is a remote workspace that feels local.
|Remote access to workspace||✅||✅|
|Centralized management of workspaces||✅||✅|
|Keeps data off of endpoints||✅||✅|
|Well suited for zero-trust networks||✅||✅|
|Deploy in air-gapped environments||✅||✅|
|Install on your own infrastructure, including on-premises||✅||✅|
|Portability across clouds||✅||Limited, may require nested virtualization|
|Pre-configured development workspaces||✅||Not usually|
|Self-serve workspace creation||✅||Not usually|
|Resource sharing during bursty workloads||✅||Not usually|
|Reduce configuration drift||✅||Not usually|
|Run arbitrary desktop applications||Through VNC||✅|
|Integrate with cloud-native technologies, such as service meshes, advanced observability tools, security tools||✅||Not usually|
|Use container scanning tools to ensure system dependencies are up-to-date||✅||No|
|Use familiar container development tools, such as Docker||✅||✅|
|Licensing model||Per user (seat)||Sometimes per user; often per-host-CPU|
|Windows license required||No, workspaces run on Linux||Yes, as an additional purchase|
To learn more about how Coder can provide a better experience than VDI for your development team, request a demo.