More Related Content
Similar to Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx (20)
More from Alfonso Martino (6)
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
- 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
- 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
- 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
- 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
- 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
}
}
}
- 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
- 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
- 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>