Overview of Team Foundation Server
Overview of Team Foundation Server
With Visual Studio Team System (VSTS), Microsoft has made available an integrated
set of tools which are used by members of the software development team. Each of
these persons is going to play one or multiple roles. One can vary easily imagine
roles of Business Analyst, Project Manager, Technology Solution Architect,
Developer, tester and Release Manger. These roles use different tools which suit
them. For example Developers over the years have used Visual Studio to create code
and Project Managers use MS Project for creating, monitoring and controlling a
project. All the tools used by various roles work on the same data which makes them
integrated. These tools also need to access some services for managing the data.
The data storage and the common services are provided by a server component of
VSTS which is called Team Foundation Server.
In this article we will take an overview of Team Foundation Server and services
offered by Team Foundation Server.
Team Foundation Server (TFS)
TFS is the heart of VSTS. It pumps the required data and provides required services
to the various client applications. It allows all the team members to collaborate with
each other. It is a server which incorporates some of the best software technologies
created by Microsoft like ASP.NET 2.0, Windows SharePoint Services, SQL Server
2005 etc.
TFS Architecture
Logical Architecture
TFS is a multilayered server. It is divided in the layers of Data Layer and Application
Layer.
The data layer and the application layer can be on the same machine if the number
of clients is less than 20.
Data layer is implemented in SQL Server 2005. When TFS is installed it creates
number of database and tables for maintaining the data of the users, work items,
source control and other resources. Being implemented on SQL Server 2005, data
layer provides excellent scalability and performance.
Application layer is implemented through set of services which are available over the
network. Most of them are configured as webservices which makes them possible to
be accessed even over the Internet.
Physical Architecture
It is possible to create a single tier architecture for installations which do not demand
high scalability. It is suggested that for any non-trivial installation the data layer and
the application layer should be on different servers to meet the scalability and
reliability requirements. For meeting the requirements of teams which are
geographically scattered and connected through internet, TFS provides the ability to
use proxy to fulfill the requirements of distant users. Although proxy will be caching
the source code, main source control where changes are allowed to be stored is
where the main installation of TFS is. It is also suggested to have a separate build
server since the build activity is very highly CPU intensive. Keeping the main TFS and
build server on same machine with frequent builds may hamper the performance of
TFS adversely. Fig 2 shows the suggested physical architecture of TFS for any non
trivial installation.