Before we start discussing about Dev Test Labs and features, let's first see what are the challenges that the Development team and the Testing team are facing.
- Delay in getting staging environment
Even though the developers complete the requirements, it would take lot of time for the IT department to provide the required infrastructure. This causes delays in running the test and reporting the issues and bugs, which will lead to poor delivery commitments.
- No replicas of production environment
Though IT department provide staging environments, sometimes, it might not be feasible to replicate the production environments. For example, the production environment would be hosted on Network Load Balancing environment with the multiple Servers. Providing the Load Balancing environment on premise within the enterprise would be too costly. This will be a challenge for the developers and testers, to test a few features in their on-premise environment that are specific to Load Balancing. Example: Sessions.
- Licensing issues
There might be some cases where enterprises might opt for lower level licenses. For example: small organizations might go for Visual Studio Professional Licenses, which might not support all the features. In those cases, the developers might need to have enterprise or ultimate editions of Visual Studio.
- Costs
It might be too expensive for the organizations to purchase licenses of the tools, where there is a requirement of performing some proof of the concepts.
All the above challenges can be addressed using the coolest feature of Azure – DevTest Labs – a self-service sandbox environment. Let’s start discussing the features of the Azure DevTest Labs.
Auto – Start & Shutdown – As you know, we can save a lot of money by shutting down the VMs when not in use. DevTest labs allows you to set policies for Auto- Start and shutdown of all the VMs associated with the DevTest Containers.
Reusability of ARM Templates – You can author ARM templates to create the environments and re-use them to re-create the environment.
Quickly create the provision of the infrastructure - You can quickly create the Infrastructure right from virtual networks. Virtual Machine, to any tool (supported by Azure or related third party) that your developer or tester is in need of.
Create temporary VMs along with tools – You can create VMs along with the required tool (from Market Place), use it for your requirement and whenever you feel you are done with your work, generate an image (it’s like saving all the software of your VMs and storing it in a VHD for the creation of the environment, at a later stage). Save it as an image and deallocate or Shutdown the virtual machine when it is not required.
Looks cool, right? Let’s see how to create an Azure DevTest lab.
Login to your Azure subscription and click “New”, Developer Service and “DevTest Labs”, as shown below:
Provide the following details for the new DevTest lab:
Basically, we are now creating a DevTest Lab, which is a container of multiple VMs. Please note that, we can create a policy “Auto-shutdown” by tagging Auto-shutdown as “Enabled”. It means, you are enabling the auto shutdown feature for all the VMs, that you (as an admin) or anyone (your team who has access to the lab), who creates a VMs in this lab will be auto-shutdown at the time specified in the “Scheduled shutdown” field of the screenshot, shown above. Please also note that, you can specify a Timezone as well. By using this Auto-shutdown feature, you can reduce the cost of the VMs by shutting them, when not required.
Also, note the text at the top of the “Auto-shutdown” blade in the right hand (also copied below), the users can opt-out of this policy; if they don’t want to shut down automatically.
Now, click “Create” in the “Create a DevTest Lab” blade to create the Lab. Yay! We have created a new DevTest lab, as shown below:
Please note that we haven’t selected any Resource Group while creating the DevTest lab. Azure has automatically created a new Resource Group and added the new lab to that Resource Group as shown above.
Now click on the DevTestLab “DotnetDevTestLab”. You will be navigated to the “Essentials” blade, as shown below:
We don’t see any VMs created; in this lab as we haven’t created one yet. We will see how to create VMs in a lab in the upcoming articles.
Now, click on the “Resource Group” to see the content of the resource group, shown below:
Above screenshot shows the summary of the resources that are created while we created the lab. All the resources are grouped into a new resource group. Hence, when you create a DevTest lab, it created the following.
- The actual DevTest Lab entity.
- A Virtual Network – This will be used to connect all the VMs that we are going to create and attach to this lab in the coming articles.
- Two Storage Accounts – These storage accounts are required to store the data. At this point, I’m not sure why a two storage account is required. I will check and update this article.
Stay tuned for few more articles on DevTest Labs. I appreciate your feedback and suggestions.