 Hi, my name is Xiaoying. I'm the Senior Program Manager for Azure DevTest Labs, the commercial Azure service that helps developers and testers to quickly create environments while minimizing waste and controlling cost. In this video, I'm going to show you all the key features we've shipped since the Connect conference last November. Before I jump there, in case you haven't heard about DevTest Labs, please allow me spend a couple of minutes explaining what it is. DevTest Labs aims at solving the real problem in DevTest scenario. DevTest investments are usually significant. When we talk to most traditional IT organizations, we realize that up to 50 percent of their infrastructure spending is happening on non-production environments. Furthermore, neither IT nor developers are very happy about their provisioning experience. 65 percent of developers say that it's too complicated and time-consuming. It takes weeks to get infrastructure for DevTest, sometimes not even enough for testing, and there's a lot of unused resources. Why is this the case? The demand for DevTest infrastructure isn't linear. It typically looks like this spiky graph. When Devs are working on sprints, you'll see peaks. When there's off-time like nights, weekends, or holidays, you'll see valleys. When there's a release, the demand for test environments is high, so you'll see a big peak. If your provisioning infrastructure in a traditional way, here's what you'll do, results in 80 percent of wastage. That's a lot of good money being put to bad use. However, when you use Azure, you can map your infrastructure spending closely to your needs, pay for the use only, and enjoy cost savings. With Azure being the only cloud that does permitted billing for VMs, you'll only pay for what's being used. More importantly, lightning fast provisioning and automation improves productivity driving top-line business value. For you to quickly get started with DevTest environments in Azure, we have solution called DevTest Labs. It's an out-of-the-box solution that won't get in any other cloud. It empowers your developers and gives the cost control and governance that your IT wants. DevTest Labs is good for multiple scenarios, including hosting your developer machines, test environments, and beyond DevTest scenarios, it's also good for training education scenario, and trial hack-thon or demo scenario as well. Now let's talk a little bit more about these scenarios one by one. First, developer machines. Because DevTest Labs make it super easy for IT teams to enable cost-controlled self-service environment for developer teams, developers have the flexibility to quickly compose their own development machines on demand by using the reusable templates and artifacts under the policies defined by the IT team. The needs are satisfied from both sides. The IT team gets the control and developers are happy about agility. Similarly, you can test the latest version of your application by quickly provisioning Windows and Linux environments using reusable templates and artifacts. DevTest Labs provides a rich set of APIs and premade VSTS tasks that help you to easily integrate with your deployment pipeline to provision on-demand environments. You can also scale up your load testing by provisioning multiple test agents in the lab. Once the testing is done, you can also create your golden image from test machines and make the image available immediately for all the lab users through a single step. As mentioned earlier, in addition to DevTest environments, you can also create pre-provisioned environments for training and demos. In the classroom scenario, a set of identical VMs are created in a shared VM pool before the class starts. Students in the class simply click a button to get a VM as needed. All the VMs can be automatically cleaned up after the class. Similarly, in the trial, hack, phone, or demo scenario, lab users pick a machine from the VM pool in DevTest Labs as needed. Once this event is over, the lab can automatically clean up all the VMs for next event. So at this point, I've talked about what is DevTest Labs and how they can help you in various scenarios. Before talking about new features, let me quickly walk you through the core capabilities in DevTest Labs. Your DevTest Lab is created from Azure Marketplace. Once created, you can use and manage it through either Azure Portal or APIs. Here I'm logging Azure Portal and open one of my favorite DevTest Lab. As a lab user that is granted with DevTest Labs user role, I can create my VMs or environments with past resources from a set of reusable templates under the policies defined by my lab admin. Once created a VM, I can start, stop, or connect to the VM, apply artifacts to install more software, or attach my data disks that contains my latest source code or test data. As an owner or admin of the lab, DevTest Labs gives me full control to define the lab policies, including allowed VM sizes, maximum number of the VMs each user or lab can keep at the same time, auto shutdown, and auto start. I can define reusable templates for my lab users to create VMs, including ARM templates added through my Git repository, my selection of Azure Marketplace images, and the custom images. I can also monitor the current spending in the lab, check the projection, define my cost target in time range, and get notification when there is a risk of overspending. When I see a red flag, a list of cost-by-resources reviews more details on the usage in each resource. Now let's look at what's new since the Connect conference in last November. The first big thing we've shipped recently is to support managed disks in creation of VMs, custom images, and data disks in DevTest Labs. Before they support because of IOPS limits in a single storage account for optimized performance, DevTest Labs create VM OS disks in additional storage account when there are already many VMs using the same storage account. In addition, because creating VMs from a custom image VHD in a different storage account can take a long time, usually around 40 or even 60 minutes, in order to optimize the VM creation, the same custom image VHD is replicated to all the new storage accounts. With managed disk support, this flow is significantly simplified. As its name indicates, all managed disk resources are automatically managed by Azure instead of the storage account in your subscription. You don't need to manage any storage accounts anymore and all the VMs can be created from the same custom image VHD file. Another key experience with the Enable in DevTest Labs is claimable VMs. With this, Lab of the Means can prepare VMs and put them in a shared VM pool. Lab users can then pick a VM from the pool to use without spending any time to create it from scratch. This is very helpful for a couple of different scenarios. In test scenarios, claimable VMs that are installed with the latest build for testing can be generated automatically from the release pipeline. Developers and testers can then start using the latest build immediately for further testing or validation. Claimable VMs also make it easier for trainers and teachers to get all VMs ready before a class. Because all the VMs for the same class are identical, students can ask the lab to claim any VM for them at the beginning of the class. Once claimed, the VM will automatically start up for students to use during the class. DevTest Labs also supports creation of multiple identical VMs for the same VM image and artifacts all at once. The only additional thing you need to do is to provide the number of the VM instances where you create a VM. In order to make VM clean up easier, now can also set time when you create a VM to expire it automatically. At the specified expiration time, DevTest Labs automatically delete the VM. By using it together with claimable VMs, you can fully focus on creating the right VM without taking any extra effort to manage the VM retirement. In the case that a lot of public-facing VMs needed to be created in the lab, DevTest Labs provides a solution to share the same public IP address with those VMs. It can help you reduce cost and avoid exceeding the public IP address quota in your Azure subscription. What you need to do is simply choosing an IP configuration option to use a shared public IP address, and the lab will do all the remaining work for you. Now let's get back to my lab and see how these features work in practice. At the bottom of the overview page as a lab user, I can see a list of claimable VMs for me to choose. I can also view all the claimable VMs through the claimable virtual machines page. If all the VMs are the same, such as in the case of classroom scenario, the only thing I need to do to get the VM is to click the Claim any button on the top of the page. If I need a particular VM from the pool, it's also very easy. I simply select the VM I'm interested in and click the Claim Machine button. The selected VM will then be moved to my virtual machine list and automatically turn on if it stopped. Now let's create some claimable VMs. It's also very straightforward. What I need to do is to go through the same VM creation flow as creating a VM for myself. I start with choosing a base from different types of templates supporting the lab, including ARM templates, formulas, custom images, and Azure marketplace images. Then I fill in my desired values for some properties, such as the VM name, username, and password, VM size, and artifacts. The only difference from creating my own VM is to specify some advanced settings. Here, what I need to do is to switch the Claim Options toggle. I can do more things in advanced settings. Let's say I want to create five claimable VMs with the same configuration for a small group of people, and those VMs cannot be used after the end of next week. To achieve that, I give the number of instances as five and set the expiration date for all these VMs. It means that at midnight of next Saturday, all these VMs will be automatically deleted, regardless whether they've been claimed by somebody or still in the claimable pool. Here, we can see that the default IP address configuration is shared, which means that all these five VMs will be created with the same puppy IP address. If the shared puppy IP address has already been created in the lab, these VMs will use that one. Otherwise, the lab will create a new puppy IP address for them. At this point, I'm good to click the create button and kick off the creation for these five VMs that share the same puppy IP address and will be expired at midnight of next Saturday. Once created, these claimable VMs will be automatically shut down and wait for lab users to claim it. Now let's talk a little bit more about the shared puppy IP address. We'll understand that not all the organizations allow the VMs accessible through the internet. There are also cases where shared puppy IP address is not desired in your scenario at all. So DevTest Labs provides flexible settings for lab limits to define which IP address configuration is allowed in the lab. In the lab's virtual network settings, lab limits can select the virtual network and the subnet to change the options they allow their lab users to use, including whether the subnet can be using this lab for creating VMs, whether shared puppy IP address is allowed and whether each lab VM is allowed to be created within exclusive puppy IP address. Once a VM uses a shared puppy IP in the lab, it will be automatically assigned to a unique port number, which will be used together with the shared puppy IP address when you connect to that VM. You can see which IP address and port number to use from the essential section on the selected lab VMs page. Or for Windows VM, just click the connect button on top of the page to get a RDP file that contains all the required info directly. As a quick recap, in this video, we've talked about the new features available in DevTest Labs, and how it can help you in multiple scenarios to enable a secure self-service experience with fast, easy, and agile DevTest or training environments in Azure. Hopefully, find it helpful. If you want to learn more, please visit our service introduction page at aka.ms-dtl and subscribe our news feed to get a latest service update. Thank you.