SlideShare a Scribd company logo
March 28, 2025
Wrocław
CI/CD Practices in Mulesoft
Exploring Code Promotion vs Artifact
Promotion in CloudHub and CloudHub 2.0
Patryk Bandurski
Dominik Kruszewski
Today's Agenda
● CloudHub vs. CloudHub 2
● Basics: Versioning
● Code Promotion vs. Artifact Promotion
● Migration to CloudHub 2
Patryk Bandurski
Integration Architect
LinkedIn Integration Trails
Personal Blog
Dominik Kruszewski
DevOps Integration Expert
LinkedIn Integration Trails
Bridging The Gap
Blog
CloudHub vs CloudHub 2.0
CloudHub
• Since 2012
• Cloud-based integrations
• Connectivity & Flexibility
• Scalability
CloudHub 2.0 vs. CloudHub 1.0
Architecture Scalability
Enhanced
Security
Simplified
Management
Innovation
and Future
Architecture
Worker
vs
Replica
Enhanced
Security
VPC vs Private
Space
Scalability
Horizontal scaling
granularity
Simplified
Management
Inline Endpoint
Configuraiton
Innovation and
Future
Versioning
Pride
Versioning
Semantic Versioning
SemVer Specification
Package labels
Code Promotion
Code promotion
Artifact Promotion
Artifact promotion
Challenges in
Mulesoft Package
Building
● Hardcoded properties
in repository (Encrypted,
but still…)
● Package versioning in
pom
○ Each version update
typically requires a
separate commit to
the pom.xml file —
or does it?
How does it relate to
CloudHub 1?
● It works with both, Code
and Artifact Promotion
● But because of ease of use
- Code Promotion is widely
used
● CloudHub 1 can be
deployed from local artifact
CloudHub 1
Versioning Bad Example
It would be nice…
…if this wasn’t the production app.
Proudly brought to you by iteration
#12 and a bit of blind hope.
And what about
CloudHub 2?
CloudHub 2
● Applications deployed only
from Exchange
● Exchange act like
Artifactory
● But Exchange does not
support SNAPSHOT
CloudHub 2 CI/CD Journey:
Lessons Learned
Lesson Learned:
Versioning
● Most of configurations has
version hardcoded into
POM
● Each change /
incrementation requires
separate commit
● Use dynamic variable as version in
POM.xml
<version>${revision}</version>
● Provide value on Build time
-Drevision=1.0.5
● TAG version in Repository
Lesson Learned:
Properties
● Lazy Properties
Management
● Each change requires -
you’ve guess it - another
separate commit
● And probably back merge
to previous Branches
● Config Server with
Property Provider plugin in
Mulesoft Application
● Dynamic Properties - set in
Deployment via script (with
Anypoint CLI).
Config Server And Property Provider
Tower Github
Repository
Disclaimer: Properties handling
● Secure Configuration Properties cannot be used
● In CloudHub 1: mule-artifact.json has to be set
● In CloudHub 2: For Secret variables use
--secretEnvironmentVariables name in Anypoint CLI.
Lesson Learned:
Maintenance of old
production code
● Hypothetically we migrated to
clean Artifact Promotion and
there’s only main branch
● PROD has app in 1.2.0 and
rest of environments are
much higher
● We cannot deploy latest
version to PROD due to some
functionality
● GIT is not designed to
maintain deprecated
versions on a single branch
● Maintenance branch to the
rescue!
● Maintenance branch might
be deleted after version is
no longer needed.
Maintenance branch example
Upgrade to CloudHub 2
Upgrade Process
1
Assess impact
Source code, Queues,
Persistent OS
2
Upgrade Infrastructure
VPC, VPNs, Licence
3
Migrate Applications
A/B testing, Default Domains,
Rollback
4
Decommission
CloudHub 1
Clean up resources: DLB, VPC,
CH1 apps
CI/CD Practices in MuleSoft – CloudHub 1 vs CloudHub 2
Upgrade Tool
Resources
YT - Upgrade your Mule!
Making the transition to
CloudHub 2.0
CloudHub VPC to CloudHub
2.0 Private Space Upgrade
Thank You
Give feedback in the app!
Your input matters!

More Related Content

PPTX
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps
PPTX
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
PPTX
Automate mule deployments with github actions and travis ci
PPTX
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
PPTX
Warsaw MuleSoft Meetup #6 - CI/CD
PPTX
51723dcmulesoftmeetupcicdpipelinewithmulesoftandazure-230612153252-83a189b4.pptx
PPTX
Perth MuleSoft Meetup Feb 2019
PPTX
Implementing CloudHub 2.0 CI/CD Pipeline with Bitbucket Integration
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Automate mule deployments with github actions and travis ci
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Warsaw MuleSoft Meetup #6 - CI/CD
51723dcmulesoftmeetupcicdpipelinewithmulesoftandazure-230612153252-83a189b4.pptx
Perth MuleSoft Meetup Feb 2019
Implementing CloudHub 2.0 CI/CD Pipeline with Bitbucket Integration

Similar to CI/CD Practices in MuleSoft – CloudHub 1 vs CloudHub 2 (20)

PPTX
Ahmadabad mule soft_meetup_6march2021_azure_CICD
PDF
Melbourne Virtual MuleSoft Meetup December 2022
PPTX
First Caracas MuleSoft Meetup Slides
PPTX
2024_March_ManilaMuleSoftMeetup_Presentation.pptx
PPTX
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
PPTX
Nagpur Mulesoft Meetup on CICD using Jenkins
PPTX
CI CD Daridabad MuleSoft meetup
PPTX
Indianapolis_meetup_April-1st-2022.pptx
PPTX
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
PPTX
London MuleSoft Meetup
PDF
Melbourne Virtual MuleSoft Meetup October 2021
PDF
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
PDF
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
PPTX
Mule Experience Hub and Release Channel with Java 17
PPTX
Vancouver mulesoft meetup_september_2020
PPTX
Manila MuleSoft Meetup #3 December 2018
PDF
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
PDF
The Brave New World of Continuous Release - Baruch Sadogursky
PDF
Practical Data Mesh: Building Decentralized Data Architectures with Event Stream
PDF
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...
Ahmadabad mule soft_meetup_6march2021_azure_CICD
Melbourne Virtual MuleSoft Meetup December 2022
First Caracas MuleSoft Meetup Slides
2024_March_ManilaMuleSoftMeetup_Presentation.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Nagpur Mulesoft Meetup on CICD using Jenkins
CI CD Daridabad MuleSoft meetup
Indianapolis_meetup_April-1st-2022.pptx
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
London MuleSoft Meetup
Melbourne Virtual MuleSoft Meetup October 2021
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule Experience Hub and Release Channel with Java 17
Vancouver mulesoft meetup_september_2020
Manila MuleSoft Meetup #3 December 2018
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
The Brave New World of Continuous Release - Baruch Sadogursky
Practical Data Mesh: Building Decentralized Data Architectures with Event Stream
Practical Data Mesh: Building Decentralized Data Architectures with Event Str...
Ad

More from Patryk Bandurski (18)

PPTX
MuleSoft RTF & Flex Gateway on AKS – Setup, Insights & Real-World Tips
PDF
Warsaw MuleSoft Meetup - Agentforce Community Tour.pdf
PPTX
Warsaw MuleSoft Meetup - Composable Architecture.pptx
PPTX
Warsaw MuleSoft Meetup #16 DF Tour.pptx
PPTX
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101
PPTX
Marketing Cloud integration with MuleSoft
PPTX
Warsaw MuleSoft Meetup #13.pptx
PPTX
Warsaw MuleSoft Meetup #12 Effective Streaming
PPTX
Warsaw muleSoft meetup #11 MuleSoft OData
PPTX
MuleSoft CloudHub API Versioning
PPTX
Warsaw mulesoft meetup #9 mastering integration with salesforce
PPTX
MuleSoft JWT Demystified
PPTX
Warsaw MuleSoft Meetup #7 - custom policy
PPTX
Mule soft meetup warsaw november 13th, 2019
PDF
MuleSoft approach to the integration - Warsaw MuleSoft Meetup
PPTX
Warsaw MuleSoft Meetup - Runtime Fabric
PPTX
MuleSoft Meetup Warsaw Group DataWeave 2.0
PPTX
MuleSoft Meetup Warsaw Group #1
MuleSoft RTF & Flex Gateway on AKS – Setup, Insights & Real-World Tips
Warsaw MuleSoft Meetup - Agentforce Community Tour.pdf
Warsaw MuleSoft Meetup - Composable Architecture.pptx
Warsaw MuleSoft Meetup #16 DF Tour.pptx
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101
Marketing Cloud integration with MuleSoft
Warsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #12 Effective Streaming
Warsaw muleSoft meetup #11 MuleSoft OData
MuleSoft CloudHub API Versioning
Warsaw mulesoft meetup #9 mastering integration with salesforce
MuleSoft JWT Demystified
Warsaw MuleSoft Meetup #7 - custom policy
Mule soft meetup warsaw november 13th, 2019
MuleSoft approach to the integration - Warsaw MuleSoft Meetup
Warsaw MuleSoft Meetup - Runtime Fabric
MuleSoft Meetup Warsaw Group DataWeave 2.0
MuleSoft Meetup Warsaw Group #1
Ad

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Cloud computing and distributed systems.
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
KodekX | Application Modernization Development
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
Understanding_Digital_Forensics_Presentation.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
MYSQL Presentation for SQL database connectivity
Cloud computing and distributed systems.
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Chapter 3 Spatial Domain Image Processing.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
KodekX | Application Modernization Development
Mobile App Security Testing_ A Comprehensive Guide.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Spectral efficient network and resource selection model in 5G networks
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Review of recent advances in non-invasive hemoglobin estimation
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Electronic commerce courselecture one. Pdf
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.

CI/CD Practices in MuleSoft – CloudHub 1 vs CloudHub 2

Editor's Notes

  • #6: Question about adoption of CloudHub 1 / 2 deploy & manage Simplified infrastructure Facilitates connection Adjust resources Tools to manage - monitoring
  • #7: Architecture: HA zapytać dominika o architekture czy to jes tpodobny RTF Scalibllity: high resource effiencie fewer Vcores Enhanced Security: egress firewall rules out
  • #8: Lets start with basics. Versioning is process of assign unique number to different states of application.
  • #9: Of course - this is a joke but also a good introduction of generic versioning approach.
  • #10: Label is optional
  • #11: How we set version affects how Artifactory see the package. Snapshot might be built multiple times with same version It’s a marker for Artifactory, that these artifact should be stacked. Overall it means that they are unstable, development packages. Artifact without label or with RELEASE means it’s const package, that should end up in production
  • #12: Remember, that we’re only scratching the tip of an iceberg here.
  • #13: Code promotion is a concept of promoting code changes between branches. As our code usually goes through multiple environments, In this way of work usually each env has its own branch When it comes to deployment - it might be done manually or automatically. Easiest approach to automate in pipeline. Just trigger pipeline when new commit occur. Usually used in SF
  • #15: Without going deep into specific branching strategy Everything that ends up in branch will be built and pushed to Artifactory with proper Version Deployment pipeline takes artifact from artifactory and upload it to runtime. As said earlier - Label is optional. No label means that Artifactory treat it as RELEASE.
  • #16: Using Artifact Promotion approach we will encounter some puzzles to solve. Hardcoded properties - encrypted, but still it usually sits inside repository. Each incrementation of version is separate commit. Do not worry - Im going to explain how to approach these riddles.
  • #18: CloudHub 1 works with both concepts But because of ease of use - Code promotion is widely used usually with minimal effort, for example: Build and deploy package using Mule Maven Plugin (mvn clean deploy -nsu -DskipMunitTests) Can be deployed from Exchange and from Local repository
  • #19: It would be normal situation, but believe me, I’ve occurred such version on production application after a long time of running, and every iteration has the same version.
  • #21: Application has to be in exchange Exchange acts like artifactory but it isn’t one Since CH2 is based on kubernetes, it needs artifactory.
  • #22: To make the presentation as valuable as possible Lessons learned that we gather while working with clients with CH2, since either you will migrate CH1 to CH2 or start new project on CH2. CloudHub 1 is not available for new clients.
  • #23: Let’s go back to versioning As I said about pom.xml, most of the times version is hard coded as static value Each change requires separate commit Our solution to that [ANIMATION] use dynamic variable with GIT TAG GIT TAG SHOULD REFLECT ARTIFACTORY STATE
  • #24: HYPOTHETICAL System changes access credentials Mule app has to update props Steps: Commit changed props Rebuild and deploy app Backmerge to previous branches
  • #25: Config server is just a place where we can store vars and secrets Tower is an example, written by one of my colleagues - co-creator of Bridging The Gap blog We can use Azure Vault as well In example, usage of Properties Provider for Azure Vault.
  • #26: Few important things. We cannot use Secure Configuration Properties As our tests shown, when used, Mulesoft gets “key” to decrypt variables from runtime properties Then it does not use anything else that has been provided, either by Property Provider or via runtime props. To avoid leaks in secure keys - always use mule-artifact.json in CloudHub 1 and special property with name “Secret Environment Variables” in Anypoint CLI when passing secrets. That will block view of selected properties in Anypoint.
  • #27: More information on next image - since it’s easier to explain usign visuals We cannot put some commit between old commits without breaking a repo or rewriting history of repository YOU SERIOUSLY DO NOT WANT TO DO THAT EVER. PERIOD.
  • #28: Since 1 5 0 has features, that cannot go into production we have to fix current production version which is 1 2 0. Only way to accomplish that is create maintenance branch, that will last till 1.2 release is going to be used. We have to also remember about back merge to main branch.