Best way to reuse Azure VMs for QA and training

Christopher Baca 1 Reputation point
2022-07-01T20:58:21.173+00:00

I have a relatively simple use case for QA, which is also applicable to setting up environments for training and product demos.

I am hoping to get advice on which tool or technique I should investigate to solve a problem.

I am sometimes asked to test a line of business software product. It runs on-premises, is Windows-compatible, and requires SQL Server. Every 6-12 months a new version comes out and I get pulled in to help with regression testing the upgrade experience.

Here is how I setup/run the test:

  1. Create a Windows VM from an existing VM saved in an Azure Compute Gallery. This VM only has Windows installed.
  2. Install current version of software (V1). This takes about 20 minutes because it needs to install SQL Express.
  3. Run the upgrade test.
  4. Dev team releases a new build. Repeat steps 1 through 3.

Line 2 above is clearly a waste of time. There must be a better process. Here's how I imagine it might be possible to setup/run the test:

  1. Create a new VM from an existing VM image saved (in an Azure Compute Gallery or whatever other better option might exist). This image has Windows installed.
  2. Install current version of software (V1). This takes about 20 minutes because it needs to install SQL Express.
  3. Save the fully configured VM so it is ready to test when needed. Is this easy to do or advised using Gallery?
  4. Load the saved, fully configured VM.
  5. Run the upgrade test.
  6. Dev team releases a new build.
  7. Start again at step 4.

So is this something I can do if I drill down a bit more in Azure Compute Gallery? Or do I need to look beyond? Azure Backups seems like it might be utilized for QA but it's really supposed to be used for recovery. Then there's Azure DevTest...

I'm looking for a solution that is simple and relatively inexpensive, at least at first. And this might change the advice but if possible I would like it to scale to handle 3 software titles with 3 different upgrade versions, running on 4 versions of Windows with 4 versions of SQL Server.

Glad for you to share your expertise.

Azure DevTest Labs
Azure DevTest Labs
An Azure service that is used for provisioning development and test environments.
260 questions
{count} votes

1 answer

Sort by: Most helpful
  1. AnuragSingh-MSFT 20,981 Reputation points
    2022-07-04T05:53:57.403+00:00

    Hi @Christopher Baca ,

    Thank you for reaching out to Microsoft Q&A for this question.

    You are correct that Azure DevTest Labs would be a good choice for the scenario as mentioned above. The following links give a quick overview of the features of DevTest Labs:
    Introduction to Azure DevTest lab

    Note that you can use a number of other services/options available for this scenario too. One such option would be to use Azure ARM template with Azure Custom Script Extension to provision VM as well as configure it using custom script post deployment. The benefit of this process is that you can have infrastructure as a code (IaaC) which can be re-used to minimize the manual effort and errors. It could also be a good way to have versioned scripts to deploy your application and its dependencies, so that you can deploy resources not only for current version and current version -1, but for older versions as well.

    I would suggest exploring DevTest labs first as it is specifically designed for dev/test environment. Please let me know if you have any questions.

    ---
    Please 'Accept as answer' and ‘Upvote’ if it helped so that it can help others in the community looking for help on similar topics.

    0 comments No comments