Just over a month ago,
DevTest Labs , a new Microsoft Azure service for creating cloud development and testing environments, received public accessibility.
In short,
DevTest Labs is a lab for creating sets of virtual machines based on Windows and / or Lunux images. You can use as many ready-made images (including from the
Azure Marketplace gallery) or upload your own from VHD files.

You can also expand the virtual machines being created with so-called artifacts. Artifacts are JSON files, in which certain custom actions are performed when creating a virtual machine. For example, an artifact can act as a script for installing an external component, or perform some kind of configuration action on a virtual machine. By default, you get access to a large set of ready-made artifacts from the public repository of
the DevTest Labs community .
')

After reviewing the finished examples, you can create your own repository with artifacts and connect it to your
DevTest Labs lab. GitHub or VSTS can be used as a repository.
Formula tool allows you to create reusable configurations of virtual machines, including: image, size, set of artifacts, network settings and so on. This approach is useful if you need to frequently create an environment with common configurations.
DevTest Labs contains a large set of tools for controlling resources and the cost of environments. In addition to supporting standard
Azure Role-Based Control (RBAC) , the following feature set is available to you:
- The automatic on / off function of virtual machines environment, allows you to save your finances, in periods of time when your environment is not used.
- You can set restrictions on the size and number of virtual machines being created. Limits on top of the cost of the environment.

- Virtual Network settings allow you to set restrictions on the use of virtual networks and Azure subnets, as well as control the creation of public IP addresses.

- Cost thresholds chart is a fairly convenient tool for monitoring the current and projected environmental cost per month.

- You can also limit the list of Azure Marketplace images that can be used in the lab.

All resources created in
DevTest Labs (custom images, artifacts, images, etc.) are reusable within a subscription, so you can reuse them in your other laboratories.
DevTest Labs is fully supported by
Azure Resource Manager . Thanks to this, you can create ready-made environments from ARM templates. You can see the gallery of ready-made templates
here .

Already available ready-made tasks for managing
DevTest Labs environments in
Visual Studio Team Services . These tasks allow you to create, stop and start the environment during a build or
release management process.
In addition,
DevTest Labs environment
management is available through: Azure PowerShell, REST APIs, and the .NET SDK. Thus, thanks to customization, you can integrate DevTest Labs into your existing processes, regardless of the chosen CI system.
DevTest Labs is quite an interesting service. First of all, it can be useful for teams that work with different configurations of virtual machines and take care of minimizing the cost of the environment.
DevTest Labs is constantly evolving and overgrown with new features. If you have any ideas or suggestions for improving this service, you can write them in
MSDN blog . Use questions
here .