One area of Azure that I like to highlight in my conversations with companies as an over-looked digital-transformation enabler is DevTest Labs. Microsoft released Azure DevTest Labs on May 2016 but customers have since found many creative uses for it beyond software development and testing environments. There is no additional cost for the services of DevTest Labs since you are only charged for standard Azure resource consumption such as VMs and storage used in your lab.

Azure DevTest Labs was designed to be a self-service sandbox environment to quickly create Dev/Test environments in the cloud while minimizing waste and controlling costs by providing software developers and testers with the following:

1. Worry-free self-service for users with managed costs and resource usage limits

  • Developers and testers go to the Azure portal directly to create environments instead of going through a complicated “request” process for VM provisioning from IT admins
  • VMs can be shut-down or started automatically on a schedule (i.e. Monday-Friday from 8:30 AM – 6 PM) to save costs on unused resources.
  • The maximum number of VMs each lab user can own and the VM sizes allowed for VM creation can be set by IT admins to prevent unplanned or excessive consumption of Azure resources.
  • Each DevTest lab is a sandbox for a team to manage their own environments without granting them permissions to access Azure resources or the main Azure subscription account outside of the lab. This means that users only need an acceptable Microsoft account for login to connect to their lab.
  • Charts and projections are provided for IT admins to monitor the total spending and usage as well as set thresholds for alerts and quotas to prevent cost over-runs.

2. Re-use lab settings and resources through ARM support for a ‘create once, use everywhere’ deployment model

  • Azure Resource Manager (ARM) templates are fully supported
  • You can create multiple labs with the same settings/policies by deploying the same ARM template.
  • DevTest Lab resources (labs, custom images, formulas, artifacts, etc.) are reusable across labs, so that you don’t need to re-create the same thing from scratch.

3. Be “ready to go” quickly with multiple VM image options

There are 3 different types of VM images that IT admins can use to quickly create lab environments:

  • Marketplace VM images: pre-built/configured VM images directly from Azure Marketplace
  • Custom VM images: from your own VM image virtual hard disk (VHD)
  • Formulas: a reusable base where VM creation settings (such as VM image, VM sizes, virtual network, etc.) are pre-defined, so that environments can be created without requiring any more input

4. Integrates with your existing software toolchain

  • Azure DevTest Labs provides pre-made plug-ins, command-line tools and APIs that allow you to integrate your Dev/Test environments from labs to the software release pipeline

For a quick overview, there is a great 3 minute Microsoft video explaining these 4 ideas at: What is Azure DevTest Labs.

Azure DevTest Labs Scenario: Training

One of the major uses of DevTest Labs is for building out labs for training either internally within a corporation or for custom training with hands-on labs for educational institutions or independent third-party training facilities. DevTest Labs allows you to create a lab where you can provide custom templates that each trainee/student can use to create identical and isolated environments for training. You can apply policies to ensure that training environments are available to each trainee only when they need them and contain enough resources (VMs, software, storage, etc.) required for the training. The following necessary requirements are provided by DevTest Labs to conduct training in a virtual environment:

  • Instructors can easily share the desired training lab with identical VMs and software configurations with each trainee
  • Instructors can reuse or reset a training lab as needed for a trainee or at the end of the training period
  • Trainees cannot see VMs or training related work/changes created by other trainees in their separate and isolated/private environments
  • Instructors can schedule automatic start-up and shutdown of VMs when the trainees are not using them. Trainees cannot get more VMs or resources than they need for the training requirements. This allows the effective management of training costs and prevents wasted resources.

Additional Resources to Learn About Azure DevTest Labs