Advanced Application Dependencies Example
In Deploy, you can define dependencies among different versions of different applications. When you set up the deployment of an application, 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, 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:
- In the top navigation bar, Click Explorer.
- Select the application, click , and click Deploy Latest(1.0.0). Or select the deployment package, , and click Deploy.
- Choose the environment to deploy to. Deploy automatically adds the deployables from the dependent deployment packages.
How dependent application versions are selected
The following steps describe how Deploy selects application versions:
-
CustomerProfile 1.0.0: This is the latest version of CustomerProfile, so Deploy selected it when you clicked and selected Deploy.
-
Inventory 1.5.0: CustomerProfile 1.0.0 depends on Inventory [1.0.0,2.0.0), so Deploy selects the highest version between 1.0.0 and 2.0.0, excluding 2.0.0.
-
ShoppingCart 3.5.0-alpha: Inventory 1.5.0 depends on PaymentOptions [3.0.0,3.5.0], so 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 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:
- In the top navigation bar, click Explorer.
- Under Environments, next to Inventory 1.5.0, click , and click Update.
- In the list of deployment packages, locate Inventory 1.9.0, and click Continue.
- 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.