SlideShare a Scribd company logo
Monday 18/12/2023
Devops in Mulesoft: A Journey
Through Monitoring and CI/CD
Best practices
All contents © MuleSoft, LLC
The information presented in this slides are proprietary to MuleSoft. This presentation is not subject to your license
agreement or any other service or subscription agreement with MuleSoft. MuleSoft has no obligation to pursue any course
of business outlined in this document or any related presentation, or to develop or release any functionality mentioned
therein. This document, or any related presentation and MuleSoft's strategy and possible future developments, products
and or platforms directions and functionality are all subject to change and may be changed by MuleSoft at any time for any
reason without notice. The information on this document is not a commitment, promise or legal obligation to deliver any
material, code or functionality. This document is provided without a warranty of any kind, either express or implied,
including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
This document is for informational purposes and may not be incorporated into a contract. MuleSoft assumes no
responsibility for errors or omissions in this document, except if such damages were caused by MuleSoft intentionally or
grossly negligent.
All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ
materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements,
which speak only as of their dates, and they should not be relied upon in making purchasing decisions.
Safe Harbor statement
All contents © MuleSoft, LLC
Introductions
Speakers
Moderators
All contents © MuleSoft, LLC
Agenda
● Monitoring Framework
○ Tool Overview
○ Key features and capabilities
○ Implementation strategy
○ Case study
● DevOps
○ CI/CD fundamentals
○ Continuous Integration/Delivery
○ MuleSoft best practices and demo
● Q/A
● Wrap up
All contents © MuleSoft, LLC
Monitoring Framework
All contents © MuleSoft, LLC
What is the Exchange Monitoring Framework?
Exchange Monitoring Framework is a new and innovative tool developed to help
developers and organizations to manage Assets, APIs and Applications
6
All contents © MuleSoft, LLC
Anypoint Platform Components Overview
• Design Center
• Exchange
• DataGraph
• Access Management
• API Manager
• Runtime Manager
• API Governance
• Anypoint MQ
• Anypoint Visualizer
• Monitoring
• Secrets Manager
7
All contents © MuleSoft, LLC
Why is it important?
• Consistency
• Documentation
• Reduced Errors
• Onboarding and Collaboration
• Quality Assurance
• Maintainability
• Searchability
8
All contents © MuleSoft, LLC
Key Features And Capabilities
All contents © MuleSoft, LLC
Anypoint Exchange Checks
• Naming convention of exchange assets
• Assets name length
• Description length
10
All contents © MuleSoft, LLC
Cloudhub Checks
• Application naming convention
• Exchange naming compliance
• Compliance to the API-led design on Anypoint Visualizer
11
All contents © MuleSoft, LLC
What’s next?
• VCores utilization of every deployed application
• API manager checks (naming convention, etc.)
• Compliance with exchange and cloudhub APIs
12
All contents © MuleSoft, LLC
Implementation Strategy
All contents © MuleSoft, LLC
Tool Requirements
● Self contained Mulesoft application
● Fast and lightweight
● Run on a scheduled base
● Configurable
● Anypoint Platform APIs Integration:
○ Exchange
○ Cloudhub
○ Visualizer
● HTML reports sent via email
14
All contents © MuleSoft, LLC
Technical Challenge - Exchange API
• Paginated results
• Limit 250 results
• Cannot get the total number of Exchange Assets
15
All contents © MuleSoft, LLC
Solution - Components
17
Scheduler VM Queue
HTTP Connector (Requester) Object Store
Email Connector
All contents © MuleSoft, LLC
Solution - Diagram Flow - Part 1
18
{
offset: 0
}
{
"app-name": {
"naming": true,
"nameLength": false,
"description": true
}
}
All contents © MuleSoft, LLC
Solution - Diagram Flow - Part 2
19
{
"app-name": {
"TEST": {
"naming": true,
"layer": false
},
"PREPROD": {
"naming": false,
"layer": false
}
}
}
All contents © MuleSoft, LLC
Case Study
All contents © MuleSoft, LLC
CI/CD Fundamentals
All contents © MuleSoft, LLC
CI/CD (or Continuous Integration and Continuous Delivery/Deployment) represents a set of modern software development best practices
aimed at automating and improving the development and delivery process. It enables developers to deliver code changes frequently and reliably
without error.
Benefits of CI/CD include:
1. Faster Delivery: Automating the build, test, and deployment processes speeds up the delivery of new features and bug fixes.
2. Consistency: Automated processes reduce the chance of human errors, ensuring consistency in the deployment process.
3. Early Detection of Issues: CI/CD pipelines include automated testing, which helps catch and address issues early in the development cycle.
4. Increased Collaboration: CI/CD encourages collaboration among development and operations teams, leading to more efficient and effective software
delivery.
What is CI/CD
CI
C
D
All contents © MuleSoft, LLC
Continuous Integration/Delivery/Deployment
● Objective: Automate the
delivery of software to various
environments (like staging or
production) after passing the
integration and testing phases.
● Process: Once code changes
have been integrated and
tested successfully, the
software is automatically
deployed to a staging
environment. This allows for
further testing in an
environment that closely
resembles production. If the
tests pass, the software can be
promoted to production.
Delivery/Deployment
● Objective: Integrate code
changes from multiple
contributors into a shared
repository frequently.
● Process: Developers submit
their code changes to a
version control system (like
Git), and an automated build
and test process is triggered.
This ensures that the new
code integrates well with the
existing codebase and doesn't
introduce errors.
Integration
CI
C
D
All contents © MuleSoft, LLC
CI/CD Tools
Function Definition List of third party tools**
Source Code
Management
A tool that is used to store and version source code
Dependency
Management Tools
Tools used to manage project dependencies to ensure uniform
project builds
Automation Service Tools used to automate the process of building and deploying
applications
Artifact Repository Tool used to store different artifacts associated with project
Infrastructure
Automation
Tools used for configuration management associated with
infrastructure
Configuration/ Secrets
Management
Tools used to store secure configuration details associated with
projects
**This is an indicative/sample list only
All contents © MuleSoft, LLC
CI/CD on MuleSoft
All contents © MuleSoft, LLC
Flow Designer
Mocking Service
API Console
Anypoint Studio
MUnit
Runtime Manager
API Manager
Anypoint Analytics
Anypoint Exchange
API Portals
API Designer
29
CI/CD applied to Mulesoft approach
All contents © MuleSoft, LLC
CI/CD Flow example using Anypoint Platform
MUnit
All contents © MuleSoft, LLC
Demo scenario
All contents © MuleSoft, LLC
In the scenario we will cover:
1. Gitflow WorkFlow: we will define an example of Gitflow Workflow for a development team.
2. Pipelines Design: we will design the pipelines to support our Git WorkFlow and realize the CI/CD process.
3. Configure the app: we will see an example of Maven configuration to build, run Munit tests and deploy on CloudHub 2.0 automatically.
4. Configure the pipelines: we will see a basic implementation of the CI/CD pipelines using GitHub Actions.
5. Best practices: During our configuration we will discuss common best practices to use when building the CI/CD pipelines.
Demo scenario
MUnit
All contents © MuleSoft, LLC
Gitflow Workflow
Developers work on the
feature branches for new
features
Once features are ready,
developers will merge in
the stable develop branch
When development is
done, the code is moved to
release branch for QA
testing
When the code is ready for
release, the code is moved
to main branch and a new
version is created
All contents © MuleSoft, LLC
Pipelines Design
Check out develop Build Run tests Deploy to dev
Publish artifact
On Pull Request to develop branch
Check out release Build Run tests Deploy to qa
Publish artifact
On Pull Request to release branch
Check out main Configure git Extract version Create Release
Tag version
On Pull Request to main branch
Get version Check out version Build Deploy to prod
Publish artifact
Manual deploy of a version to prod env
For the scenario, 4 pipelines will be created:
All contents © MuleSoft, LLC
Configure the App
Maven deployment: configure the Mule Maven Plugin
<cloudhub2Deployment>
<uri>https://anypoint.mulesoft.com </uri>
<provider>MC</provider>
<environment>dev</environment>
<target>Cloudhub-US-East-2</target>
<muleVersion>4.4.0</muleVersion>
<server>anypoint-exchange-v3</server>
<applicationName>${project.name}</applicationName>
<replicas>1</replicas>
<vCores>0.1</vCores>
<deploymentSettings>
<lastMileSecurity>false</lastMileSecurity>
<forwardSslSession>false</forwardSslSession>
<generateDefaultPublicUrl>true</generateDefaultPublicUrl>
</deploymentSettings>
</cloudhub2Deployment>
Maven config example:
type
target-name
version
requirements
ingress-settings
All contents © MuleSoft, LLC
Configure the App
Maven deployment method: Configure distribution
Distribution Management example:
<distributionManagement>
<repository>
<id>anypoint-exchange-v3</id>
<name>Exchange Private Repository</name>
<url>https://maven.anypoint.mulesoft.com/api/v3/organizations/${project.groupId}/maven</url>
<layout>default</layout>
</repository>
</distributionManagement>
Maven Plugin update example:
<properties> ...
<mule.maven.plugin.version>3.8.1</mule.maven.plugin.version>
</properties>
All contents © MuleSoft, LLC
Demo
All contents © MuleSoft, LLC
Thank you!

More Related Content

Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx

  • 1. Monday 18/12/2023 Devops in Mulesoft: A Journey Through Monitoring and CI/CD Best practices
  • 2. All contents © MuleSoft, LLC The information presented in this slides are proprietary to MuleSoft. This presentation is not subject to your license agreement or any other service or subscription agreement with MuleSoft. MuleSoft has no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation and MuleSoft's strategy and possible future developments, products and or platforms directions and functionality are all subject to change and may be changed by MuleSoft at any time for any reason without notice. The information on this document is not a commitment, promise or legal obligation to deliver any material, code or functionality. This document is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This document is for informational purposes and may not be incorporated into a contract. MuleSoft assumes no responsibility for errors or omissions in this document, except if such damages were caused by MuleSoft intentionally or grossly negligent. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions. Safe Harbor statement
  • 3. All contents © MuleSoft, LLC Introductions Speakers Moderators
  • 4. All contents © MuleSoft, LLC Agenda ● Monitoring Framework ○ Tool Overview ○ Key features and capabilities ○ Implementation strategy ○ Case study ● DevOps ○ CI/CD fundamentals ○ Continuous Integration/Delivery ○ MuleSoft best practices and demo ● Q/A ● Wrap up
  • 5. All contents © MuleSoft, LLC Monitoring Framework
  • 6. All contents © MuleSoft, LLC What is the Exchange Monitoring Framework? Exchange Monitoring Framework is a new and innovative tool developed to help developers and organizations to manage Assets, APIs and Applications 6
  • 7. All contents © MuleSoft, LLC Anypoint Platform Components Overview • Design Center • Exchange • DataGraph • Access Management • API Manager • Runtime Manager • API Governance • Anypoint MQ • Anypoint Visualizer • Monitoring • Secrets Manager 7
  • 8. All contents © MuleSoft, LLC Why is it important? • Consistency • Documentation • Reduced Errors • Onboarding and Collaboration • Quality Assurance • Maintainability • Searchability 8
  • 9. All contents © MuleSoft, LLC Key Features And Capabilities
  • 10. All contents © MuleSoft, LLC Anypoint Exchange Checks • Naming convention of exchange assets • Assets name length • Description length 10
  • 11. All contents © MuleSoft, LLC Cloudhub Checks • Application naming convention • Exchange naming compliance • Compliance to the API-led design on Anypoint Visualizer 11
  • 12. All contents © MuleSoft, LLC What’s next? • VCores utilization of every deployed application • API manager checks (naming convention, etc.) • Compliance with exchange and cloudhub APIs 12
  • 13. All contents © MuleSoft, LLC Implementation Strategy
  • 14. All contents © MuleSoft, LLC Tool Requirements ● Self contained Mulesoft application ● Fast and lightweight ● Run on a scheduled base ● Configurable ● Anypoint Platform APIs Integration: ○ Exchange ○ Cloudhub ○ Visualizer ● HTML reports sent via email 14
  • 15. All contents © MuleSoft, LLC Technical Challenge - Exchange API • Paginated results • Limit 250 results • Cannot get the total number of Exchange Assets 15
  • 16. All contents © MuleSoft, LLC Solution - Components 17 Scheduler VM Queue HTTP Connector (Requester) Object Store Email Connector
  • 17. All contents © MuleSoft, LLC Solution - Diagram Flow - Part 1 18 { offset: 0 } { "app-name": { "naming": true, "nameLength": false, "description": true } }
  • 18. All contents © MuleSoft, LLC Solution - Diagram Flow - Part 2 19 { "app-name": { "TEST": { "naming": true, "layer": false }, "PREPROD": { "naming": false, "layer": false } } }
  • 19. All contents © MuleSoft, LLC Case Study
  • 20. All contents © MuleSoft, LLC CI/CD Fundamentals
  • 21. All contents © MuleSoft, LLC CI/CD (or Continuous Integration and Continuous Delivery/Deployment) represents a set of modern software development best practices aimed at automating and improving the development and delivery process. It enables developers to deliver code changes frequently and reliably without error. Benefits of CI/CD include: 1. Faster Delivery: Automating the build, test, and deployment processes speeds up the delivery of new features and bug fixes. 2. Consistency: Automated processes reduce the chance of human errors, ensuring consistency in the deployment process. 3. Early Detection of Issues: CI/CD pipelines include automated testing, which helps catch and address issues early in the development cycle. 4. Increased Collaboration: CI/CD encourages collaboration among development and operations teams, leading to more efficient and effective software delivery. What is CI/CD CI C D
  • 22. All contents © MuleSoft, LLC Continuous Integration/Delivery/Deployment ● Objective: Automate the delivery of software to various environments (like staging or production) after passing the integration and testing phases. ● Process: Once code changes have been integrated and tested successfully, the software is automatically deployed to a staging environment. This allows for further testing in an environment that closely resembles production. If the tests pass, the software can be promoted to production. Delivery/Deployment ● Objective: Integrate code changes from multiple contributors into a shared repository frequently. ● Process: Developers submit their code changes to a version control system (like Git), and an automated build and test process is triggered. This ensures that the new code integrates well with the existing codebase and doesn't introduce errors. Integration CI C D
  • 23. All contents © MuleSoft, LLC CI/CD Tools Function Definition List of third party tools** Source Code Management A tool that is used to store and version source code Dependency Management Tools Tools used to manage project dependencies to ensure uniform project builds Automation Service Tools used to automate the process of building and deploying applications Artifact Repository Tool used to store different artifacts associated with project Infrastructure Automation Tools used for configuration management associated with infrastructure Configuration/ Secrets Management Tools used to store secure configuration details associated with projects **This is an indicative/sample list only
  • 24. All contents © MuleSoft, LLC CI/CD on MuleSoft
  • 25. All contents © MuleSoft, LLC Flow Designer Mocking Service API Console Anypoint Studio MUnit Runtime Manager API Manager Anypoint Analytics Anypoint Exchange API Portals API Designer 29 CI/CD applied to Mulesoft approach
  • 26. All contents © MuleSoft, LLC CI/CD Flow example using Anypoint Platform MUnit
  • 27. All contents © MuleSoft, LLC Demo scenario
  • 28. All contents © MuleSoft, LLC In the scenario we will cover: 1. Gitflow WorkFlow: we will define an example of Gitflow Workflow for a development team. 2. Pipelines Design: we will design the pipelines to support our Git WorkFlow and realize the CI/CD process. 3. Configure the app: we will see an example of Maven configuration to build, run Munit tests and deploy on CloudHub 2.0 automatically. 4. Configure the pipelines: we will see a basic implementation of the CI/CD pipelines using GitHub Actions. 5. Best practices: During our configuration we will discuss common best practices to use when building the CI/CD pipelines. Demo scenario MUnit
  • 29. All contents © MuleSoft, LLC Gitflow Workflow Developers work on the feature branches for new features Once features are ready, developers will merge in the stable develop branch When development is done, the code is moved to release branch for QA testing When the code is ready for release, the code is moved to main branch and a new version is created
  • 30. All contents © MuleSoft, LLC Pipelines Design Check out develop Build Run tests Deploy to dev Publish artifact On Pull Request to develop branch Check out release Build Run tests Deploy to qa Publish artifact On Pull Request to release branch Check out main Configure git Extract version Create Release Tag version On Pull Request to main branch Get version Check out version Build Deploy to prod Publish artifact Manual deploy of a version to prod env For the scenario, 4 pipelines will be created:
  • 31. All contents © MuleSoft, LLC Configure the App Maven deployment: configure the Mule Maven Plugin <cloudhub2Deployment> <uri>https://anypoint.mulesoft.com </uri> <provider>MC</provider> <environment>dev</environment> <target>Cloudhub-US-East-2</target> <muleVersion>4.4.0</muleVersion> <server>anypoint-exchange-v3</server> <applicationName>${project.name}</applicationName> <replicas>1</replicas> <vCores>0.1</vCores> <deploymentSettings> <lastMileSecurity>false</lastMileSecurity> <forwardSslSession>false</forwardSslSession> <generateDefaultPublicUrl>true</generateDefaultPublicUrl> </deploymentSettings> </cloudhub2Deployment> Maven config example: type target-name version requirements ingress-settings
  • 32. All contents © MuleSoft, LLC Configure the App Maven deployment method: Configure distribution Distribution Management example: <distributionManagement> <repository> <id>anypoint-exchange-v3</id> <name>Exchange Private Repository</name> <url>https://maven.anypoint.mulesoft.com/api/v3/organizations/${project.groupId}/maven</url> <layout>default</layout> </repository> </distributionManagement> Maven Plugin update example: <properties> ... <mule.maven.plugin.version>3.8.1</mule.maven.plugin.version> </properties>
  • 33. All contents © MuleSoft, LLC Demo
  • 34. All contents © MuleSoft, LLC Thank you!