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?
  • 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 using Team Build? Go here to learn how.

Set up and start a release Set up stages, servers and environments; create release path and template; start release 

Deployment agents are used by release management to deploy your app to servers. With Visual Studio 2013 Update 3, you have the option to 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.

Set up stages

  1. If you haven't yet installed release management, do that here. You need to install the Release Management Server and Client. (Release Management is currently only supported with an on-premises Team Foundation Server.)

  2. Open the release management client. 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.

    Getting started screen to help with your release process steps

    The following steps guide you through the essential parts of the release process.

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

    Add a stage type

    View the stage types that you have added.

    Administration type, manage pick lists

Set up servers and environments

If you want to use PowerShell, DSC or Chef to deploy your app, go here for instructions on how to set up your environments and servers and your release path to use for your release template. Otherwise if you are using a deployment agent, follow these steps.

  1. Install and configure a deployment agent to any machine that will be part of the environment used to deploy your app. Skip this step if you plan to use Windows PowerShell, DSC or Chef to deploy to your environment without agents.

  2. Scan for new servers that already have deployment agents installed. If the server you want to use is not in the list, check that the service for the deployment agent (Microsoft Deployment Agent) is started on that machine.

    Scan for servers
  3. Register the servers to use for your environments. You will deploy your app to the servers in an environment as part of your release process.

    Register your server to use in the release process
  4. Create environments for each of your stages. Link the servers to your environments.

    Add an environment

    An environment can contain multiple servers.

    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.  Explain more.

    Configure Paths tab, Environments tab, Servers section, add comma-separated tags to Tags field for each server

Create release template and start your release

    Check the code for your app has been added to version control. You also need a build definition that builds your app.

  1. Create a release path to represent the stages that your release must go through.

    Create a release path

    Choose the environment and approvers to use for each stage of your release. You can add multiple final approvers for each stage if you want to.

    Add the stages and approvers for your release process
  2. Create a release template and use the release path that you just added. Link your build definition to this release template to have access to the build.

    Add a release template

    Next you define the sequence of actions that deploys your app for each stage.

    From the Release Templates page add the deployment sequence

    The deployment agent must have sufficient permissions to perform any of the actions in your sequence. For example, to remove a web site the deployment agent service must run as a local administrator on that machine.

  3. Start a new release.

    From the Releases tab, select the Releases page and choose the New button

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

    Start a release

    The release process begins.

    Release in progress

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.

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

    From the Releases tab, choose My Approval Requests

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

    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.

Configure Apps tab, Components

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

Configure Apps tab, Release Templates, right-click Components and choose Add

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.  

Release template with deployment sequence selected

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.

Enter tags as a comma-separated list in the tags field for each server in your environment

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.

Select tag and drag to the deployment sequence; drag actions to the sequence for this 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.

Right-click the stage tab; select Copy Deployment sequence; right-click the destination stage and choose Paste Deployment Sequence

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

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

Administration System Settings page

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.

Choose Edit on the Settings tab; uncheck Join the Visual Studio Experience program in the Configure Services dialog

Q:Is there a more detailed user guide?

Yes, you can download this pdf file.