Ricky Jimenez | Practice Lead – Cloud Solutions
Release Management vNext
Release Management is a service in Visual Studio Online (VSO) that helps you automate the deployment and testing of your software in multiple environments. Using Release Management, you can either fully automate the delivery of your software all the way to production, or set up semi-automated processes with approvals and on-demand deployments. It is an essential element of DevOps that helps your team continuously deliver software to your customers at a faster pace and with lower risk.
To use Release Management, you create release definitions, in which you specify the automation tasks that should be run in each environment. These automation tasks can be to deploy your software or to run tests against it. You can group multiple environments in each definition to model your software lifecycle. You can then set up the deployment in each environment to be automatically triggered upon completion of a build, or on successful deployment to a previous environment.
- Browser based release management experience – introducing a “Release” hub in our web experience that allows you to manage releases from anywhere without any client software installed.
- Orchestrate across multiple environments – A release definition can describe a set of environments, a deployment sequence and a set of validations (like automated tests) and approvals that are executed at each stage. This allows you to manage the flow of updates from check in through to production deployment in a controlled fashion.
- Simple and easy to compose automation pipeline – As mentioned above, release management uses the same simple, extensible pipeline and task mechanism that VSO Build vNext does but wraps it in an experience for release pipelines.
- Provisioning and Deploying to Azure resources – If you are developing Azure applications or if you are looking for cloud resources to host your Windows or Linux applications, then RM vNext has a great set of tasks that you can compose into your automation. You can deploy your releases to Azure websites, Azure cloud services, or Azure resource groups. All of these resources can be dynamically provisioned when you have a new release to deploy. We have tasks to easily copy your builds into Azure blobs or into Azure virtual machines. If these built-in tasks are not sufficient, you can always run an Azure Powershell script as part of your release automation.
- Deploying to on-premises resources from VSO – With the new architecture, you can setup on-premises agents to run release automations locally. These agents will poll your VSO account periodically, pull down any pending automations that they have to run, and deploy builds to your on-premises servers. You do not have to open any firewall ports in your network or setup VPN connections. You can store meta-data about your on-premises resources including their IP addresses or FQDNs as well as credentials securely, and then use them in your deployments. Deployments can be done by running Powershell scripts on these resources, or through IIS web deployment and SQL DACPAC deployment.
- Auditing/Traceability – All release and deployment operations are traced and audited, providing a clear picture of what succeeded and failed, who approved deployments and who made changes to the release definition and what changes were made. We also provide and easy way to see the state of each environment and what software is deployed on it.
- Open architecture – the release management features don’t rely on you using all the rest of VSO. You can use just release management even if you are using SVN, Jenkins, etc.
Testing plays a critical role in any modern DevOps release pipeline. Above, as part of build, I’ve talked about running automated unit tests and reporting results but a proper validation needs to run tests against the deployed application as well.
- Functional testing service – VSO has a new service that works in concert with release management to automatically deploy test agents and tests. It will then execute those tests, possibly in parallel and report the results back to VSO. These functional tests can be VS Coded UI tests, Selenium tests, Appium tests and more. The results of these tests can be used in the release pipeline to automatically validate deployments.
- Load tests – support for running load tests as part of the release management pipeline so that you can validate performance, scale and reliability as part of your automated release sign-off process. VSO cloud load test service now support runs of up to 200 cores, enabling very large scale load tests.
- Test analysis – new test analysis experience in the test hub that allows you to review/investigate test results, file bugs, etc. This is linked directly from the test results you find in both the build and release reports.