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
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
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.)
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.
The following steps guide you through the essential parts of the release process.
From the Administration tab, add a stage type for each step you need in the release process of your app.
View the stage types that you have added.
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.
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.
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.
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.
Create environments for each of your stages. Link the servers to your environments.
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.
Create release template and start your release
Create a release path to represent the stages that your release must go through.
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.
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.
Next you define the sequence of actions that deploys your app for each stage.
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.
Start a new release.
Name the release and choose the release template that you want to use.
The release process begins.
Check the code for your app has been added to version control. You also need a build definition that builds your app.
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.
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>
Q:Can I deploy components of my multi-tiered app separately?
A:Yes, you can create components with separate deployment information.
Add the component to the release template. Now you can add this component to any stage that needs it.
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.
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.
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.
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.
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.
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>
Q:Are there any system settings that I can change?
A:Yes. You can edit settings based on your system requirements.
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.
Q:Is there a more detailed user guide?
Yes, you can download this pdf file.