A couple of weeks ago I upgraded our Team Foundation Server from 2005 to 2008. This is my story…
I was very nervous about upgrading the server as the installation procedure requires un-installation of the existing TFS2005 version and an install of TFS 2008 over the top. The source code and work items are very important asset for us and loosing them, even for a day, would cost us a lot of money (and be somewhat embarrassing). So, I was very careful about the process.
Preparation
I needed to ensure that I could recover our current TFS installation should the upgrade go pair-shape so I created a Virtual Server image on our main domain with a clean install of TFS 2005. I then restored the TFS setup to this new server, which had a new name. Microsoft provide detailed instructions on how to move a TFS install here: http://msdn.microsoft.com/en-us/library/ms404860(VS.80).aspx. This process also taught me how to do a disaster recovery – a very useful and necessary skill!
The creation of the VM, getting it on the domain, installing TFS, migrating the databases and reconfiguring the server took me the best part of 3 days. I took my time and followed the instructions precisely. If I had to do this again it don’t think it would take more than a day.
I also migrated the SharePoint content to the new server. This is documented in the above MSDN article.
I tested this new install, and while it was slow, it all worked and developers could connect and do work.
The testing highlighted a couple of issues. I had installed Conchango’s Scrum Template on TFS but it was not being used so I had uninstalled it. Unfortunately it had made some changes to the TfsWarehouse database that did not get removed during uninstall. The test scrum projects were deleted but I didn’t want to futz with the database directly so the scrum stuff had to stay.
Doing it for real
After all the preparation, the upgrade process was somewhat anti-climatic. It took an hour and half to uninstall TFS 05 and install TFS 08. Again, the instructions provided my Microsoft are precise and simple to follow.
I next updated Team Build and Web Access with the latest versions, Again, this was very simple and painless.
Problems
On the Monday morning following the upgrade I found that the Warehouse cube was not being updated. In fact, some of the dimensions were empty. It turned out there was a permissions issue with the analysis services. The error in the event log was :
Some or all identity references could not be translated.
A bit of Googling around quickly solved that one: http://blog.salvoz.com/2008/01/26/TFSWarehouseIssues.aspx
During my test run I had a lot of trouble with the SharePoint Services upgrade. As we don’t use the project portals very much. I made the decision to stick with WSS2 for now. Next time one of our SharePoint config guru’s is in town I may get it updated, or we might just switch to using the corporate MOSS platform.
I’ve now also notices that some Team Builds are failing. It appears that projects using our custom Work Items are having a problem building. I haven’t had time to investigate this yet, but I don’t expect it will be too hard to solve.
Recommendations
If you need to do any work with TFS read the MSDN documentation first – it’s exhaustive and complete. For any issues or problems Google first then post a message on the MSDN TFS forums – you will almost always get a quick answer from a Microsoft expert, MVP or other similarly brainy person.
Put your hand up if you can afford to lose all your source code – for even a day. Hmmm, I thought so. Create a disaster recovery plan and test it. Yet again, Microsoft provide all the documentation you need for this on MSDN, but here’s what I did:
- Create a VM with Windows Server installed on it.
- Add the server to the same domain as your current TFS install.
- Install TFS and all the same bits you have on your production system.
- Backup the VM.
- Now test the DS plan on the VM using the move instructions from MSDN (above).
- If you update your production server then remember to update and test the DS system again. In fact, test the DS system regularly - once a year or more often.
In summary I found the upgrade a very pleasant experience, aided greatly by the detailed and copious documentation from the tireless TFS team at Microsoft and the large volume of community blogs and forums.