DevTest Labs can be used as a contained self-service model to create, share and manage Virtual Machine environments for developers and testers.
When I first started out using Azure for development I would have to piece together many Azure resources to create a “developer lab environment”. This would include a resource group, virtual machines, virtual networks, run book for auto start/shutdown schedules, etc. That means to gather all the pieces and plug them together. This was quite rapid and agile. However, when discovering DevTest Labs in 2017, a lot of these pieces and functions are tightly integrated and manageable in a more consolidated set of Uis. Therefore, allowing me to be even more agile and rapid to start developing in an IaaS infrastructure environment.
The following are some of my top favourites of the capabilities and features in the scenario of a lone developer.
- Creating Azure Virtual Machines
Then choosing a base image or a custom image
Configure virtual machine
- Manage artifactsThis is my most favourite feature! Upon Virtual machine creation or afterwards, you can install developer software with a few clicks along with any of its configuration settings.This saves the time and tedious effort of googling for software, download and install your favourite developer tools.
You can also do some popular types of configuration such as
- creating a domain controller on a windows machine
- adding a domain user.
- install a self signed cert
- join to an existing windows domain
Here I have applied additional artifacts and waiting for them be installed.
Installing artifacts Visual Studio and Visual Studio code took me about 3 hours to complete. I have had situations where there have been failures, so good to read Diagnose artifact failures in the lab
- Auto start and shutdown schedulesTo save on compute costs, the ability to start and shutdown is much easier and ‘out-of-the-box’ in typical Azure IaaS environments. In a standard azure VM, you can set shutdown schedule, but no start schedule. And so, you had to setup a runbook and PowerShell script to have your complete start and shutdown schedule.In DevTest Labs, auto-shutdown schedules can be created at each individual VM, but only one auto-start schedule are set at lab admin level to be shared with the VMs. Each VM can opt in or out to use this schedule, but can’t create their own. At the lab admin level, a shared auto-shutdown schedule can be created where by each individual can opt in or override with their own.Lab Configuration and policies – Auto start
Individual VM Level – auto start schedule
By clicking On, the auto start schedule will use the schedule in the previous screenshot and as you can see, there is no override scheduling.
I believe the auto-start schedule is only at the lab level as a control policy to manage compute costs so that VMs don’t start continuously and become forgotten by each developer managing their VMs.
- My Secrets
DevTest Labs comes with an Azure Key Vault to store password, tokens and keys. I really like this feature where I can store a password to be used for virtual machine creation. This is convenient where I will make multiple and just want to reuse the same password.Storing a password
Upon VM creation, I can select the stored password that does a look up to its Azure Key Vault
Upon selecting the secret name, the password is populated from the Key Vault
- Create a custom image
In the situation where a developer wants to have a base image that has a configuration and software installs for reusability and sharing, you can easily create a custom image from an existing VM. An example would be a developer VM for general .NET web development, SQL, BizTalk or SharePoint.Click Create custom image
Upon VM creation, you can select your custom image
- Cost trend
To manage and observe costs in your lab
What’s very useful is that by clicking on Manage target you have more detailed cost management and alerting features. For example, I have set notification and plot charting for cost consumption at 75% of my defined target of $300
For pricing details read Azure Dev/Test Pricing
For Windows, SQL Server and BizTalk Virtual Machines, it is stated as “Billed at CentOS/Ubuntu Linux VM rates”
You can go the Azure pricing calculator to see detailed pricing options
However, it is noted the cost trend is reflective of monthly-pay-as-go rates and are not discounted with dev/test pricing. For details read the documentation View the monthly estimated lab cost trend in Azure DevTest Labs
“the costs you see by default in the chart are estimated costs using Pay-As-You-Go offer rates.”
Hopefully this will be updated to reflect the devtest discount pricing.
Having understood the capabilities and features of DevTest lab, I would highly recommend developers for those in situations of
- Learning development with Azure envrionments
- Creating demo and proof of concept applications
- Project and solution delivery.