Team Foundation Server 2010 Beta 2 Best Practices Analyzer

In case you have been following my blog you might have noticed that I went “dark” for the last couple of months from a blogging perspective. Apologies for that. I am part of the team working on the Team Foundation Server Best Practices Analyzer and during the last couple of months we were very busy rewriting the Best Practices Analyzer so that it can validate a Team Foundation Server 2010 Beta 2 deployment.

Team Foundation Server 2010 Beta 2 Best Practices Analyzer is part of the Team Foundation Server PowerTools 2010 Beta 2 which you can download from here. Unlike the rest of the PowerTools you can install Best Practices Analyzer on any client machine that has .NET Framework 2.0 and PowerShell installed.

Before getting into the details I wanted to give you a little bit of background information about the Best Practices Analyzer tool and the Best Practices Analyzer team. When Team Foundation Server 2005 was released, the product unit has heard a lot of feedback from customers that the product was difficult to install and configure but it was even more difficult to troubleshoot incorrectly configured servers. In order to address this feedback the Team Foundation Server product unit has started the Best Practices Analyzer effort. This is a voluntary effort and the team is formed by a mixture of people from the Team Foundation Server product unit and Customer Service and Support organization.

The Team Foundation Server 2008 Best Practices Analyzer was built on top of the Windows Server System SDK developed by the Exchange team. This SDK was discontinued, so when we started working on the new version of the next version of Best Practices Analyzer we have spent a significant amount of time looking at new possible platforms. A possible option was to use Service Modeling Language however after we reviewed the documentation and created couple of prototypes we realized that it did not fit the needs of a tool like the Best Practices Analyzer. Service Modeling Language was not designed for implementing Best Practices Analyzer tools for an environment spanning across multiple machines. We have passed along our feedback to the team developing the Service Modeling Language and they will improve the platform in the next version. We hope to use Service Modeling Language for developing the Best Practices Analyzer for the version of Team Foundation Server which will come after Team Foundation Server 2010.

The team has come to the conclusion that since the current SDK met our needs, we should continue using it until a better platform would be available. Since we have chosen to use the same SDK as before we had the opportunity to create a Best Practices Analyzer tool which could handle all three versions of Team Foundation Server (2005/2008/2010). We have consulted some of our key stakeholders and in order to align with the rest of the PowerTools we have taken the decision to support only Team Foundation Server 2010.

The team’s goal for the Team Foundation Server PowerTools 2010 Beta 2 release was to review the knowledge base of the previous version of the Best Practices Analyzer, port the rules that apply to Team Foundation Server 2010 Beta 2, add coverage for the new Lab Management feature, and add ten new rules. We also wanted to make sure that we kept our 100% documentation coverage for our rules.

As soon as we started coding, we faced our first challenge which was related to scouting the machines involved in the Team Foundation Server deployment. In order for the Best Practices Analyzer to validate the configuration of a Team Foundation Server deployment, the tool must identify all the machines that are part of the deployment along with the various components that are installed on each machine.

In the new implementation the Best Practices Analyzer is using the Team Foundation Server catalog to identify the machines that are part of the deployment. The catalog is a central point for managing and discovering all of the resources that make up a full Team Foundation Server deployment. The drawback of this approach is that in case the catalog is not available, the Best Practices Analyzer will report only one error message. For the RTM release we will be looking into extending the scouting mechanism.

We have made some minor changes in the user interface that I would like to call out:

TFSBPA1

  1. Scan type – the PowerTools 2010 Beta 2 release supports only the “Health Check” scan type. The team has decided to remove the “Install Check” scan type for the moment as we would like to better understand the value of running the Best Practices Analyzer on a machine before installing Team Foundation Server.
  2. Perform scan on – the PowerTools 2010 Beta 2 release does not perform any data collection and validation of the client components. For RTM we will investigate what client side data should be collected and validated.
  3. Team Foundation Server URL – I would like to explicitly call out for attention when entering the URL of the Team Foundation Server that you would like to scan. Please make sure that if Team Foundation Server is install in a virtual directory, you specify that in the URL (by default the Team Foundation Server website is installed in the “tfs” virtual directory). Do not include the Team Project Collection name in the URL. The tool has a built in mechanism to initialize the value of the URL however it has some flaws so please review the value before running the scan.

Closing the post I would like to write a little bit about the future of the Best Practices Analyzer. The PowerTools 2010 Beta 2 release of the Best Practices Analyzer represents a great foundation and we will spend the between now and the time Team Foundation Server 2010 will be released to expand the rule base of the tool. We have already partnered with Grant Holliday to incorporate his learning from supporting the internal VSTS Pioneer server. I am also very pleased that several members of the product unit have already reached out to us expressing interest in contributing to the Best Practices Analyzer.

Please feel free to download the PowerTools 2010 Beta 2 and give the Best Practices Analyzer a go on your Team Foundation Server 2010 Beta 2. In case you have any feedback regarding the tool or in case you would like us to add a specific rule to the Best Practices Analyzer please feel free to post your feedback to this blog or send me an email at lszomoru@microsoft.com.