Nov 12, 2020
Online Spanish MuleSoft Meetup
Group
Continuous Integration and Continuous Delivery
(CI/CD) in Mule
3
● Introductions
● Continuous Integration and Continuous Delivery (CI/CD) in Mule
● What’s next?
● Next event
Agenda
#MuleSoftMeetups
4
Organizers
#MuleSoftMeetups
Alexandra Martinez
Senior MuleSoft Developer
at Bits In Glass
MuleSoft Ambassadress
Founder and Content
Creator at ProstDev
3+ years using MuleSoft
5x MuleSoft Certified
Luis Cantu
Independent Technical
Consultant
5x MuleSoft Certified
Salesforce Certified
integration specialist
Entrepreneur
Investor and Advisor at
innovalti
Josue Santiago
Integration Architect
at Appirio
Senior enterprise MuleSoft
application Integration
Technical/Solution architect
with over 14 years of
experience in successfully
delivering large IT projects
and applying new
technology solutions to
solve complex business
problems
David Morfin Diaz
MuleSoft Developer
at Bhuvi IT Solutions
4x MuleSoft Certified
Salesforce Administrator
Certified
AWS Cloud Practitioner
Certified
Josue Santiago
Integration Architect at Appirio
Continuous Integration and
Continuous Delivery (CI/CD) in
Mule
MuleSoft Certified Architect
MuleSoft Certified Developer
Currently Working at Wipro/Appirio as Integration Technical/Solution Architect
Josue Santiago
7
● Continuous Integration:
○ Is a coding philosophy and set of practices that drive development teams to implement small changes
and check in code to version control repositories frequently.
○ Since in modern applications is required to develop code in different platforms, tools and teams is
necessary a mechanism to integrate and validate its changes.
● Continuous Delivery:
○ Automates the delivery of applications to selected infrastructure environments. Most teams work with
multiple environments.
What is CI CD?
Benefits of CI/CD
● Smaller Code Changes
● Fault Isolations
● Faster Mean Time to Resolution (MTTR)
● More Test Reliability
● Faster Release Date
● Improve Customer Satisfaction
8
What is a CI CD Pipeline?
● Is a series of steps that must be performed in order to deliver a new version of software.
9
CI/CD Tools For Deploying MuleSoft Application
● GIT
● MUNIT
● Jenkins
● NEXUS
● SonarQube
10
GIT
● Git is the most used version control system.
Git Branching strategies.
● Branching strategies allow a code base to evolve organically in a coherent way. A branching
strategy is a convention, or set of rules, that describes when branches are created, naming
guidelines for branches, what use branches should have, and so on.
11
Git Flow
12
Main Branches
● The central repo holds two main branches with an
infinite lifetime:
○ Master
○ Develop
● Master is the main branch, where the source code of
the HEAD always reflects a production-ready state.
● Develop the main branch, where the source code of the
HEAD always reflects a state with the latest delivered
development changes for next release.
13
Supporting Branches
● Feature branches
● Release branches
● Hotfix branches
● Feature branches: Are used to develop new features.
○ May branch off from: develop
○ Must merge back into: develop
14
Release branch
● Support preparation of a new production release. Reflects the desire state of the new release.
At least all features that are targeted for the release-to-be-built must be merged.
● May branch off from: develop
● May merge back into: develop and master
● Branch naming convention: release-*
15
Hotfix branches
● They arise from the necessity to act immediately
upon an undesired state of live production version.
When a critical bug in a production version
● May branch off from: master
● Must merge back into: develop and master
16
Munit
● Is a native testing framework for Mule. It allows test in your local environment, or in your continuous
integration and continuous delivery (CD/CD) settings.
○ Design and test your Mule apps and APIs, graphically or in XML.
● Munit matchers
○ Are a set of Data Weave functions to define assertion conditions for any value in an expression. When defining
matchers, include the prefix MunitTools:: in the expression
● Type of Matchers
○ Core Matchers
○ String Matchers
○ Comparable Matchers
○ Iterable and Map Matchers
17
Configure Mule Maven Plugin
● Add dependencies
● Add repositories
● Configure plugin
● Configure Shared libraries
● Configure additional dependencies
● https://docs.mulesoft.com/mule-runtime/4.3/mmp-concept
● https://docs.mulesoft.com/mule-runtime/3.9/mule-maven-plugin
18
Jenkins
● Is an open source automation server that build, test, and deploy software.
● Configure credentials in Jenkins.
● Create pipeline (Jenkins file, Jenkins job)
● Run the job
19
20
● Share:
○ Tweet using the hashtag #MuleSoftMeetups
○ Invite your network to join: https://meetups.mulesoft.com/online-group-spanish/
● Feedback:
○ Fill out the survey feedback and suggest topics for upcoming events
○ Contact MuleSoft at meetups@mulesoft.com for ways to improve the program
What’s next?
#MuleSoftMeetups
21
● Meetup en español #6 - MuleSoft para profesionales de Java (segunda edición)
○ Thu, Nov 26, 2020
○ 7:00 PM (CET – Madrid)
■ 10:00 AM PT - 11:00 AM MT - 12:00 PM CT - 1:00 PM ET
● Speaker:
○ Andres Cespedes
○ Senior Technical Instructor at MuleSoft
● https://meetups.mulesoft.com/events/details/mulesoft-online-group-spanish-presents-meetup-
en-espanol-6-mulesoft-para-profesionales-de-java-segunda-edicion/#/
Next event
#MuleSoftMeetups
Thank you

Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD) in Mule

  • 1.
    Nov 12, 2020 OnlineSpanish MuleSoft Meetup Group Continuous Integration and Continuous Delivery (CI/CD) in Mule
  • 2.
    3 ● Introductions ● ContinuousIntegration and Continuous Delivery (CI/CD) in Mule ● What’s next? ● Next event Agenda #MuleSoftMeetups
  • 3.
    4 Organizers #MuleSoftMeetups Alexandra Martinez Senior MuleSoftDeveloper at Bits In Glass MuleSoft Ambassadress Founder and Content Creator at ProstDev 3+ years using MuleSoft 5x MuleSoft Certified Luis Cantu Independent Technical Consultant 5x MuleSoft Certified Salesforce Certified integration specialist Entrepreneur Investor and Advisor at innovalti Josue Santiago Integration Architect at Appirio Senior enterprise MuleSoft application Integration Technical/Solution architect with over 14 years of experience in successfully delivering large IT projects and applying new technology solutions to solve complex business problems David Morfin Diaz MuleSoft Developer at Bhuvi IT Solutions 4x MuleSoft Certified Salesforce Administrator Certified AWS Cloud Practitioner Certified
  • 4.
    Josue Santiago Integration Architectat Appirio Continuous Integration and Continuous Delivery (CI/CD) in Mule
  • 5.
    MuleSoft Certified Architect MuleSoftCertified Developer Currently Working at Wipro/Appirio as Integration Technical/Solution Architect Josue Santiago
  • 6.
    7 ● Continuous Integration: ○Is a coding philosophy and set of practices that drive development teams to implement small changes and check in code to version control repositories frequently. ○ Since in modern applications is required to develop code in different platforms, tools and teams is necessary a mechanism to integrate and validate its changes. ● Continuous Delivery: ○ Automates the delivery of applications to selected infrastructure environments. Most teams work with multiple environments. What is CI CD?
  • 7.
    Benefits of CI/CD ●Smaller Code Changes ● Fault Isolations ● Faster Mean Time to Resolution (MTTR) ● More Test Reliability ● Faster Release Date ● Improve Customer Satisfaction 8
  • 8.
    What is aCI CD Pipeline? ● Is a series of steps that must be performed in order to deliver a new version of software. 9
  • 9.
    CI/CD Tools ForDeploying MuleSoft Application ● GIT ● MUNIT ● Jenkins ● NEXUS ● SonarQube 10
  • 10.
    GIT ● Git isthe most used version control system. Git Branching strategies. ● Branching strategies allow a code base to evolve organically in a coherent way. A branching strategy is a convention, or set of rules, that describes when branches are created, naming guidelines for branches, what use branches should have, and so on. 11
  • 11.
  • 12.
    Main Branches ● Thecentral repo holds two main branches with an infinite lifetime: ○ Master ○ Develop ● Master is the main branch, where the source code of the HEAD always reflects a production-ready state. ● Develop the main branch, where the source code of the HEAD always reflects a state with the latest delivered development changes for next release. 13
  • 13.
    Supporting Branches ● Featurebranches ● Release branches ● Hotfix branches ● Feature branches: Are used to develop new features. ○ May branch off from: develop ○ Must merge back into: develop 14
  • 14.
    Release branch ● Supportpreparation of a new production release. Reflects the desire state of the new release. At least all features that are targeted for the release-to-be-built must be merged. ● May branch off from: develop ● May merge back into: develop and master ● Branch naming convention: release-* 15
  • 15.
    Hotfix branches ● Theyarise from the necessity to act immediately upon an undesired state of live production version. When a critical bug in a production version ● May branch off from: master ● Must merge back into: develop and master 16
  • 16.
    Munit ● Is anative testing framework for Mule. It allows test in your local environment, or in your continuous integration and continuous delivery (CD/CD) settings. ○ Design and test your Mule apps and APIs, graphically or in XML. ● Munit matchers ○ Are a set of Data Weave functions to define assertion conditions for any value in an expression. When defining matchers, include the prefix MunitTools:: in the expression ● Type of Matchers ○ Core Matchers ○ String Matchers ○ Comparable Matchers ○ Iterable and Map Matchers 17
  • 17.
    Configure Mule MavenPlugin ● Add dependencies ● Add repositories ● Configure plugin ● Configure Shared libraries ● Configure additional dependencies ● https://docs.mulesoft.com/mule-runtime/4.3/mmp-concept ● https://docs.mulesoft.com/mule-runtime/3.9/mule-maven-plugin 18
  • 18.
    Jenkins ● Is anopen source automation server that build, test, and deploy software. ● Configure credentials in Jenkins. ● Create pipeline (Jenkins file, Jenkins job) ● Run the job 19
  • 19.
    20 ● Share: ○ Tweetusing the hashtag #MuleSoftMeetups ○ Invite your network to join: https://meetups.mulesoft.com/online-group-spanish/ ● Feedback: ○ Fill out the survey feedback and suggest topics for upcoming events ○ Contact MuleSoft at meetups@mulesoft.com for ways to improve the program What’s next? #MuleSoftMeetups
  • 20.
    21 ● Meetup enespañol #6 - MuleSoft para profesionales de Java (segunda edición) ○ Thu, Nov 26, 2020 ○ 7:00 PM (CET – Madrid) ■ 10:00 AM PT - 11:00 AM MT - 12:00 PM CT - 1:00 PM ET ● Speaker: ○ Andres Cespedes ○ Senior Technical Instructor at MuleSoft ● https://meetups.mulesoft.com/events/details/mulesoft-online-group-spanish-presents-meetup- en-espanol-6-mulesoft-para-profesionales-de-java-segunda-edicion/#/ Next event #MuleSoftMeetups
  • 21.