One of the greatest features for TFS 2010 is the ability to create new project collections in the TFS system. This gives you the ability to separate projects into logical collections and manage them as individual groupings which can be a huge benefit. There are, however, some things you should consider when creating collections.
- Each collection gets its own database on the SQL data tier. This means you have the ability to move it across different database servers and manage it individually. Also, this gives you a bunch more options in scalability and monitoring.
- This makes the collection portable, meaning you can detach it and transfer it to another TFS server. This is especially useful if you are in a consulting environment and will need to transfer just that project or suite of projects back to the client.
- Scalability! This means that you can create new collections to spread your databases across SQL servers or instances to isolate their performance and risk profiles.
- Each collection has its own set of process templates, sites, and linkages. This gives you an opportunity to isolate projects from each other.
- You’ll need a separate build controller for each collection. If you are not planning for the proliferation of build controllers, you may suddenly find yourself supporting more machines than you’d anticipated. There is a hack that let’s you map multiple collections to a build controller, but it is not supported.
- Having multiple collections creates an additional support and backup burden. The backup scenarios with TFS are not simple and they must be done by database. This needs to be added to the “new collection” SOP. If you have a dedicated SQL server/ instance, you can add these procedures to the Master database so they’ll be created automatically.
- While you can change things between collections and have TFS function separately, there is only one data warehouse. Mismatches in the data types or aggregations in the cubes will cause TFS to throw errors and stop data collection until the conflict is resolved.
- many of the permissions are set at the collection level. As you create new collections, you’ll need to manage the permissions individually.
All in all, there are huge benefits in having multiple project collections, but you need to plan them carefully and ensure that you are accounting for the additional overhead needed to make them work well.