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.
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.
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.
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.
A host is a physical computer that hosts one or more virtual machines.
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.
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.
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.
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.
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!
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…