Discussion

77
Views
poths1 Member since 2018 8 posts
PEGA
Posted: 5 months ago
Last activity: 5 months 3 weeks ago

Managing Application Dependencies in Deployment Manager

When we are moving apps across environments using deployment manager, we often need to make sure dependent applications are properly deployed before we deploy the main applications.

Application Structure

Example:

 Uplus app is dependent on three apps and uses various services and data from them. Let us assume that three dependent apps have their own application pipelines and are independently developed and released as per their release cycles. Typical requirements would be as below:

  1. Our target application(Uplus 4.x) would depend on Uplus_base (3.4 v), Uplus_core (3.3 v) and Uplus_services (5.0 v) applications.
  2. One of the dependent applications feature development would continue in the next minor or major version, for eg: Uplus_service 6.01 is the next feature release.
  3. Another dependent application is closely related to the main application and would always be deployed together but different teams are working on them, in this case we would always depend on the latest validated version of the dependent application.
  4. As we do not know the behavior of all versions of dependent apps, we will package our target app along with dependent apps and move across the environments

Below is the environment topology and app stack:

pipeline setup

Application Stack

Uplus 4.7                                                 

Uplus_service 5.0                                     

Uplus_core 03.03      {Dependent Apps and versions}

Uplus_base 03.04                    

 

For above use case, an application pipeline created for “Uplus” application is enough with additional configuration of dependent apps as described below:          

  • We can add the dependent application details as below in the “Uplus” application pipeline.

dependencies

Note: If you are using Deployment Manager 4.8, dependencies would be configured with Application name, Pipeline name and Deployment name instead of repository and artifact details.

Below would be the new view:

new_dep

 

If you have any dependencies configured previously, you can update them by following the instructions explained here.

On navigating Actions-> Pipeline settings, we can see above dependencies screen, we can add multiple apps (as shown above) here as the dependencies. Before deploying main application artifact configured in pipeline, these will be imported in the same order as specified.

P.S: In case of CoE kind of application, we may always need to pull the latest version. In this case, you can just select “latest” in the “Artifact name” field.

Advantages of above approach:

  1. As we are packaging our app along with dependent apps, we need not worry about the versions of dependent applications released as per their release cycles.
  2. Though we are depending on various applications, we need not document it specifically.
  3. For the development of next major version of Uplus App(5.0v), we may depend on latest version of Uplus_service application. In this case we could create new pipeline for Uplus 5.0 with dependent app as latest Uplus_service (6.0v). With this approach we can seamlessly maintain two versions of Uplus application independently.

 

Validations of Dependent Applications

To prevent deployments of applications without its dependencies being present on the target environments there is a Product rule configuration for adding the details of dependencies. Pega Platform verifies that these dependencies are installed on your system before importing the product rule. This is especially useful when provision new environments or using different environments for testing different applications.

Dependencies

Open the product rule configured in pipeline, click on “Dependencies” tab and enter the list of applications.

Please note that this doesn’t import the dependencies but just verifies if the listed applications are there.

 

This is a frequently asked question about Deployment Manager. Find more answers here.

 

***Edited by Moderator Marissa to add the Developer Knowledge Share tag***

DevOps Developer Knowledge Share
Share this page LinkedIn