Advanced application dependencies example

In XL Deploy, you can define dependencies among different versions of different applications. When you set up the deployment of an application, XL Deploy automatically includes the correct versions of other applications that it depends on. You define dependencies at the deployment package level.

This is an example of an advanced scenario with multiple applications that depend on one another.

Sample applications and versions

Assume that you have three applications called CustomerProfile, Inventory, and PaymentOptions. Their versions and dependencies are as follows:

Application name Version Depends on…
CustomerProfile 1.0.0 Inventory [1.0.0,2.0.0)
Inventory 1.5.0 ShoppingCart [3.0.0,3.5.0]
2.0.0 ShoppingCart [3.0.0,3.5.0]
ShoppingCart 3.0.0 No dependencies
3.5.0-alpha No dependencies

When using the application dependency feature, XL Deploy requires that you use the Semantic Versioning (SemVer) scheme for your deployment packages. For information on this scheme, see:

Set up the deployment

Using the GUI

To set up a deployment of the latest version of CustomerProfile:

  1. In the top navigation bar, Click Explorer.
  2. Select the application, click Explorer action menu, and click Deploy Latest(1.0.0). Or select the deployment package, Explorer action menu, and click Deploy.
  3. Choose the environment to deploy to. XL Deploy automatically adds the deployables from the dependent deployment packages.

Mapped application with dependencies

How dependent application versions are selected

The following steps describe how XL Deploy selects application versions:

  1. CustomerProfile 1.0.0: This is the latest version of CustomerProfile, so XL Deploy selected it when you clicked Explorer action menu and selected Deploy.
  2. Inventory 1.5.0: CustomerProfile 1.0.0 depends on Inventory [1.0.0,2.0.0), so XL Deploy selects the highest version between 1.0.0 and 2.0.0, excluding 2.0.0.
  3. ShoppingCart 3.5.0-alpha: Inventory 1.5.0 depends on PaymentOptions [3.0.0,3.5.0], so XL Deploy selects the highest version between 3.0.0 and 3.5.0.

    In SemVer, a hyphenated version number such as 3.5.0-alpha indicates a pre-release version, which has a lower precedence than a normal version. This is why the range [3.0.0,3.5.0] includes 3.5.0-alpha, while [3.0.0,3.4.0] would exclude it.

For more information on version selection, see How XL Deploy checks application dependencies.

Updating a deployed application

You can update a deployed application to a new version. For example, to update the Inventory application to version 1.9.0:

  1. In the top navigation bar, click Explorer.
  2. Under Environments, next to Inventory 1.5.0, click Explorer action menu, and click Update.
  3. In the list of deployment packages, locate Inventory 1.9.0, and click Continue.
  4. Click Deploy to execute the plan.

This deployment is possible because Inventory 1.9.0 satisfies the CustomerProfile dependency on Inventory [1.0.0,2.0.0). Updating Inventory to a version such as 2.1.0 is not possible, because 2.1.0 does not satisfy the dependency.