- Docs Home
- Getting started
- XL Release
- Overview
- Installation
- Get started with XL Release
- Manage your installation
- Model your releases
- Release your software
- Release overview
- Create and start releases
- Configure release properties
- Schedule releases
- Start a release from an archived release
- Start a release from a template
- Start a release from another release
- Create a release from a Git repository
- Add a phase to a release or template
- Add a task to a phase in a release or template
- Import a release template
- Trigger releases
- Work with running releases
- Work with plugins
- Using reports
- Customize XL Release
- API and scripting overview
- Create custom task types
- Create custom configuration types
- Create custom trigger types
- Extend the XL Release GUI
- Declare custom REST endpoints
- Create custom tiles
- Create custom task types
- Create custom configuration types
- Using scheduling in scripts to connect to long running jobs
- Implement a custom failure handler
- Listen to XL Release events
- Configuration settings
- Release manuals
- XL Deploy
- Overview
- Installation
- Get started with XL Deploy
- Manage your installation
- Logging
- Start XL Deploy
- Shut down XL Deploy
- Back up XL Deploy
- Upgrade XL Deploy
- The XL Deploy repository
- Configure the repository
- Configure XL Deploy to fetch artifacts from a Maven repository
- Manage security
- Manage system settings
- XL Deploy configuration files
- Configure failover for XL Deploy
- High availability with master-worker setup
- Add, start, and use workers
- Configure active/hot-standby mode
- Configure the task execution engine
- Troubleshoot the Jackrabbit JCR repository
- Configure XL Deploy client settings
- Enable XL Deploy maintenance mode
- Update the XL Deploy digital certificate
- The XL Deploy work directory
- Reclaim disk space on an XL Deploy server
- Hide internal XL Deploy server errors
- Automatically purge packages according to a user-defined policy
- Automatically purge the task archive according to a user-defined policy
- Specify file encoding on the XL Deploy server
- Automatically archive tasks according to a user-defined policy
- Best practices for maintaining XebiaLabs tools
- Connect to your infrastructure
- Set up applications and environments
- Prepare your application for XL Deploy
- Create a deployment package
- Define application dependencies
- Configure an environment
- Using placeholders and dictionaries
- Working with deployment packages
- Preparing your application for XL Deploy
- Understanding deployables and deployeds
- XL Deploy manifest format
- Deprecated XL Deploy manifest format
- Using the XL Deploy Manifest Editor
- Understanding archives and folders in XL Deploy
- Add an externally stored artifact to a package
- Extend the external artifact storage feature
- Add a package to XL Deploy
- Export a deployment package
- XL Deploy for developers
- Tips and tricks for deployment packages
- Deploy an application
- Deployment overview
- Understanding the XL Deploy planning phase
- Steps and step lists in XL Deploy
- Understanding tasks in XL Deploy
- Deploy an application
- Use tags to configure deployments
- Preview the deployment plan
- Use orchestration
- Working with deployments
- Stopping, aborting, or canceling a deployment
- Schedule a deployment
- Update a deployed application
- Staging artifacts in XL Deploy
- Monitor and reassign deployment tasks
- Make previously deployed property values available in a PowerShell script
- Undeploy an application or deprovision an environment
- Perform canary deployments
- Perform dark launch deployments
- Perform hot deployments
- Deploying an externally stored artifact using the XL Deploy CLI
- Schedule or reschedule a task
- Using the deployment pipeline view
- Deploy to remote datacenters
- Get started with provisioning
- Introduction to the release dashboard
- Work with the CLI
- Work with plugins
- Create an XL Deploy plugin
- Base plugins and the deployed object
- Implement custom XL Deploy plugpoints
- Add a checkpoint to a custom plugin
- Step options for the Generic, PowerShell, and Python plugins
- Sample Java-based XL Deploy plugin
- XL Deploy plugin tutorial
- Standard plugins
- Middleware plugins
- Apache Tomcat
- BizTalk
- F5 BIG-IP
- GlassFish
- IBM WebSphere Application Server
- IBM WebSphere Process Server
- IBM WebSphere Liberty Profile Server
- IBM WebSphere MQ
- JBoss Application Server 5 and 6
- JBoss Application Server 7 and up
- Microsoft Internet Information Services
- Microsoft Windows
- NetScaler
- Oracle Service Bus
- Oracle Service-Oriented Architecture
- Oracle WebLogic Application Server
- Provisioning plugins
- Container platform plugins
- Tools
- Community plugins
- Using control tasks
- Using the explorer
- Using XL Deploy reports
- Customize XL Deploy
- Release manuals
- DevOps as Code
- Get started with DevOps as Code
- Install the XL CLI
- XL CLI command reference
- Work with the YAML format
- YAML snippets reference
- Manage values in DevOps as Code
- Track progress using XL CLI output
- Manage risk profiles
- Manage XL Deploy permissions in YAML
- Manage XL Release permissions in YAML
- Manage XL Release folder permissions in YAML
- Tutorial: Managing an XL Release template as code
- Blueprints
- API and CI references
- Plugins
- XL Release plugins
- XL Deploy plugins
- Standard plugins
- Middleware plugins
- Apache Tomcat
- BizTalk
- F5 BIG-IP
- GlassFish
- IBM WebSphere Application Server
- IBM WebSphere Process Server
- IBM WebSphere Liberty Profile Server
- IBM WebSphere MQ
- JBoss Application Server 5 and 6
- JBoss Application Server 7 and up
- Microsoft Internet Information Services
- Microsoft Windows
- NetScaler
- Oracle Service Bus
- Oracle Service-Oriented Architecture
- Oracle WebLogic Application Server
- Provisioning plugins
- Container platform plugins
- Tools
- Community plugins
- Videos
- Community
- Fix Trackers
- Archive
Perform deployment rollback
Handling failures is a key part of administering deployments. XL Release and XL Deploy offer key features to ensure that you can always reach a known state.
XL Release manages this by allowing you to define procedures to handle the situations you face regularly and interact appropriately with your deployment tooling.
XL Deploy maintains the state in your target environments and encourages you to create deployment packages in such a way that you can deploy any version to any target environment and let XL Deploy handle how it moves from one state to the next.
This topic explains two approaches for performing deployment rollbacks using XL Release and XL Deploy:
- Technical rollbacks
- Functional rollbacks
Types of rollback
When a deployment fails, you have several options in the XL Deploy GUI:
- Continue the deployment by retrying the failed step
- Roll back the part of the deployment that succeeded
- Continue the deployment by skipping the failed step
- Cancel the deployment without rolling back
The first two options (continuing the deployment and rolling it back) leave the system in a known state. The final two options require an administrator to ensure that the target environment is restored to the expected state.
To fully automate rollback behavior, the failure modes and desired state must be known. A tool such as XL Release can be set up to provide an automated route to a known state. Both the official XL Deploy plugin for XL Release that is part of the bundled plugins and the community supported XL Deploy community plugin for XL Release provide fine-grained control of deployment actions which cater for many failure scenarios.
The alternative is a “fix-forward” approach in which a subsequent release of the software is deployed successfully, taking the environment to an even later version of the application.
Technical rollbacks
If a deployment failure is technical in nature and your deployment tool supports retry attempts, a retry can be performed. The XL Deploy plugin for XL Release can optionally retry a number of times to overcome transient errors (such as a network outage).
If that fails, the plugin can be configured to roll back the deployment attempt, so that the target environment is left as it was prior to the deployment attempt.
Sample automatic rollback
This example shows how the XL Deploy plugin for XL Release automatically rolls back a failed update of the PetPortal application from version 1.0 to version 2.2.
This is the configuration of the XL Deploy task in XL Release:
After the release reaches the task and XL Deploy starts executing the deployment, the deployment fails. This causes XL Release to mark the task as failed.
The script_output.log
file attached to the task shows the following log messages:
Upgrading deployment
Mapping all deployables
Creating a deployment task
Execute task with id: 95223aae-0e6c-45bf-9abe-fed0587a5892
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state EXECUTING
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state FAILED
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state EXECUTING
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state FAILED
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state EXECUTING
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state FAILED
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state EXECUTING
Task 95223aae-0e6c-45bf-9abe-fed0587a5892 now in state FAILED
... DEPLOYMENT STEPS SHOWN HERE ...
Going to rollback
Task 0f2818c2-2595-4c86-acd9-89b570bdd23a now in state EXECUTING
Task 0f2818c2-2595-4c86-acd9-89b570bdd23a now in state EXECUTED
This leaves the target environment in its original state, with PetPortal 1.0 deployed:
Functional rollbacks
XL Release allows you to restart a phase in an active release. If there is a functional failure that must be corrected by a deployment of a different version of the application, you can do so by restarting the phase that contains the deployment task. This is the “fix-forward” approach.
For example, say PetPortal is upgraded from version 1.0 to version 2.2, but there is a functional failure that will be fixed by PetPortal 2.3. First, the deployment phase is restarted:
At this time, you can specify the new deployment package for PetPortal 2.3. The resulting deployment succeeds:
Automating failure handling
XL Release supports several approaches to automating failure handling. For detailed information, refer to: