This post is about the InRelease Deployment Editor that we will include in our next release of InRelease, our release management solution, to be released in January (wow, I used release 6 times in one sentence!).
The reasoning for the Deployment Editor will be discussed in follow-up posts.
The Deployment Editor allows the configuration of complex deployments for the various stage of a release path, the pre-defined series of stages an application needs to go through on its merry way to production.
The basic principle of the Designer is quite simple. You select which stage you want to work on using the control at the top. You then select items in the toolbox, on the left side, and you drag them on the canvas to compose your deployment procedure for that specific stage. You can copy procedure, or sections of procedures, from one stage to another. Once the deployment procedure is defined, it will be used to perform the deployments for that application on that stage.
The toolbox contains 4 types of items to build your procedures.
Basic Control Flow
Basic Control flow are containers that can specify either a parallel or sequential execution of what is included in them. You drag them on the canvas and and then you drag the servers and actions you want to be performed in the order you desire. You can include control flow boxes inside other control flow boxes, making the approach very flexible. Note that these are the same as when you are creating Build Definition in Team Build. The only difference is that we added a specialized rollback control flow that you add to your deployment procedure to include the actions you want to be performed in case of a failed deployment.
Servers
Servers defined in the release path are made available in the Editor. You can drag an available server on a control flow container to indicate on which server you want to perform deployments and actions. The control flow allows you to set up deployments to be done on multiple servers simultaneously, in sequence or a mix of both.
Components
The components that need to be deployed as part of your applications are added by right-clicking the component title in the toolbox. Created components are then shown in the toolbox where you can drag them onto a server to indicate that the components will be deployed on it. You configure additional details of the components directly in the Editor.
The servers available for the stage, as defined in your preconfigured release paths are also available in the toolbox. Deployment actions are also available. Deployment actions come in two flavours, actions included you want to perform on which server and on which order.
Actions
Deployment Actions are also available in the toolbox, organized in categories. There are 2 types of actions, those included in InRelease and those added by the user in the action inventory. Security allows team to decide which Action can be used in which context. To configure and Action, you simply drag it from the toolbox to the Editor and configure its specific parameters. Most actions need to be dragged on a target server, however some actions – like notifications – can be executed by the InRelease Server directly. We plan on augmenting our list of actions as we go, based on customer requests.
The list of actions planned to be available out of the box in the very short term are:
Category |
Action |
MS-SQL |
Execute SQL Script |
Create SQL Database |
|
Drop SQL Database |
|
Deploy DACPAC |
|
SSRS |
Deploy Reporting Services |
MSI |
Deploy MSI |
XBAP |
Deploy XBAP |
Windows OS |
XCopy Package Folder |
Copy File or Folder |
|
Create Folder |
|
Delete File or Folder |
|
Rename File or Folder |
|
Move File or Folder |
|
Modify File or Folder Attributes |
|
Modify File or Folder Owner |
|
Create Environment Variables |
|
Delete Environment Variables |
|
Modify Environment Variables |
|
Restart Deployer Host |
|
Kill Process by Name |
|
Kill Process by Id |
|
Run Command Line |
|
Run Command Line as User |
|
Create Windows Registry Key |
|
Delete Windows Registry Key |
|
Modify Windows Registry Key |
|
Create Windows Registry Value |
|
Delete Windows Registry Value |
|
Modify Windows Registry Value |
|
Modify an INI file |
|
Extract ZIP content |
|
Windows Service |
Create Windows Service |
Remove Windows Service |
|
Configure Windows Service |
|
Start Windows Service |
|
Stop Windows Service |
|
Restart Windows Service |
|
IIS |
Create Web Application |
Remove Web Application |
|
Configure Web Application |
|
Create Web Site |
|
Remove Web Site |
|
Configure Web Site |
|
Create Application Pool |
|
Remove Application Pool |
|
Configure Application Pool |
|
Create Virtual Directory |
|
Remove Virtual Directory |
|
Azure |
Provision an Azure VM |
Stop an Azure VM |
|
Start an Azure VM |
|
Tests |
Start MTM Automated Tests |
I believe that the combination of the new Workflow Foundation-based Editor with pre-made actions and extendibility will allow our customers to reach their release goals more easily with InRelease!