Ensuring Team Foundation Server Availability
You can control when you take the servers offline for maintenance. However, you must also consider how you want to handle unexpected failures. By applying one of three basic strategies, you can make sure that the servers are available to the clients during maintenance or failures. The strategy you select is determined by the amount of down-time the users can tolerate and the topology of the system.
Typically, single-server and dual-server topologies can tolerate a reasonable amount of down-time for system maintenance or for restoration when a failure occurs. Complex systems can provide uninterrupted service through dedicated resources. The following strategies provide for varying degrees of Team Foundation Server availability.
Standard back up practices for databases For the data tier, you can maintain backups of databases and then use the backups to recover in a reasonable time. Use the same best practices as you would for any SQL Server database. This strategy does not require additional computer or maintenance resources. For more information, see Backing Up the Team Foundation Server.
Warm standby computer for application services You can decrease your recovery time for the services by setting up and maintaining a separate application-tier server as a warm standby. This strategy requires additional hardware and, therefore, additional maintenance to keep the computer updated and ready. For more information, see Managing Application-Tier Servers for Team Foundation.
The application tier cannot be part of a Web farm.
The computer must be kept up-to-date to match the primary computer. You can use this list to consider the additional maintenance required.
Operating system updates.
Changes to user accounts and permissions.
Changes to the Reporting Services encryption key.
Besides maintaining the computers, the Team Foundation Server administrator must respond to a failure by requesting an update to the DNS server database from the Domain Administrator and by using the TFSAdminUtil command-line utility. For more information, see How to: Activate a Fail-Over Application-Tier Server.
Clustering for the databases To provide uninterrupted service of a data tier, you can set up and maintain dedicated servers in a cluster. You might consider using a cluster if your organization already has the resources to set up and maintain a cluster. This strategy greatly increases the cost in resources and maintenance because the hardware and software requirements for the cluster are very exact. For example, the hardware must match identically and be from the approved hardware list. For more information, see the following topics on the Microsoft Web site: "How to: Create a New SQL Server 2005 Failover Cluster" for SQL Server 2005 and "How to: Create a New SQL Server Failover Cluster (Setup)" for SQL Server 2008.
Mirroring the databases Mirroring the Team Foundation data-tier server has several advantages. It allows you to take the principal Team Foundation data-tier server offline for updates, maintenance, or repair with minimal impact to your Team Foundation Server users. It also enables a quick recovery mechanism if the principal Team Foundation data-tier server becomes unavailable. You might consider a mirroring server for the Team Foundation data-tier server if your organization has the resources to set up and maintain a second Team Foundation data-tier server.