Microsoft has revealed a new feature for remote development, currently in private preview, called Dev Boxes.
A Dev Box is a personal developer workstation hosted as a virtual machine on Azure. It plays to the idea that setting up developers with PCs that have all the tools and capabilities they need can be challenging, particularly considering the importance of specific versions of compilers and runtimes, and that preconfiguring these can save time and energy.
A VM-based approach also has advantages in compliance and security, since it is unlikely to be physically compromised, and can easily be replaced if it becomes corrupt or broken.
Security is critical for development PCs because they may contain secret credentials as well as confidential source code. Another issue is that using the same machine for multiple projects, each with different requirements and dependencies, can be complex to manage.
The new feature, revealed today at Microsoft’s annual developer conference, enables teams to configure and maintain Dev Box images and offer them to team members via a new developer portal.
“Developers can create Dev Boxes to experiment on a proof-of-concept, keep their projects separate, or even parallelize tasks across multiple Dev Boxes to avoid bogging down their primary environment. For devs working on legacy apps, they can maintain Dev Boxes for older versions of an application to quickly create an environment that can reproduce and diagnose critical customer issues as they emerge,” Microsoft said.
Dev Boxes are Windows VMs but can support Windows Subsystem for Linux, for applications such as web applications that will be deployed to Linux, and Windows Subsystem for Android for mobile development. The remote desktop client runs on Windows, Mac, Android, iOS, or in a web browser.
The new service is based on existing technology, Azure Virtual Desktop, on which Windows 365, Microsoft’s cloud PC service, is also built. Dev Boxes can be managed and kept patched alongside Cloud PCs using Microsoft Intune and Microsoft Endpoint Manager. Conditional access controls can set requirements for the connecting device or require multi-factor authentication. Costs for high-spec developer VMs can be high – the example in Microsoft’s demo video has 128GB RAM and 32 vCPUs – but mitigated by the ability to stop them when not required, such as outside working hours.
The notion of remote development has come to the fore recently, boosted by the necessity for remote working during the pandemic, but can take various different forms. GitHub Codespaces are also based on VMs but specifically tailored to integrate with git, run behind Visual Studio Code, and to be transitory, since by default a Codespace stops running after 30 minutes of inactivity. VS Code can also be used for remote development anywhere accessible over SSH, provided the VS Code server components are supported.
JetBrains tools support remote development using a thin client and now supports Gitpod among other environments. Stripe said earlier this year that it created its own AWS devboxes using VS Code as the client, to address issues similar to those Microsoft has now highlighted.
Microsoft has not yet published prices for its Dev Boxes but if it is in line with Azure Virtual Desktop pricing it will be similar to the normal prices for Windows VMs. These vary substantially depending on how they are purchased. At current prices, for example, a D32ds v5 with 32 vCPUs and 128GB RAM in the UK South Azure region costs as much as $2,604 per month or as little as $581 per month, with savings from Azure Hybrid Benefit licensing and 3-year reservations.
Alongside Dev Box, Microsoft has also previewed Azure Deployment Environments, project-based templates for automating the provision of Azure resources for development and testing.
More information on Dev Box and Azure Deployment Environments can be found here and here, respectively.