Microsoft recently acquired InCycle’s “InRelease” software [now called as Release Management (RM)] and integrated with VS 2013. Release Management software fully supports TFS 2010, 2012 and 2013.
Before we look into details of Release Management, let’s look at what Continuous Delivery means.
What is CD?
Continuous Delivery is the capability of automatic deployment of components to various servers in different environments. This typically involves configuration management of different environments, ability to define and customize a deployment workflow driven by business involving multiple roles in organization.
Why do we need it?
Well, DevOps is the talk of the town. If you want to be a cool kid (team), you gotta know/implement CD. Apart from the cool factor, CD brings following advantages to the dev team and business.
– Develop and deploy quality applications at a faster pace.
– Improve value of deliver by reducing cycle time.
– Enable same deployment package to traverse various environments as opposed to rebuild for each environment
– Manage all configuration information in a centralized location.
– Have repeatable, visible and more efficient releases
– Alight with deployments with business process
– Adhere to any regulatory requirements during deployment process.
What is Release Management?
Release Management is a continuous delivery solution for .NET teams for automating deployments through every environment from Team Foundation Server (TFS) until production. RM also allows to define release paths to include approvals from Business and other departments (such as ops) when required. RM enables to assemble all the components of your application, copy them to required target servers and installs all of them in one transaction. QA checks such as automated tests or data generation scripts, configuration changes etc. are all handled by RM. Release Management also handles roll back in required scenarios.
Release Management Components:
The following diagram shows the main components of Release Management.
Client: There are two Client components. The Windows client is a Windows Presentation Foundation (WPF) application that serves as the main interface point to manage release information.The Web client is used to act on Approval Requests. This is the interface to which users are directed when following links in e-mail notifications. Client is used both by business and development teams to provide necessary approval when required.
RM Server: The Server component is the heart of Release Management. It is a combination of Web and Windows Services that expose contracts used by all other components. The server component also contains a SQL Server database. Typically, RM server is installed on TFS server and can share same SQL server.
RM Deployer: The Deployer component is a Windows service that lives on the Target Servers (such as Dev, QA, Prod etc) where your application components need to be installed.
Tools: The Tools are components that help in the deployment of various components to different servers, configurations etc. Few of the are given below.
– Installing a version of a component to a specific environment.
– Deployments to Azure
– Uninstalling a previous version of a component before a re-deployment
– Deploying reports to Microsoft SQL Reporting Services
– Running SQL scripts on a database server etc.
In next blog, I’ll write about configuring Release Management.