Geeks With Blogs
Visual Studio ALM Blog by Jahangeer

Here, I’m going to discuss some key Architecture changes and concepts in Setup and Configuration of  TFS 2010 when compared to TFS 2008.

In TFS 2010 Installation, First you need to do the Installation and then you have to configure the Installation Feature from the available features. This is bit similar to SharePoint Installation, where you will first do the Installation and then configure the SharePoint Farms.

1) Installation Features:

a) Basic: It is the most compact TFS installation possible. It will install and configure Source Control, Work Item tracking and Build Services only. (SharePoint and Reporting Integration will not be possible).
b) Standard Single Server: This is suitable for Single Server deployment of TFS. It will install and configure Windows SharePoint Services for you and will use the default instance of SQL Server.
c) Advanced: It is suitable, if you want use Remote Servers for SQL Server Databases, SharePoint Products and Technologies and SQL Server Reporting Services.
d) Application Tier Only: If you want to configure high availability for Team Foundation Server in a Load Balanced Environment (NLB) or you want to move Team Foundation Server from one server to other or you want to restore TFS.
e) Upgrade: If you want to upgrade from a prior version of TFS.

Note: One more important thing to know here about  TFS 2010 Basic is that,  it can be installed on Client Operations Systems(Windows 7 and Windows Vista SP3), Where as  you cannot Install previous version of TFS (2008 and 2005) on client OS.

2) Team Project Collections:

Connect to TFS dialog box in TFS2008


In TFS 2008, the TFS Server contains a set of Team Projects and each project may or may not be independent of other projects and every checkin gets a ever increasing changeset ID irrespective of the team project in which it is checked in and the same applies to work items  also, who also gets unique Work Item Ids.The main problem with this approach was that there are certain things which were impossible to do; those were required as per the Application Development Process.

a) If something has gone wrong in one team project and now you want to restore it back to earlier state where it was working properly then it requires you to restore the Database of Team Foundation Server from the backup you have taken as per your Maintenance plans and because of this the other team projects may lose out on the work which is not backed up.

b) Your company had a merge with some other company and now you have two TFS servers. One TFS Server which you are working on and other TFS server which other company was working and now after the merge you want to integrate the team projects from two TFS servers into one, which is almost impossible to achieve in TFS 2008. Though you can create the Team Projects in one server manually (In Source Control) which you want to integrate from the other TFS Server, but will lose out on History of Change Sets and Work items and others which are very important.There were few more issues of this sort, which were difficult to resolve in TFS 2008.
To resolve issues related to above kind of scenarios which were mainly related TFS Maintenance, Integration, migration and Security,  Microsoft has come up with Team Project Collections concept in TFS 2010.This concept is similar to SharePoint Site Collections and if you are familiar with SharePoint Architecture, then it will help you to understand TFS 2010 Architecture easily.

Connect to TFS dialog box in TFS 2010:

In above dialog box as you can see there are two Team Project Collections, each team project can contain any number of team projects as you can see on right side it shows the two Team Projects in Team Project Collection (Default Collection) which I have chosen.
Note: You can connect to only one Team project Collection at a time using an instance of  TFS Team Explorer.

How does it work?
To introduce Team Project Collections, changes have been done in reorganization of TFS databases. TFS 2008 was composed of 5-7 databases partitioned by subsystem (each for Version Control, Work Item Tracking, Build, Integration, Project Management...)
New TFS 2010 database architecture:
TFS_Config: It’s the root database and it contains centralized TFS configuration data, including the list of all team projects exist in TFS server.
TFS_Warehouse: The data warehouse contains all the reporting data of served by this server (farm).
TFS_* : This contains individual team project collection data. This database contains all the operational data of team project collection regardless of subsystem.In additional to this, you will have databases for SharePoint and Report Server.

3) TFS Farms:  As TFS 2010 is more flexible to configure as multiple Application tiers and multiple Database tiers, so it will be more appropriate to call as TFS Farm if you going for multi server installation of TFS.
NLB support for TFS application tiers – With TFS 2010: you can configure multiple TFS application tier machines to serve the same set of Team Project Collections. The primary purpose of NLB support is to enable a cleaner and more complete high availability than in TFS 2008. Even if any application tier in the farm fails then farm will automatically continue to work with hardly any indication to end users of a problem.
SQL data tiers: With 2010 you can configure many SQL Servers. Each Database can be configured to be on any SQL Server because each Team Project Collection is an independent database. This feature can also be used to load balance databases across SQL Servers.These new capabilities will significantly change the way enterprises manage their TFS installations in the future. With Team Project Collections and TFS farms, you can create a single, arbitrarily large TFS installation. You can grow it incrementally by adding ATs and SQL Servers as needed.

Posted on Saturday, May 22, 2010 3:47 PM Team Fondation Server | Back to top

Comments on this post: TFS 2010 Basic Concepts

# re: TFS 2010 Basic Concepts
Requesting Gravatar...
I wanted to know the way to backup single Team Project Collection database or if possible to backup a single project from a collection. But by far i have got a single break through to backup a single project from a collection. Any help is appreciable.
Left by Altaf on Jul 22, 2010 2:10 PM

# re: TFS 2010 Basic Concepts
Requesting Gravatar...
Hi Altaf,

1) Each Team Project Collection is a single database that stores all the data for every project in that collection. You can back up and restore this database independently of other collections. This can be done by performing normal SQL Database backup process.
2) It’s not possible to backup single Team Project alone as I mentioned that Project Collection Stores all the data for all Team projects under it in a single database. So, at the least you can backup the data at Team Project Collection level only.
Why you want to backup Single Team Project Collection data only?
If you want to move it to restore on another server, then you have to follow these steps.
First you have to Stop the Collection and also Detach the Project Collection from TFS Administration Console, then you can do a database backup.
Move the backup on the other machine. In the destination machine, detach the original project collection, then restore the database backup from the source machine and reattach the collection again.
Please do let me know if you have more questions on this!!
Left by Jehan on Jul 25, 2010 2:02 PM

# re: TFS 2010 Basic Concepts
Requesting Gravatar...
Please can me know the more details of how can we back up and restore the datas of team project ?.
Left by Sthanu Subramaniyan on Jul 28, 2010 11:05 AM

# re: TFS 2010 Basic Concepts
Requesting Gravatar...
@Sthanu: As already explained, It’s not possible to backup single Team Project alone as the Project Collection Stores all the data for all Team projects under it in a single database. So, at the least you can backup the data at Team Project Collection level only.
Left by jehan on Aug 01, 2010 12:36 AM

# re: TFS 2010 Basic Concepts
Requesting Gravatar...
Can multiple application-tiers connect to a single tfs database without Microsoft NLB? We are using hardware based load balancing for our web servers. Thanks,
Left by Max on Feb 04, 2011 10:20 PM

Your comment:
 (will show your gravatar)

Copyright © Jahangeer | Powered by: