This repository contains the necessary configuration to create Microsoft Dev Boxes to use as developer workstations for workshop participants in Cloud-akademiet.
👉 If you are an end user jump directly down to end user usage.
This section is inteded for those who are deploying and managing Dev Center, Dev Box definitions and Dev Box pools.
- PowerShell 7.x
- Bicep tools
- Owner permissions on a subscription with the Microsoft.DevCenter provider registered
- How to: Register Resource Provider Microsoft.DevCenter
- Note that the quota for DevBoxes General vCPUs in your region might need an increase if you are planning on deploying many. Follow this guide to request a increase if needed.
- Configure parameters in main.bicepparam and save the file
- Sign into the tenant by running
Connect-AzAccount -Tenant <tenant-id>
in PowerShell and ensure you select the appropriate subscription for deployment. - Run the deployment with:
New-AzDeployment -Name "devbox-$(get-date -Format 'ddMMyy-HHmmss')" -Location 'westeurope' -TemplateFile './bicep/main.bicep' -TemplateParameterFile './bicep/main.bicepparam'
Note: You can optionally replace Azure PowerShell with Azure CLI to deploy using az login
and az deployment sub create
.
The Dev Box definitions are set up as specified in main.bicepparam with:
- Windows 11 with Visual Studio 2022 image
- 8 vCPU, 32 GB RAM, 256 GB SSD storage
- Single-sign on enabled
- Hibernate support with automatic hibernation after 60m of inactivity
- Users are given local administrator
The VMs have by default this list of available software preinstalled.
Additional customizations are added to the Dev Box by applying the customization file upon provisioning. The only customizations currently available to these Dev Boxes are the ones defined in the default catalog which is synced to the Dev Center.
For the given size the pricing per DevBox is approximately:
SKU | Max Monthly Price | Hourly Compute | Monthly Storage |
---|---|---|---|
8 vCPU, 32 GB RAM, 256 GB Storage | kr1,564.31 | kr16.87 | kr215.07 |
Note that when a Dev Box's total cost (including its monthly storage and hourly compute) reaches the level of the max monthly price of that instance for that month, billing will automatically stop for that Dev Box instance.
As a cost-saving measurement a forced hibernation is run on a schedule.
This section is inteded for those who are provided access to provision their own Dev Boxes for development.
- Sign into the Developer Portal: https://devportal.microsoft.com/
- Press + New and select New Dev Box
- Give the Dev Box a name, e.g.
devbox-<firstname>
- Select Apply customizations and then press Continue
- Upload customization file
- Download this file to a local yaml file on your computer
- Select the file for upload and press Validate
- Select Create to begin provisioning your Dev Box
For additional guide, see the official docs.
- Sign into the Developer Portal: https://devportal.microsoft.com/
- Press Open in RDP Client on the Dev Box
- If you do not have the Remote Desktop App, press the link to download and install this app
- Press Connect to connect to your Dev Box
For additional guide, see the official docs
- Restart machine: In case of required restarts after installations or updates you can restart via Windows menu after connecting, wait a few minutes and then connect again. You can also restart the machine via the Developer Portal.
- Install missing software: Use
winget
to install software. See list of required packages in this script. You can search all available software for Winget here. - Update software: Use
winget upgrade
to upgrade Software. Some examples are listed here. You can also run Windows Update in settings to trigger system updates. - Hibernation: The machine is set to hibernate after 60m of inactivity. This is to ensure cost efficiency and not to pay for the machine while it is not in use.
- Visual Studio versions: The machine already have Visual Studio Professional 2022 installed. If you do not have an license and want to use the community version this will show as "Visual Studio 2022 - Community" in the applications overview.
Feel free to contribute to this repo. Contact @matsest if you have any questions.