The Lab Management Product – An Overview …

A lot is going on. The VSTS 2010 Beta 1 bits are out (as I had noted in my last post) and with that the interest in the product, both internally and externally, is peaking. The product team is busy interacting with customers and getting their feedback. There are also few feature modifications that are being worked on. So, while the Beta 1 is released, there is still a lot to be done. I will continue to walk you through the feature and functionality that’s in the product. As you install and play with the bits, do post your comments on areas of the product that you’d want additional information on.

The weather too is improving – the hot summer of Hyderabad is almost over and the monsoon is right around the corner. The clouds are building up and the oppressive heat is less now. The cooler climate will provide that extra burst of energy that we are all eager to put in on the product front and customer-connection front ;-)

One of the coolest products we are introducing with the VSTS 2010 release is the Lab Management product. This is an integrated solution that brings virtualization to the heart of application lifecycle management space. Here’s a glimpse of the capabilities that you get with the product:

  • Create libraries of virtualized multi-tier test configurations really quickly
  • Automatically deploy new builds of your application to these environments
  • Seamless integration of our dev and test capabilities with the virtualized environments
  • Take the “no-more no-repro”  theme to the next level by leveraging snapshots

In this post, I will cover the high level concepts of the Lab Management product.

Lab Management High Level Architecture

The diagram below shows a high level architecture diagram for Lab Management.

image

On the server side, Lab Management service is one of the many services running inside Team Foundation Server (TFS). This is what makes the Lab Management solution unique for software testers and developers. Now you can map your lab resources, such as, hosts, virtual machines and storage to Team Project Collections and Team Projects; thus aligning lab hardware needs with the business needs for the projects you are working on.

The lab management service in TFS uses System Center Virtual Machine Manager (SCVMM) for management of lab infrastructure and provisioning of virtual machines across multiple virtualization platforms. You get a copy of SCVMM with Lab Management.

On the client side, the “Microsoft Test and Lab Manager” tool (earlier known as “Camano”) is still the tool to manage your virtualized assets. This is a Windows Presentation Foundation (WPF) based rich client that allows you to define test plans, test suites, test cases and run them in physical or virtual environments.

Basic Concepts

Similar to Internet, hardware virtualization is a disruptive technology that is changing the face of computing. Therefore, it is important to understand some of the basic concepts around virtualization and how these are used in Lab Management to understand this paradigm shift.

Virtual Machine

A virtual machine (VM) is a computer within a computer, implemented in software. A VM emulates a complete hardware system, from processor to network card, in a self-contained, isolated software environment, enabling the simultaneous operation of otherwise incompatible operating systems on a single physical computer. Each operating system runs in its own isolated software partition.

Virtual Machine Snapshot

A virtual machine snapshot is a file-based snapshot of the state, disk data, and configuration of a VM at a specific point in time. A VM snapshot is similar in functionality to laptop hibernation state with the additional flexibility that a VM supports multiple snapshots. You can roll back the VM to any of the previously taken snapshots and continue operating from there. The picture below shows a snapshot tree for a Hyper-V VM.

image

Host

A host is a physical computer that hosts one or more virtual machines.

Host Group

A host group is a custom group of virtual machine hosts, which an administrator can create in SCVMM for ease of monitoring and management. Host groups can be used to allocate and determine the resources reserved for various team projects. For example, an administrator could create a host group named “Global Bank Hosts” for a team that works on “Global Bank” project and bind it to the corresponding team project in Team Foundation Admin Console.

Library Share

One of the beauties of virtual machines is that you don’t need to tie up a host if you are not actively using a VM. You can store it on a disk and bring it back to life on a host in a few minutes. SCVMM supports the concept of a library share where you can store virtual machines and other resources, such as, ISO images. The library share is nothing but a file share that is accessible to all the hosts. Similar to host groups, you can create multiple library shares for ease of management. For example, you could have a library share for storing pristine or golden OS images. Another library share could be used for storing VMs that have various application software components installed.

Environment

A typical multi-tier application consists of multiple roles, such as, Database Server, Web Server, Client, etc. Each role could be running on one or more computer. You could also have multiple roles running on a single computer. An environment is a set of roles that are required to run a specific application and the lab machines to be used for each role.

Managing environments for multi-tier applications is an error prone task today. Replicating the same environment at same or another site is even a bigger problem.

Lab Management surfaces environments as a first class entity. See the picture below for an example. It shows a list of environments running in the lab. The “DinnerNow Integration Testing 2” environment consists for two virtual machines, named, DinnerNow-Web and Dinner-SQL.

image

Environment brings with it ‘strong’ group notion. That is when you do an operation on an environment, such as, start, stop, take snapshot, etc., that operation is applied on all the virtual machines that are part of the environment. In the next blog, we will show you how to create, start, stop, delete, save, take snapshot and interact with rich self-documenting virtual environments using Lab Management.

Online Documentation

As you install the products, please refer to our online documentation which will give you lot more detailed information on the concepts and the capabilities. Peter Bateman and our documentation team would love to hear your feedback on the docs too!

Next

The above covers the basic concepts that you need to understand in order to leverage the Lab Management product. I will take you through some of the high level features in my next few posts…

Comments

  • Anonymous
    May 24, 2009
    PingBack from http://asp-net-hosting.simplynetdev.com/the-lab-management-product-%e2%80%93-an-overview-%e2%80%a6/
  • Anonymous
    May 25, 2009
    Thank you for submitting this cool story - Trackback from DotNetShoutout
  • Anonymous
    June 04, 2009
    This is really interesting. I am eager to try my hand on it.
  • Anonymous
    June 04, 2009
    This is really interesting. I am eager to try my hand on it.
  • Anonymous
    June 04, 2009
    An environment is a set of roles that are required to run a specific application and the lab machines to be used for each role SHOULD BE An environment is a set of roles (and the lab machines to be used for each role) that are required to run a specific application  ???
  • Anonymous
    June 12, 2009
    Ashraf - consider a 3-tier application consisting of a database tier, a business logic middle tier, and a web based front tier. These tiers chould each be running on a separate machine with its own configuration. In the Lab Management world, you will represent each tier with its own Virtual Machine, and then define a Lab Environment which will represent the application as a whole. You can then carry out operations at the Lab Environment level - for example, to deploy the application bits for all the tiers, bring up the application as a whole etc. Or you can connect to each of the virtual machines or Lab Systems that represent the tiers. I hope that answers your question.
  • Anonymous
    June 18, 2009
    Thanks for clarifying. So an environment may contain both physical and logical (VM) machines, that is required to run an application. Where as a machine pool is defined as to contain a set of physical machines to be managed. Please let me know if i am wrong.
  • Anonymous
    June 26, 2009
    The Lab Environments (LE) only contain Virtual Machines. Applications running in the VM's could access other physical machines, but the operations allowed on the LE will apply to the VM's only.
  • Anonymous
    April 20, 2011
    Hi Amit,Isn't this an exact replica of VMware's Lab Manager product release in 2006? Is there anything new about your product?