Our development team is, as many of you already know, deeply integrated with Visual Studio & Team Foundation Server (TFS) 2010. It shouldn’t shock anyone to hear that we are also taking a deep investment on the new Application Lifecycle Management (ALM) functionality exposed as part of Visual Studio 2010. A couple months back we started working hard at getting Microsoft Test Manager (MTM) and Microsoft Lab Manager (MLM) working for management of our test cases and infrastructures.
Lab Manager is designed to facilitate development teams by offering the following:
Lab Manager has a great number of pre-requisites which often development teams will not have the built-in skill sets to make use of. For some companies, development teams might utilize resources owned and operated by other parts of the IT organization. This is the purpose of my post today is to focus on the latter where your software development team decides to utilize resources owned and operated by others in IT.
The first thing to share when seeking out the IT staff who owns and runs your Virtual Machine Manager (VMM) infrastructure is to let them know that Microsoft Lab Manager does not support deployments to clusters. This is by design though one that will certainly make most VMM administrators frown upon as everyone knows that VMM certainly supports it, though MLM does not.
The first question, I anticipate, asked by many who run VMM for organizations and have testers and developers asking for access is – what type of access?
The first thing to note is that Microsoft Lab Manager does not require each “user” of there application to have administrator rights to your VMM server. All work is performed by the
There are a few steps that the VMM administrator (or a delegated individual) will need to take to setup the development team for success. In this section, I will do my best to summarize the steps required for a VMM administrator to get everything ready for integration with TFS.
In the following sections, I will go a bit deeper into each of these steps to hopefully give context around the checklist item. For now, though, you can simply trust that if you do the above that Lab Manager will be successful when setup in the TFS Administration console.
Unless you are a very small IT environment, very seldom do VMM administrators use the default Host Group that is shipped as part of VMM 2008/R2. The host group, All Hosts, represents the top of the virtualization tree and typically doesn’t have any physical hosts. Instead, administrators often will “group” virtualization physical hosts into something called host groups which are a way of putting “like” resources together and managing them as a unit. Hosts groups offer VMM administrators the ability to do the following:
In the image below, I want to show you how one VMM Administrator might build their host groups when running production level resources along with TFS Lab Manager resources. In the case above, we have physical host groups which include production clusters, non-production clusters, and lastly the resources dedicated to TFS Lab Manager Hosts. For today’s post, I’m focusing on the latter which is TFS Lab Manager Hosts. To create a host group in VMM, you do the following -
There are a couple of steps involved in the library assets as mentioned above. I hope to clarify those below and make it make sense to a VMM administrator.
The first thing that a user of Lab Manager will need to do on a per-project basis is to import templates that have already been created by the VMM Administrator. This is a key step that enables the dynamic creation of machines that serve as a “Complete” set of resources needed to test a Web application. What do I mean by a complete set of resources?
By today’s standards, not many applications are necessarily built on a single machine. They often include front-end application tier servers along with Web services and Data services residing on other servers. All these servers make up a single, “complete” set of resources needed to test new builds.
In the above example, we have two machines that serve as an “environment” – ConfigMgr Server & Database Server. This deployment would deploy two servers and configure them to communicate with each other so that we can do testing of our application(s).
The first step is to create master templates that will serve as the basis for your machines. These templates include both hardware and Operating System configurations and should be available on the library server serving the TFS Lab Host group.
For information on creating these master templates, see my blog post around creation of Library objects.
The next step is to “import” the master templates to the project which needs to use them. After importing, you can create any number of machines from these templates and these result in a unique “new” template in VMM. This is another reason for ensuring that the library is one that is separate from other libraries as this will seriously litter your VMM library with ugly templates. (see below)
To import in Lab Manager, do the following:
The nice thing is the Default role, you can give it a friendly name through type rather than choosing on of the default role types.
After the work has been done on the VMM side, there are a couple of things that need to be done on the TFS side. Those are listed below.
First, install the VMM Administrator’s Console on the TFS Application Tier server. To do this, simply use the VMM setup.exe.
Second, you need to enable Lab Management. To do this, do the following:
Third, and most importantly, enable Lab Manager for the TFS collection(s). To do this, you will do the following:
That’s it. You should be working. If not, there are multiple documents that walk you through in much more detail listed below -
In today’s post, I focused a bit on hopefully bridging the gap for those VMM administrators who will get attacked by software engineering organizations asking for resources from your VMM pool. I don’t expect many VMM administrators to be overly familiar with MTM & MLM so I hoped to create a “cliff notes” for those Admins by sharing what they will need to do to support MLM as well as what to expect when using MLM integrated into VMM. If succeeded, then you have carved off a set of physical hosts in the form of host groups that are used by MLM and also built library resources for them to utilize.