The TFS 2013 architecture


TFS 2013 is built on multilevel scalable architecture. To set up the TFS environment for the project team, it's very important to figure out the architecture of TFS in order to understand the business need deployment strategy.

TFS can be deployed in three ways:

  • On-premises with a single server or multiple servers across one domain or workgroup or domains

  • On-cloud, where all deployments are server-hosted by Microsoft

  • Hybrid Deployment, with TFS features as well as Visual Studio Online (VSO)

Based on business requirements, TFS architecture topology can be decided by considering the following:

  • The Application, Data, and Client tiers

  • The location of servers

  • TFS Build computers and their locations

  • Their necessity for a TFS server proxy

  • Ensuring client access for the service on port 443

  • Web services, databases, and object models

  • Default TFS ports and protocols

  • Permissions on TFS components

TFS on-premises

With TFS on-premises, we can extend the features and functionalities of the Team Foundation by writing the application either on the client side or on the application server. The TFS architecture is mainly divided into 4 parts:

  • Client side: By using a client object model, we can extend TFS capabilities that relate to version control, tracking work items, and building on the client side.

  • Application tier: By using a server object model, we can extend TFS functionalities on an application tier that relate to integrating other tools and data into TFS.

  • Data tier: This includes data, stored procedures, and other associated logic. The data tier consists of the following databases within a SQL server:

    • Configuration database

    • Application warehouse

    • Analysis service database

    • Team project collection database

  • Build machine: We can customize the build process using the build process object model on a build machine that relates to creating build processes and activities, as shown in the following TFS Architecture diagram:

    For instance, TFS server hosts multiple team projects and each project will have a repository that will have four branches such as Development, System Integration Testing (SIT), User Acceptance Test (UAT), and Production, as shown in the following team project hierarchy:

    The code in the repositories resides in the data tier, which is accessible using a client application stored on the client side through the application tier. For each branch, you can configure one or more multiple build processes. These builds requires a build server. We can have one build server for all the builds or a separate build server for each repository; alternatively, it can be share a build server between two repositories.

Visual Studio Online

Microsoft also came up with the choice of using Visual Studio Online (VSO), which facilitates all server-side deployments. For example, all source code, work items, build configuration, and team features are hosted on-cloud by Microsoft. This feature immensely simplifies deployment, as we only need to bother with client-side components and Internet access.

In order to access cloud-based TFS, we require a Microsoft account to connect to the service on-cloud using a web browser. Using Visual Studio Online (VSO), we can perform activities such as creating team projects, adding members to the team, and working as you wish, as you do for locally deployed TFS; this is like getting rid of the administering servers. The following screenshot shows the flow of Visual Studio Online (VSO) and Team Project:

In Visual Studio Online (VSO) deployment, the application tier, data tier, and build server are hosted on the cloud via the Microsoft Cloud platform and SQL server Azure technology.

Hybrid deployment

However, there are still arguments for having TFS on-premise and Visual Studio Online (VSO). The following points are the main differences between TFS on-premises and TFS on-cloud:

Feature

TFS on-premise

TFS on-cloud (VSO)

Customized work items and process templates

X

SharePoint and Project server Integration

X

Data warehousing and Reporting service

X

CodeLense Support

X

Active Directory Support

X

Data availability within the network

X

Application Insights

X

Cloud Load Testing

X

Always on the latest version

X

Simple installation

X

Virtual Team Rooms

X

Supports Microsoft IDs

X

Team Foundation Server has customizable work items and process templates, enterprise-level reporting, and incredible scalability. Visual Studio Online (VSO) has elastic load testing, Application Insights, and deep integration with Azure. It looks as if enterprises have to choose one or the other, but it's not always true. We can have the advantage of both to add more power to Application Life Cycle Management.

There are various integration tools available for TFS and Visual Studio Online (VSO). All are open source and you can choose one as per your requirements; they are as follows:

  • Code Plex Integration Tools

  • Team Foundation Server Integration Tools

  • ALM Rangers