Using Rollfoward and Rollback
Roll Forward Incremental Deployments
Whenever a deployment has a problem, the concept of Roll Forward and Rollback comes into play. Complex situations exist for deploying higher and lower versions of Applications and their Components, such as with databases. DeployHub deals with these issues with Roll Forward and Rollback using Component Items within Components.
Roll Forward allows DeployHub to apply Component Items to Endpoints incrementally and in order. As DeployHub advances through each Application Version. Each Component within each Application is advanced as well and then each Component Item within it is deployed.
A one-time deploy that doesn’t use Roll Forward would be used, for instance, wherever there are binary files to be placed into directories. All the changes will then exist in the latest version of the files themselves, and you can simply replace whatever version of the files are currently there.
Rollback allows DeployHub to return databases and files to a previous state, one Application at a time in reverse order, applying Rollback logic as well as scripts as it goes.
Setting Roll Forward to On
Typically, the Application being deployed is only one Version higher than the one currently on the Endpoint(s), but occasionally the need arises to deploy an Application that is several Versions higher than the current one. This can be the case where one or more new Endpoints have been added to an Environment and one or more software applications need to be brought up to the same Version as all of the other Endpoints. Applications are examined by DeployHub individually, from the next highest Version than the one currently residing on each Endpoint, to the higher one being deployed (assuming that a higher version is being deployed. A lower version may be deployed, in which case Rollback comes into play, described below). DeployHub loops through each Application, then each Component, and finally, each Component Item. Each Component Item within a Component is deployed to each End Point in the Environment, as long as both of the following conditions apply:
- The Always Deploy checkbox is checked in the Component which contains it, or if the Component is a later version than the one on the Endpoints (according to the RE database).
- The Component Item’s Rollforward dropdown list set to On.
Setting Roll Forward to All
Setting Roll Forward to All causes DeployHub to behave exactly as if it were set to On, with the exception that the Component Items within the current Application that exists on each Endpoint are also deployed, as opposed to starting with the next highest version.
Setting Rollback to On
Sometimes the need arises to install a previous version of an Application, such as when bugs are discovered in an earlier version of a production environment. In this case, the Applications are examined by DeployHub one at a time, from the next lowest version that resides on each Endpoint, to the lower one being redeployed. Rollback causes DeployHub to loop backward through each Application, then each Component, and finally, each Component Item. Each Component Item within a Component is deployed to each End Point in the Environment, as long as both of the following conditions apply:
- The Always Deploy checkbox is checked in the Component which contains it.
- The Component Item’s Rollback dropdown list set to On.
Setting Rollback to All
Setting Rollback to All causes DeployHub to behave exactly as if it were set to On, with the exception that the current Application that exists on each End Point is also deployed, as opposed to starting with the next lowest version (which happens when Rollback is set to On).
Keep in mind that all pre and post Actions are performed for every Application and Component, regardless of whether the operation is Roll Forward, Rollback, an initial deployment, or an incremental deployment.