Azure DevTest Labs
Author: Ronald Fung
Creation Date: 16 May 2023
Next Modified Date: 16 May 2024
A. Introduction
Azure DevTest Labs is a service for easily creating, using, and managing infrastructure-as-a-service (IaaS) virtual machines (VMs) and platform-as-a-service (PaaS) environments in labs. Labs offer preconfigured bases and artifacts for creating VMs, and Azure Resource Manager (ARM) templates for creating environments like Azure Web Apps or SharePoint farms.
Lab owners can create preconfigured VMs that have tools and software lab users need. Lab users can claim preconfigured VMs, or create and configure their own VMs and environments. Lab policies and other methods track and control lab usage and costs.
B. How is it used at Seagen
As a biopharma research company using Microsoft Azure, you can use Azure DevTest Labs to create and manage test environments for your software development and testing teams. Here are some ways you can use Azure DevTest Labs:
Provision test environments: Azure DevTest Labs can help you to provision test environments quickly and easily, with pre-configured templates and images that can be customized to meet your specific needs.
Self-service testing: Azure DevTest Labs can enable self-service testing for your development and testing teams, allowing them to create and manage their own test environments without needing to involve IT.
Cost control: Azure DevTest Labs provides cost control features that can help you to manage your cloud costs and optimize your resources. For example, you can set quotas for your VMs, enforce policies, and automate VM shutdown.
Integration with Azure services: Azure DevTest Labs can integrate with other Azure services such as Azure Virtual Machines, Azure Storage, and Azure Active Directory. This can help you to extend the functionality of your test environments and create more complex workflows.
DevOps integration: Azure DevTest Labs can integrate with Azure DevOps (formerly VSTS) to enable continuous integration and delivery (CI/CD) for your software development projects. This can help you to automate your software build and release process and improve the quality of your software.
Reporting and analytics: Azure DevTest Labs provides reporting and analytics features that can help you to gain insights into your test environments and track key metrics such as usage and costs.
Overall, Azure DevTest Labs can help your biopharma research company to create and manage test environments for your software development and testing teams, with fast and easy provisioning, self-service testing, cost control, integration with Azure services, DevOps integration, and reporting and analytics. With Azure DevTest Labs, you can improve the efficiency and effectiveness of your software testing process, reduce costs, and accelerate time-to-market for your software products.
C. Features
Common DevTest Labs scenarios
Common DevTest Labs scenarios include development VMs, test environments, and classroom or training labs. DevTest Labs promotes efficiency, consistency, and cost control by keeping all resource usage within the lab context.
Custom VM bases, artifacts, and templates
DevTest Labs can use custom images, formulas, artifacts, and templates to create and manage labs, VMs, and environments. The DevTest Labs public GitHub repository has many ready-to-use VM artifacts and ARM templates for creating labs, environments, or sandbox resource groups. Lab owners can also create custom images, formulas, and ARM templates to use for creating and managing labs, VMs, and environments.
Lab owners can store artifacts and ARM templates in private Git repositories, and connect the artifact repositories and template repositories to their labs so lab users can access them directly from the Azure portal. Add the same repositories to multiple labs in your organization to promote consistency, reuse, and sharing.
Development, test, and training scenarios
DevTest Labs users can quickly and easily create IaaS VMs and PaaS environments from preconfigured bases, artifacts, and templates. Developers, testers, and trainers can:
Create Windows and Linux training and demo environments, or sandbox resource groups for exploring Azure, by using reusable ARM templates and artifacts.
Test app versions and scale up load testing by creating multiple test agents and environments.
Create development or testing environments from continuous integration and deployment (CI/CD) tools, integrated development environments (IDEs), or automated release pipelines. Integrate deployment pipelines with DevTest Labs to create environments on demand.
Use the Azure CLI command-line tool to manage VMs and environments.
Lab policies and procedures to control costs
Lab owners can take several measures to reduce waste and control lab costs.
Set lab policies like allowed number or sizes of VMs per user or lab.
Set auto-shutdown and auto-startup schedules to shut down and start up lab VMs at specific times of day.
Monitor costs to track lab and resource usage and estimate trends.
Set VM expiration dates, or delete labs or lab VMs when no longer needed.
D. Where Implemented
E. How it is tested
Testing Azure DevTest Labs involves ensuring that the service is functioning correctly and securely, and meeting the needs of all stakeholders involved in the project. Here are some steps to follow to test Azure DevTest Labs:
Define the scope and requirements: Define the scope of the project and the requirements of all stakeholders involved in the project. This will help ensure that Azure DevTest Labs is designed to meet the needs of all stakeholders.
Develop test cases: Develop test cases that cover all aspects of Azure DevTest Labs functionality, including creating and managing environments, deploying and configuring virtual machines, and managing costs. The test cases should be designed to meet the needs of the organization, including scalability and resilience.
Conduct unit testing: Test the individual components of Azure DevTest Labs to ensure that they are functioning correctly. This may involve using tools like PowerShell or Azure CLI for automated testing.
Conduct integration testing: Test Azure DevTest Labs in an integrated environment to ensure that it works correctly with other systems and applications. This may involve testing Azure DevTest Labs with different operating systems, browsers, and devices.
Conduct user acceptance testing: Test Azure DevTest Labs with end-users to ensure that it meets their needs and is easy to use. This may involve conducting surveys, interviews, or focus groups to gather feedback from users.
Automate testing: Automate testing of Azure DevTest Labs to ensure that it is functioning correctly and meeting the needs of all stakeholders. This may involve using tools like Azure DevOps Pipelines to set up automated testing pipelines.
Monitor performance: Monitor the performance of Azure DevTest Labs in production to ensure that it is meeting the needs of all stakeholders. This may involve setting up monitoring tools, such as Azure Monitor, to track usage and identify performance issues.
Address issues: Address any issues that are identified during testing and make necessary changes to ensure that Azure DevTest Labs is functioning correctly and meeting the needs of all stakeholders.
By following these steps, you can ensure that Azure DevTest Labs is tested thoroughly and meets the needs of all stakeholders involved in the project. This can help improve the quality of Azure DevTest Labs and ensure that it functions correctly in a production environment.
F. 2023 Roadmap
????
G. 2024 Roadmap
????
H. Known Issues
There are several known issues that can impact Azure DevTest Labs. Here are some of the most common issues to be aware of:
Resource limitations: Azure DevTest Labs has resource limitations that can impact the number of virtual machines and other resources that can be used. It is important to ensure that the service is properly sized to meet the needs of the organization.
Performance issues: If the service is not properly sized, it can impact performance and availability, causing issues with the speed and reliability of Azure DevTest Labs. Security issues: Security is a critical concern when it comes to Azure DevTest Labs. It is important to ensure that Azure DevTest Labs is secured and that access to the solution is restricted to authorized personnel.
Compatibility issues: Azure DevTest Labs may not be compatible with all platforms, devices, or languages. It is important to ensure that Azure DevTest Labs is compatible with the organization’s existing infrastructure before implementation.
Scalability issues: Scalability issues can arise when scaling up or down the service. It is important to ensure that the service can scale to meet the needs of the organization.
Integration issues: Integration issues can arise when integrating Azure DevTest Labs with other systems and applications. It is important to ensure that Azure DevTest Labs is designed to work seamlessly with other systems and applications to avoid integration issues.
Testing issues: Testing issues can arise when testing Azure DevTest Labs. It is important to ensure that testing is carried out thoroughly and that all aspects of Azure DevTest Labs functionality are tested.
Licensing issues: Licensing issues can arise when using Azure DevTest Labs. It is important to ensure that the appropriate licensing is in place to avoid any legal issues.
Overall, Azure DevTest Labs requires careful planning and management to ensure that it is functioning correctly and meeting the needs of all stakeholders involved in the project. By being aware of these known issues and taking steps to address them, you can improve the quality of Azure DevTest Labs and ensure the success of your project.
[x] Reviewed by Enterprise Architecture
[x] Reviewed by Application Development
[x] Reviewed by Data Architecture