What is Release Management?

Last Update: 4/7/2017

Team Services | TFS 2017 | TFS 2015

Release Management is a service in Visual Studio Team Services and Team Foundation Server (update 2 and later) and an essential element of DevOps that helps your team continuously deliver software to your customers at a faster pace and with lower risk. You can fully automate the testing and delivery of your software in multiple environments all the way to production, or set up semi-automated processes with approvals and on-demand deployments.

A release definition defines the environments for deploment

  1. Watch this video - see Release Management in action.

  2. Decide if it suits your scenarios - use the simple checklist.

  3. See how it works - get a basic understanding of the process.

  4. Get started now - follow the steps to deploy your apps.

Is Release Management for you?

Consider using Release Management if:

  • You develop applications and need to deploy them regularly to any platform, public or private cloud services, or App stores. Release Management has many out-of-the-box tasks to deploy a variety of applications. If you cannot find an out-of-the-box task to deploy your application using Release Management, consider this: if you can script the deployment of your application using Shell scripts or PowerShell scripts, utilities such as Ant or Maven, batch files or EXE utilities, then you can deploy it using Release Management. Release Management also integrates with third party deployment systems such as Chef and Docker.

  • You use a continuous integration (CI) system and are looking for a fully-fledged continuous delivery or release management system. Whether you use Team Build from Team Services or Team Foundation Server, or Jenkins as your CI system, you can set up Release Management to automatically deploy new builds to multiple environments. Even if we do not yet support integration with your favorite CI system or artifact repository, you can still write custom tasks to download and deploy artifacts from it.

  • You need to track the progress of releases. If you use several environments for your tests, Release Management helps you monitor whether a release has been deployed and tested on each of these environments. Release Management also tracks whether an issue fixed by a developer, or a product backlog item completed by your team, has been deployed to a specific environment.

  • You need control of the deployments. Release Management lets you specify which users can change the configuration of an environment, or approve the release to be deployed into a particular environment. If there is a problem with your deployment, Release Management helps you roll back to a previous deployment, and provide all the logs in one place to help you debug the problem.

  • You need audit history for all releases and their deployments. Release Management provides a history of all changes to the definitions, configurations, and deployments. It also provides a history of all the activity performed during each deployment. Each release is accompanied by a listing of new features and developer commits that went into that release.

How does Release Management work?

The Release Management service stores the data about your release definitions, environments, tasks, releases, and deployments in Team Services or Team Foundation Server.

Release management components

Release Management runs the following steps as part of every deployment:

  1. Pre-deployment approval: When a new deployment request is triggered, Release Management checks whether a pre-deployment approval is required before deploying a release to an environment. If it is required, it sends out email notifications to the appropriate approvers.

  2. Queue deployment job: Release Management schedules the deployment job on an available automation agent. An agent is a piece of software that is capable of running tasks in the deployment.

  3. Agent selection: An automation agent picks up the job. The agents for Release Management are exactly the same as those that run your Builds in Team Services and Team Foundation Server. A release definition can contain settings to select an appropriate agent at runtime.

  4. Download artifacts: The agent downloads all the artifacts specified in that release (provided you have not opted to skip the download). The agent currently understands two types of artifacts: Team Build artifacts and Jenkins artifacts.

  5. Run the deployment tasks: The agent then runs all the tasks in the deployment job to deploy the app to the target servers for an environment.

  6. Generate progress logs: The agent creates detailed logs for each step while running the deployment, and pushes these logs back to Team Services or Team Foundation Server.

  7. Post-deployment approval: When deployment to an environment is complete, Release Management checks if there is a post-deployment approval required for that environment. If no approval is required, or upon completion of a required approval, Release Management proceeds to trigger deployment to the next environment.

Get started now!

Simply follow these steps:

  1. Create a release definition that defines the deployment processes and targets.

  2. Create and deploy releases based on your release definition.

  3. View and manage your releases using the comprehensive UI and tools.

  4. Monitor and debug your releases during and after the deployments.

Help and support