Your Application is created in your Project Domain. To create a new Application, right-click on the Project Domain you want the Application to be associated with. All Tasks associated to that Project Domain will be applied to the Application.  


An Application and all objects within it will be deployed to one or more Endpoints (each of which represents a container, physical or virtual server in the enterprise) in an Environment. The first Application deployed is referred to as the Application Base Version. Subsequent deployments create new Application Versions. DeployHub uses a back in versioning engine to track all deployment configurations. For this reason, each release will be given a new version number. For instance, your Base Version may be called  MyApp;1, subsequent versions would be automatically named MyApp;2, MyApp;3, etc.  


Applications consist of a collection of Components. Whenever an Application is deployed, DeployHub deploys each Component contained within the Application, by comparing it to which Components are already on the associated Endpoint. Only if the Component Version differs - or the Component is set to Always Deploy - is the Component deployed to the Endpoint. This delta processing allows DeployHub to perform iterative deployments accurately.


Any Version of an Application can be deployed. If you are pushing continuous deployments across the pipeline, each new incremental Version will be rolled forward.  You may want to ‘jump’ a Version in an Environment; for example, Production wants the latest Version, but Production rejected the last 4 deployments. In this case, you can specify the precise Version required, and DeployHub’s versioning engine will accurately deal with the incremental changes.  Alternatively, an Application can also be deployed that has a lower Version than the one currently residing in a target Environment, for instance when a problem has been discovered and a Rollback is needed. Roll Forward, Rollback, and Version Jumping can be done between any Application Versions or Component Versions.


A right-click deploys the Application after selecting a Deploy Task.

Roll-Forward, Jumping, and Roll-Back

When an Application is deployed to a target Environment, DeployHub will loop through each Application Version between the Version recorded as being on the target Environment and the Version being deployed. For each "interim" Application Version, a check is made for any associated Components that have Component Items marked as "roll forward" or "roll-back". If any are found, those Components are deployed automatically. Only the Component Items marked as "roll forward" are used when deploying a later Application Version than the one recorded as being in the target Environment. Similarly, only the Component Items marked as "rollback" are used when deploying an older Application Version than that recorded in the target Environment. This technique allows "deltas" to be applied in sequence and is typically used to roll databases forward or back by applying successive "alter" scripts.

Applications and Tasks

Tasks can be removed, added, and uniquely customized for your Application. All Tasks defined to the Domain will be available to all of the Applications within the Domain. Right clicking on the tree view displays all Tasks defined to that Domain. The following Task Types are available:


Task

Description

Move Version

Moves an Application Version from one Life Cycle Sub-Domain to another. This is typically used as a promotion or a demotion of an Application Version between Development, Test and Production. When the Task is defined, the Life Cycle Sub-Domain must be specified as part of the Task definition.


If an Approve Task exists in the same Life Cycle Sub-Domain as the Move Version Task and the Approve Task points to the same Target Domain, then that Approve Task has to have been executed for the selected Application Version in order to approve the Application Version for the Target Life Cycle Sub-Domain. If this has not been done, the Move Version Task will fail when it is executed. In other words, the selected Application Version has to be approved for the Life Cycle Sub-Domain before the Move Version will succeed.

Deploy

Deploys an Application Version to an Environment. The target Environment is selectable via a drop-down list.

Request

Often times you may need to run a Task but you don’t have access to it. A Request Task is used in this situation to ask other Users with access to the Task to run it.


When the Request Task is executed an entry is placed into the "To Do" list of all the Users who are members of the User Group(s) which have execute access to the Linked Task. When the Linked Task is executed by one of the Users with access, the request is removed from all the Users "To Do" lists.


The Request Task can have a Request Notification Template defined. This sends out a notification to the appropriate User Group(s) letting them know that the requested Task needs to be performed.

NOTE: DeployHub Team has only 2 User Groups, Administrators and Users.  If more User Groups are required, you will need to upgrade to DeployHub Pro.


Approve

Approves a Request Task so that its linked Task can be executed within a specified Life Cycle Sub-Domain. For example, a User that belongs to a Group with the authority, via a Move Task, to move a particular Application to a specified Life Cycle Sub-Domain can do so, but a User in a Group that has not been assigned the authority for this Move Task must request approval from someone in a Group that does have the authority. When the User with the authority receives the request, that User can run an Approval Task, which will then allow a User with access to move the Application to the target Life Cycle Sub-Domain. Keep in mind, if an Approval Task exists within a Domain, it must be run before any Move Tasks can be executed to move an Application Version into the specified Domain.

Remove Application

Removes the Application Base Version from an Environment, by rolling back from the currently installed Application Version. All files are removed and all Rollback Actions are executed for each Application Version between the Version installed in the Target Environment and the Application Base Version. The Rollback Action associated with the Application Base Version is then executed. (Normally, when rolling back to the Application Base Version, the Rollback Action is not executed, and the Application Base Version remains deployed.)


A Remove Application Task cannot be executed against an Application Version, only an Application Base Version.

Create Version

Makes a new Application Version from either an Application Base Version or a specific Application Version, depending on the choice made by the User. The Domain where the new Application Version is created can be chosen in the Create Version in Domain field.

Run Action

Runs a stand-alone Action. It will be available only in the Domain where it is created, unless the “Available in Sub-Domains” checkbox is selected. The Task can be selected by right clicking on the Domain or Life Cycle Sub-Domain or by right clicking on an Application. In the latter case, the selected Application is automatically placed onto the stack where it is available for the Action to process.


NOTE: Tasks are created, modified and deleted by using the Task tab found under the Domain Main Menu item. Select the Domain for which the Tasks should be managed and the relevant Tab will become available.


Creating and Deleting Applications

An Application Base Version is created through the Deploy Main Menu. Click on the Applications tab, then right click on the Domain where the Application Base Version should reside. Provided you have permission to create Applications, one of the displayed options will be to add a ‘New Application Base Version in this Domain.’ By selecting this option, the ‘New Application Base Version’ dialog will appear. Once created, the Application Base Version can be deleted by right clicking on the Application Base Version in the tree view and selecting ‘Delete this Application Base Version.’ Once deleted, you cannot retrieve the Application Base Version, or any of its associated Application Versions.


Unlike an Application Base Version, an Application Version can only be created by right clicking on an Application Base Version and selecting a Create Version Task from the resulting dropdown list. The Create Version Task must be available before this is possible. See the chapter on ‘Defining Your Domains’ for instructions on how to create Tasks.


You can also subscribe to an Application. Subscribing allows you to receive information about the selected Application. Any history connected to the Application will appear in the Timeline column of the subscribing User’s home page.


Editing Applications

To edit an Application, select it from the tree view. You can edit information in the General tab by selecting the pencil icon in the upper right hand corner of the window. In addition to General information about the Application, you can create Application Versions, link Components, define Attributes, assign Access, assign Environments and view Reports and History. These options are available under the corresponding tabs.

Assigned Components Tab

This tab contains all the Components that make up an Application, linked together in order of deployment. Click on the Component tree structure on the right side to see the available Categories. Within each one, which is accessed by clicking on the plus ‘+’ sign, are the Components that share that particular Category. Click and drag a Component from the list on the far right side and drop it into the Assigned Components area. It will appear in the area as a box containing the name of the Component, and automatically link to the last Component in the area. The connecting line can be deleted by right clicking on the connecting line and selecting “Delete this Connection”. A new connector can be created by clicking on the anchor (the green dot at the bottom of the Component) and dragging and dropping it onto another Component. This determines the order that Components will be deployed. Keep in mind that each Component contains Component Items that are also linked together in the order that they are to be executed.


You can define which Components are to be deployed in parallel by linking the parallel Components to a common parent Component. After the parent Component is deployed, each linked child Component is deployed in parallel.

NOTE: In the Assigned Components area, an object represents the currently selected Application. It is distinguishable from other Components in the area by the arrow icon that appears in the object along with the word “Start”, and it is positioned in the top center of the window. This must be connected to the first Component to be deployed, otherwise DeployHub does not know which Component to begin with, and the deployment will fail.


Versions Tab

Application Versions represent the changes in the software over time. Application Versions inherit objects from either the Application Base Version or the previous Application Version, and these can be changed to meet new requirements. Application Versions allow you to track the software as it changes over time without having to re-create the Application Base Version and its Components and their Component Items each time.


To create an Application Version, select an Application Base Version from the tree view. You will see the General tab displayed along with several other tabs. Choose the Versions tab. You will immediately see a box named ‘Start’ at the top of the area that represents the Application Base Version. Right click on the window and a dropdown list with all of the Tasks for the currently selected Domain (this can also be achieved by right clicking on the Application Base Version in the tree structure) will appear. Select the Create Version Task to see a window with a Predecessor Version dropdown. The choices include ‘Latest Version’, ‘Application Base Version’, and all of the versions of the Application created so far.


The new Application Version is created by using the Application Base Version name, followed by a semi-colon and an incremented integer, i.e. MyApp;3. An Application Version must be linked to the Application Base Version for DeployHub to utilize Rollup and Rollback methods. Pre-Actions and Post-Actions can be included with Application Versions in order to control their deployment at a detailed level, before and after the deployment, or to completely replace DeployHub’s internal deployment process with a Custom Action, such as a previously written deployment script.


Timeline Tab

This tab displays audit entries for deployments, including deployment number, Environment, and how many days ago the deployment (hours for all of today’s deployments) took place. Any attribute changes to the Application are also shown on the Timeline. You can add comments to entries in the timeline by clicking on the ‘Comment’ link within each entry, which opens a text entry field just below the deployment information. ‘Click to see earlier items’ link shows other audit entries.


Users can also click on the Subscribe link in each entry of the list, which places the audit entry into the User's personal Timeline. Any comments added to the audit will appear in the Timeline tab of the subscriber’s home page.


A field labeled “Say something about this Application?” is at the top of the Timeline. Entering text into this field activates the Add Message button. Click on this button to save the comment as a new audit entry. Clicking on the paperclip button next to the Add Message button brings up a file explorer that allows multiple files to be selected and attached to the comment. Clicking on the paperclip shows the attached files as hyperlinks. Clicking on the link will download the file, a process that is browser-specific.