Concurrent release pipelines in Team Foundation Server

Last Update: 3/21/2017

TFS 2017 | Team Services

This article describes the licensing model for Release Management in Team Foundation Server 2017 (TFS 2017). We don't charge you for Team Foundation Build (TFBuild) so long as you have a TFS Client Access License (CAL).

A TFS concurrent pipeline gives you the ability to run a single release at a time in a team project collection. You can keep hundreds or even thousands of release definitions in your collection. But, to run more than one release at a time, you need additional concurrent pipelines.

One free concurrent pipeline is included with every collection in a Team Foundation server. Every Visual Studio Enterprise subscriber in a Team Foundation server contributes one additional concurrent pipeline. You can buy additional private pipelines from the Visual Studio Marketplace.

Do I need concurrent pipelines in TFS 2015 or TFS 2013? Short answer: no. More details

How a concurrent pipeline is consumed

For example, a collection in a Team Foundation server has one concurrent pipeline. This allows users in that collection to run only one release at a time. When additional releases are triggered, they are queued and will wait for the previous one to complete.

A release requires a concurrent pipeline only when it is being actively deployed to an environment. Waiting for an approval does not consume a concurrent pipeline. However, waiting for a manual intervention in the middle of a deployment does consume a concurrent pipeline.

Concurrent pipelines simple example

  1. FabrikamFiber Release 10 is first to be deployed.
  2. Deployment of FabrikamFiber Release 11 starts after Release 10's deployment is complete.
  3. Release 12 is queued until Release 11's deployment is active.
  4. Release 11 waits for an approval. Release 12's deployment starts because a release waiting for approvals does not consume a concurrent pipeline.
  5. Even though Release 11 is approved, it resumes only after Release 12's deployment is completed.
  6. Release 11 is waiting for manual intervention. Release 13 cannot start because the manual intervention state consumes a concurrent pipeline.

Manual intervention does not consume a pipeline in TFS 2017 Update 1 and newer.

Concurrent processing within a single release

Concurrent processing within a single release does not require additional concurrent pipelines. So long as you have enough agents, you can deploy to multiple environments in a release at the same time.

For example, suppose your collection has three concurrent pipelines. You can have more than three agents running at the same time to perform parallel operations within releases. For instance, notice below that four or five agents are actively running jobs from three concurrent pipelines.

Concurrent pipelines with additional agents example

Concurrent pipelines in an organization

For example, here's an organization that has multiple Team Foundation Servers. Two of their users have Visual Studio Enterprise subscriptions that they can use at the same time across all their on-premises servers and in each collection so long as the customer adds them as users to both the servers as explained below.

Concurrent pipelines in an organization example

Determine how many concurrent pipelines you need

You can begin by seeing if your teams can get by with the concurrent pipelines you've got by default. As the number of queued releases exceeds the number of concurrent pipelines you have, your release queues will grow longer. When you find the queue delays are too long, you can purchase additional concurrent pipelines as needed.

Simple estimate

A simple rule of thumb: Estimate that you'll need one concurrent pipeline for every 10 users in your server.

Detailed estimate

In the following scenarios you might need multiple concurrent pipelines:

  • If you have multiple teams, if each of them require a CI build, and if each of the CI builds is configured to trigger a release, then you'll likely need a concurrent pipeline for each team.

  • If you develop multiple applications in one collection, then you'll likely need additional concurrent pipelines: one to deploy each application at the same time.

Use your Visual Studio Enterprise subscription benefit

Users who have Visual Studio Enterprise subscriptions are assigned to VS Enterprise access level in the Users hub of TFS instance. Each of these users contributes one additional concurrent pipeline to each collection. You can use this benefit on all Team Foundation Servers in your organization.

  1. Browse to Server settings, Access levels.

    control-panel-server-vs-enterprise-access-levels

    URL example: http://{your_server}:8080/tfs/_admin/_licenses

  2. On the left side of the page, click VS Enterprise.

  3. Add your users who have Visual Studio Enterprise subscriptions.

After you've added these users, additional licenses will appear on the resource limits page described below.

Purchase additional concurrent pipelines

If you need to run more concurrent releases, you can buy additional private pipelines from the Visual Studio marketplace. Since there is no way to directly purchase concurrent pipelines from Marketplace for a TFS instance at present, you must first buy concurrent pipelines for a Team Services account. After you buy the private pipelines for a Team Services account, you enter the number of purchased concurrent pipelines manually on the resource limits page described below.

View and manage concurrent pipelines

  1. Browse to Collection settings, Build and Release, Resource limits.

    control-panel-account-build-and-release-resource-limits

    URL example: http://{your_server}:8080/tfs/DefaultCollection/_admin/_buildQueue?_a=resourceLimits

  2. View or edit the number of purchased concurrent pipelines.

Q&A

Who can use the system?

TFS users with a TFS CAL can author as many releases as they want.

To approve releases, a TFS CAL is not necessary; any user with stakeholder access can approve or reject releases.

Do I need concurrent pipelines to run builds on TFS?

No, on TFS you don't need concurrent pipelines to run builds. You can run as many builds as you want at the same time for no additional charge.

Do I need concurrent pipelines to use release management in versions before TFS 2017?

No.

In TFS 2015, so long as your users have a TFS CAL, they can use release management for no additional charge in trial mode. We called it "trial mode" to indicate that we would eventually charge for release management. Despite this label, we fully support release management in TFS 2015.

In TFS 2013 there is no change in the licensing of release management features.

How is release management licensed in Team Services?

See concurrent pipelines in Team Services.