Saturday, 22 July 2023

Dev-optimized, cloud-based workstations—Microsoft Dev Box is now generally available

Last month at Microsoft Build, we shared several new features in Microsoft Dev Box—ready-to-code, cloud-based workstations optimized for developer use cases and productivity. From new integrations with Visual Studio, a preview of configuration-as-code customization, and our own rollout of Dev Box internally, there was a lot to share, and the response to this news was great. Today, I’m excited to share another announcement—Microsoft Dev Box is now generally available.

Microsoft Career, Microsoft Skill, Microsoft Jobs, Microsoft Prep, Microsoft Preparation, Microsoft Dev, Microsoft Guides

Our journey to dev-optimized virtual desktops


We first announced Microsoft Dev Box at Microsoft Build 2022, but our journey didn’t start there. For more than seven years, we’ve focused on improving developer productivity and satisfaction with the power of the cloud. In 2016, we introduced Azure DevTest Labs, a service that enables development teams to create templatized virtual machines (VMs) for a variety of development and testing use cases.

Over the years, we’ve helped many customers build custom solutions on DevTest Labs to expand on its core features. One use case that has been especially popular is using DevTest labs to create persistent, preconfigured dev environments. But building these custom solutions on top of DevTest Labs is challenging, requiring significant effort to build out additional governance and management features. Customers wanted a turnkey solution.

Delivering fast, self-service dev environments in the cloud


In response, we introduced Visual Studio Codespaces in 2019—preconfigured, container- and Linux-based dev environments that developers could spin up in seconds directly from Visual Studio Code, providing developers with a fast and easy way to work on their apps while on the go.

Developers love Codespaces for its speed and mobility, and the service still exists today as GitHub Codespaces. But software development requires all sorts of tools. Initially, we built Codespaces to support Visual Studio Code and GitHub, but customers quickly started asking for support for other Integrated Development Environments (IDEs), source code management, and tools.

As a first step, we started to expand Codespaces to include support for Visual Studio. However, doing so revealed more challenges than we expected—primarily around enterprise-ready management and governance. That, combined with the fact that devs wanted access to all their tools in their cloud environment, made us realize we needed to deliver:

◉ Enterprise-ready security, compliance, and cost management capabilities.
◉ High-fidelity, cloud-based performance with built-in dev tool integrations.
◉ Self-service access to preconfigured, project-specific resources.

Essentially, the solution needed to be a developer-optimized virtualization solution. Microsoft already offers Windows 365—delivering Cloud PCs, securely streaming your personalized Windows desktop, apps, settings, and content from the Microsoft Cloud to any device anywhere. Critically, Windows 365 is fully integrated with Microsoft Intune, which enables IT admins to manage their Cloud PCs alongside their physical devices. That was exactly what we were looking for, so we decided to use Windows 365 as the foundation for our new solution.

Transforming the dev workstation experience


With enterprise management taken care of, our next consideration was the underlying hardware. While high-powered compute was an obvious need, we soon realized that storage can also significantly impact developer performance. Large builds put a lot of strain on storage drives, which become a bottleneck if read or write speeds can’t keep up with the build. To account for this, we decided to include premium Solid-State Drivers (SSDs) in our product. But we still hadn’t addressed the primary challenges of dev workstations—long deployment times and configuration errors caused by complex projects and toolsets.

Solving these problems would require a more fundamental shift in how our service managed configurations and deployment. Devs work on all sorts of projects, many of which require specific tools. For these devs, a blanket, role-based configuration would require them to spend time tailoring their workstation and installing additional tools once it was provisioned. IT admins and dev leads alike needed a way to create multiple, tailored configurations and enable developers to spin up a new workstation on-demand that would be ready-to-code for their current project.

Our first step was to integrate our solution with the Azure Compute Gallery, providing a scalable way to share base images and manage image versions. We then set up a new management layer that enabled teams to organize their images and networking configurations by project. Now, dev leads and IT admins could set up multiple workstation configurations for a single project. Admins could even define the Azure region in which each workstation would deploy, ensuring a high-fidelity experience for devs around the world.

By preconfiguring workstations like this, we eliminated the need for devs to reach out to IT every time they needed a new workstation. And because we could make multiple workstation configurations available for a single project, devs weren’t locked into a single configuration—they could select a tailored workstation, spin it up, and start coding quickly. We even gave devs a specialized Developer Portal that offers fast, easy access to their project-based workstations. Devs can also use this portal to quickly deploy environments for any stage of development using Azure Deployment Environments, also generally available.

Arriving at Microsoft Dev Box


That’s how we ended up at Microsoft Dev Box—cloud-based workstations optimized for developer use cases and productivity. Dev Box combines developer-optimized capabilities with the enterprise-ready management of Windows 365 and Microsoft Intune. And as we work to improve Dev Box, we’ve continued to partner with other teams at Microsoft. Most recently, we worked closely with the Visual Studio team to add built-in integrations that optimize the Visual Studio experience on Dev Box. We’re also actively introducing configuration-as-code customization into Dev Box, which will provide dev leads even more granular control to configure dev boxes around specific tasks and enable them to connect Dev Box provisioning to their existing Git flow.

Microsoft Career, Microsoft Skill, Microsoft Jobs, Microsoft Prep, Microsoft Preparation, Microsoft Dev, Microsoft Guides

But before we launched Dev Box, we wanted to make sure it was truly enterprise-ready. At Microsoft, it’s common to test our services internally before releasing them. In this case, that meant stress-testing Dev Box against products with repos that are hundreds of gigabytes large. This has been a challenging but useful experience, and our learnings have helped us speed up the path to general availability. Already, there are more than 10,000 engineers using Dev Box at Microsoft, and we have several customers using Dev Box in production environments today.

Enabling the best of Dev Box with flexible pricing


From our initial work with customers, we learned a lot about their usage patterns and the use cases it can support. Dev Box works great as a full-time desktop replacement, or for specialized part-time use. You can spin up a high-powered Dev Box for a particularly compute-heavy task, or a second machine to isolate an experiment or proof of concept.

Initially, we planned on charging for Dev Box based on a pure consumption model—customers would only pay for Dev Box when it was running, and no more. Unfortunately, while this worked great for part-time Dev Box use, such a model left a lot of variability for administrators that wanted to pay a standardized monthly cost for full-time usage.

To accommodate different use cases, we’ve introduced a predictable monthly price for full-time Dev Box usage while keeping consumption-based, pay-as-you-go pricing that charges up to a monthly price cap. This model strikes a balance between the extremes of full consumption or subscription-only pricing, ensuring devs can optimize their spend for both full-time and part-time use cases.

Source: microsoft.com

Related Posts

0 comments:

Post a Comment