Manage your release

Improve the process of managing the release of your app. Deploy your app to a specific environment for each separate stage. Manage the steps in the process with approvals for each step.

Before you start

  • How many stages do you need? You might need only test and production. But if you need a different environment for a pre-production stage that needs testing, consider adding a pre-production stage. And if it’s important to track who approves that the dev work is ready to test, you might want to add a dev stage, too.

  • Who needs to approve each stage? You can have multiple approvers for each stage. You must add each approver as a user and assign them permissions.

  • What environments do you need for each of these stages to deploy your app? How many servers do you need for each environment to host your app? Do you need multiple web servers? Do you need a database server?

  • Do you want to use PowerShell, DSC or Chef to deploy your app? Do you already have scripts that you can use? Do you want to use Windows Azure for your servers in your environment? Or, do you want to use deployment agents?

  • What are the necessary steps to set up each server? Do you need to configure the web app each time? Do you need to stop and start services? Do you need to run a script from the command line? Think through all of these steps. You’ll add actions that perform these steps.

  • Are a set of these actions common to servers? If so, you can set up these actions once for each of these servers.

  • Have you set up a build definition for your app? Go here to learn how.

  • Do you want to use an on-premises server or the cloud to manage your releases? You can maintain your own Release Management server on-premises, or you can skip buying and maintaining a server and use Release Management as a service on Visual Studio Online instead.

Set up and start a release

Setup

Set up Release Management

You have the following options for managing your releases:

  1. Using Release Management as a service on Visual Studio Online: You need a Visual Studio Online account. You cannot use Chef and you can deploy only to vNext environments based on Azure IaaS services.

  2. Using an on-premises server: You need to install Release Management Server; do that here.

    Important

    This is a 90-day trial version of Release Management. For information about obtaining a non-trial version, see How to buy Release Management or Release Management Licensing. If you are an MSDN subscriber, you can download a non-trial version from the MSDN Subscriber website.

In both options, you'll use the Release Management Client to set up and run your releases. If you manage your releases with an on-premises server, install the client on the machine that runs Release Management Server, too.

Connect to Release Management

Start the Release Management Client and connect to your Release Management URL, either a Visual Studio Online URL or an on-premises server URL. If you are not prompted automatically, go to Administration, Settings.

Connect to Release Management

View the guide and checklist that is provided to help you to set up your release process. First add users, set up groups and control access.

Checklist

Set up stages

From the Administration tab, add a stage type for each step you need in the release process of your app.

Add a stage type for each step

View the stage types that you have added.

View the stage types that you have added

Set up servers and environments

You need to register the servers where your app will be deployed, and then set up environments that contain these servers. 

With Visual Studio 2013 Update 3 or later, you can use Windows PowerShell, Windows PowerShell Desired State Configuration (DSC), or Chef to deploy to a server without a deployment agent. If you already deploy using any of these tools, you can use the same scripts with Release Management. Or, you can use deployment agents to deploy to a server. So that you can tell which type of environment you create, environments of servers with deployment agents are called agent-based environments, and environments of servers without deployment agents are called vNext environments. Differences in how the Release Management Client is used, based on environment type, are called out in these instructions.

An environment can contain multiple servers. Each environment will be assigned to a stage later.

Use tags to make it easier to set up your servers when you deploy to a stage. Perform deployment actions based on tags and not server names. See Q&A below for more details.

You have the following options for setting up environments:

  • Set up environments without deployment agents. See the section Set up your environment in this topic.

  • Set up environments with deployment agents. See the section Set up servers and environments in this topic.

Create release template

You need to create a release template based on the environment and approvers of each stage where your app will be deployed. The release template also contains the deployment actions needed to deploy your app.

You have the following options for creating release templates:

  • Create a release template for environments without deployment agents. See the section Create a release template in this topic.

  • Create a release template for environments with deployment agents. See the section Create a release template in this topic.

Start a release

Start a new release.

Start a new release

Name the release and choose the release template that you want to use.

Select release template

The release process begins.

The release process begins

You can also start a release automatically from a build. Go here to find out how.

Approve steps in a stage

You can find any requests that are awaiting your approval.

When you are ready, approve the action for the stage. The release then continues to the next step or the next stage.

Approve stages

Manual steps must be approved before automated steps in a stage can continue.

If you're managing your releases with an on-premises Release Management server, you can also use the Release Management web browser client to find requests and approve actions for each stage. To access this client, use the following URL: "http://<your_team_foundation_server_name> :1000/ReleaseManagement".

Q & A

Q: Can I deploy components of my multi-tiered app separately?

A: Yes, you can create components with separate deployment information.

Add component to release template

Add the component to the release template. Now you can add this component to any stage that needs it.

Add component to stage

Q: What release actions can I add to the deployment sequence?

A: More details on actions are here.

Q: How do I copy a deployment sequence of one stage to another?

A: Use the shortcut menu of a sequence to copy it. Select the sequence where you want to paste it, and use its shortcut menu to Paste Deployment Sequence.

Copy deployment sequence

Q: How can tags for servers help me set up my environments for each stage?

A: Simply add tags for servers that require the same set of deployment actions for setup. For example, if you have multiple web servers in your environment then you can tag them all with WebServer. If only some of the web servers need a specific service configured on that machine then you can add a tag ServiceX for that.

View tags

Next set up the actions for each tag. After you drag the tag to the deployment sequence, drag each required action into the tag and configure the action. When a stage is deployed, these actions are performed on any server with this tag. So you only have to create the set of actions once for multiple servers.

Set up the actions for each tag

You can create multiple sets of actions for each tag if you need to add another action for a specific server between these sets.

You can copy the actions for a tag between stages and release templates. When you copy a sequence for a tag, you can remap these tag sequences to a different tag if you want.

Copy sequence

Q: Can I find out which user stories were completed or bugs fixed in a specific release?

A: If you are using TFVC for your version control system and a vNext release path, you can use the change summary to see these work items that were completed since the previous release. It makes it easier to know what to test and what to put in your release notes. More details are here.

Change summary

You can also view the change summary using the Release Management web browser client. To access this client, use the following URL: "http://<your_team_foundation_server_name>:1000/ReleaseManagement".

Q: Are there any system settings that I can change?

A: Yes. You can edit settings based on your system requirements.

Settings

Q: Can I opt out of the Visual Studio Experience Improvement Program for Release Management?

A: Yes. To be able to opt out, you must start the Release Management Server, Microsoft Deployment Agent or Release Management client using the Run as administrator option.

Using the Release Management Server or the Microsoft Deployment Agent: From the configuration screen, choose About and then uncheck Join the Visual Studio Experience Improvement Program.

Using the Release Management Client: From Administration, choose the Settings tab and from the Configure Services dialog box opt out of the program.

Configure services

Q: Are there any limitations to using Release Management in the cloud?

A: Yes. With Release Management in the cloud, you cannot use Chef and you can deploy only to vNext environments based on Azure IaaS services.

Q: Are there any hands-on labs to help me get started with Release Management?

A: Go here for hands-on labs to try Release Management and other ALM products.

Q: Is there a more detailed user guide?

A: Yes, you can download this pdf file.