Pega CI/CD (Continuous Integration-Continuous Delivery)







Development
Pega 7 Platform developers use Agile practices to create applications and commit the changes into branches in a shared development environment. Automated and manual testing provides rapid feedback to developers so that they can improve the application.
Leverage multiple built-on applications to develop and process smaller component applications. Smaller applications move through the pipeline faster and are easier to develop, test, and maintain.
Create one Pega 7 Platform instance as a source environment that acts as a single source of truth for the application. This introduces stability into the developer environment and ensures that a problem in one developer environment does not affect other environments.
Use Pega 7 Platform developer tools, for example:
  -The rule compare feature allows you to see the differences between two versions of a specific rule.
  -The rule form search tool allows you to find a specific rule in your application.
Follow branch-based development practices:
-Developers can work on a shared development environment or local environments.
-Content in branches migrates from the development environments to merge into the source environment.
-Create an archive by exporting and storing backup versions of each branch in a separate location in the application repository. If a corrupted system state requires you to restore the source environment to a previous known good application version, the branches can be down-merged to reapply the changes in those branches that were lost as part of the restoration.
-Use PegaUnit tests to ensure quality.
Ensure that the work on a ruleset is reviewed and that the changes are validated. Lock every complete and validated ruleset.
Regularly synchronize the development environments with the source environment.

Continuous Integration
With continuous integration, application developers frequently check in their changes to the source environment and use an automated build process to automatically verify these changes. Continuous integration identifies issues and pinpoints them early in the cycle. Use Jenkins with the prpcServiceUtils tool and the execute test service to automatically generate a potentially deployable application and export the application archive to a binary repository such as JFrog Artifactory.
•During continuous integration, maintain the following best practices:
•To automatically generate a valid application, properly define the application Rule-Admin-Product rule and update the rule whenever the application changes. The prpcServiceUtils tool requires a predefined Rule-Admin-Product rule.
•To identify issues early, run PegaUnit tests and critical integration tests before packaging the application. If any one of these tests fails, stop the release pipeline until the issue is fixed.
•Publish the exported application archives into a repository such as JFrog Artifactory to maintain a version history of deployable applications.
Continuous Delivery
With continuous delivery, application changes run through rigorous automated regression testing and are deployed to a staging environment for further testing to ensure that there is high confidence the application is ready to deploy on the production system.
Use Jenkins with the prpcServiceUtils tool to deploy the packaged application to test environments for regression testing or for another testing such as performance testing, compatibility testing, acceptance testing, and so on. At the end of the continuous delivery stage, the application is declared ready to deploy to the production environment. Follow these best practices to ensure quality:
Use Docker or a similar tool to create test environments for user acceptance tests (UAT) and exploratory tests.
Create a wide variety of regression tests through the user interface and the service layer.
Check the tests into a separate version control system such as Git.
If a test fails, roll back the latest import.
If all the tests pass, annotate the application package to indicate that it is ready to be deployed. Deployment can be done either automatically with Jenkins and JFrog Artifactory or manually.
Deployment
After an application change passes the testing requirements, use Jenkins and the prpcServiceUtils tools to migrate the changes into production after complete validation through automated testing on the staging system. Use application release guidelines to deploy with minimal downtime.
Deploying to the production system
Enabling changes to the production system



1 comment: