SlideShare a Scribd company logo
1 of 33
All contents © MuleSoft, LLC
DC MULESOFT MEETUP
Setting up a CI/CD Pipeline with
MuleSoft and Azure DevOps
Speaker:
CATHERINE WILLS
MuleSoft Consultant | Big Compass, An Argano
Company
All contents © MuleSoft, LLC
DC MULESOFT MEETUP
Meetup Admin Introductions
STEPHANIE LAWRENCE
BEN STONE
All contents © MuleSoft, LLC
Google Slides does not
have an image placeholder
option. Please place an
image over this box
manually
+ First person to call out the correct answer, wins!
+ One answer per person per question
+ If you answer more than 1x per question, you are
ineligible for that question
+ If you’ve already won during today’s Meetup, you
cannot win again
+ Meetup organizers make the final decision on the trivia
winners
DC MULESOFT MEETUP
Trivia Question Rules & Regulations
All contents © MuleSoft, LLC
DC MULESOFT MEETUP SPEAKER
Catherine Wills
+ Lives in New York, originally from
Georgia
+ ~ 2 years of MuleSoft experience
in development and architecture
+ Hobbies - Watching the Dawgs
and the Braves, history museums,
skiing, and golf
All contents © MuleSoft, LLC
CI/CD + DevOps
All contents © MuleSoft, LLC 6
CI/CD is a method designed to frequently deliver applications by automating stages
within the application development lifecycle.
Continuous Integration: Incremental code changes are constantly integrated into a
main branch which is verified by an automated build and automated unit testing.
Continuous Delivery/Deployment: Automates the release of the validated code to
Production.
What is CI/CD?
All contents © MuleSoft, LLC 7
DevOps integrates the work of software development (Dev) and operations (Ops) by
facilitating team collaboration, shared responsibility, and technology automation which
aid in a holistic style of Agile software development.
What is DevOps?
All contents © MuleSoft, LLC
Advantages
8
CI/CD
● Increased speed gives rapid deliveries
● Greater efficiencies, streamlined process
● Ensured reliability
● Shorter development cycles
● Decreased deployment failures and bugs
● Enhanced quality and security
● Improved communication and collaboration
● Faster innovation
DevOp
s
All contents © MuleSoft, LLC 9
Common Branching Strategies for DevOps
GitHub Flow
● Utilizes main and feature branches
● Simple workflow for smaller teams
● Easily integrate into CI/CD pipelines
Git Flow
● Uses main, develop, release, hotfix, and
feature branches
● Easier parallel collaboration for larger teams
● Supports multiple versions of production code
Trunk-Based
Development
● Integrates into main branch once a day
● Always in releasable state
● Excellent for CI/CD pipelines
All contents © MuleSoft, LLC
Google Slides does not
have an image placeholder
option. Please place an
image over this box
manually
A. Constantly Incrementing, Constantly Deploying
B. Continuous Integration, Continuous Delivery
C. Consistently Integrating, Consistently Building
D. Continuous Increments, Constant Deployment
TRIVIA QUESTION #1
What does CI/CD stand for?
All contents © MuleSoft, LLC
CloudHub 1.0, CloudHub 2.0, and Runtime Fabric
Deployment Targets
All contents © MuleSoft, LLC 12
Highlights
CloudHub 1.0 CloudHub 2.0 Runtime Fabric
● Primary execution container
is AWS EC3 instance
● Pre-determined worker
sizes only
● Global deployment options
● Usage measured in vCores
● Container-based application
deployment
● Can deploy to shared or
private spaces
● Ingress self-service logs
● More granular vCore
allocation options
● Primary execution is
Kubernetes pod
● Granular control over
application resource
allocation
● Subject to customer data
center footprint
● Usage measured in vCores
All contents © MuleSoft, LLC
Azure DevOps
All contents © MuleSoft, LLC 15
Boards helps teams plan, track, and discuss work
Repos is a set of version control tools used to manage code
Pipelines supports CI/CD to test, build, and deploy code
Pipelines: Used to automatically build and test code projects
Releases: Holds a versioned set of artifacts specified in the CI/CD pipeline
Library: A collection of build and release assets
■ Variable Groups can be used to store values and secrets, such as runtime
properties
■ Secure Files can be used to store secure files such as the settings.xml
Azure DevOps Components
All contents © MuleSoft, LLC
Branch Policies
● Can set policies for a specific branch
namespace (i.e. develop, main) that applies
for all repositories
● Protects a branch from having changes
directly pushed to it
● Requires a pull request for code review
16
All contents © MuleSoft, LLC
Build Pipelines
● Define pipelines using YAML syntax (Fig. A) or Classic Build interface (Fig. B)
● Customizable triggers, conditions, tasks, etc.
● Test coverage and results
● Viewable logs (Fig. C)
17
Fig. A
Fig. C
Fig. B
All contents © MuleSoft, LLC
Build Trigger Variabilities
Built-in functions and predefined variables can be used in expressions to
specify various condition combinations for the Pipelines’ Stages, Jobs, or Steps
18
Trigger Type CI (Continuous Integration) PR (Pull Request) Scheduled
YAML
Version
Uses pushed (target) branch Uses source branch Uses included branch
Triggers
● Branch is specified in trigger
and is pushed to, such as git-
push or completion PR
● Manually run pipeline
● Must have build validation
branch policy
● PR created and active, not
upon PR completion
● Uses cron syntax
Runs source branch when a PR into the main branch is created, if Build Validation branch policy is set on main branch, and is succeeding
Runs main branch on a CI trigger if commit message starts with ‘Merged PR’
*Default merge commit message starts with ‘Merged PR’
All contents © MuleSoft, LLC
Release Pipelines
● Classic-style interface (Fig. A)
● Can rollback by re-deploying a previous release
● Various deployment trigger routes
● Pre and post deployment condition options
● Viewable logs (Fig. B)
19
Fig. A
Fig. B
All contents © MuleSoft, LLC
Release Creation Trigger Options
20
● Continuous Deployment
○ Creates release after successful ‘Individual CI’
build
○ Can include/exclude branches
● Pull Request
○ Creates release upon PR creation after
successful build
○ Must set build validation branch policy
○ Must set target branch and specify in Stage(s)
● Scheduled
Set Release Triggers
● Pre-Deployment Condition Triggers:
○ After Release
○ After Stage
○ Manual Only
● Deployment approvals
● Gates
○ Automatically collects health signals
■ i.e. Invoke REST API
Set Pre/Post Deployment
Conditions per Stage
All contents © MuleSoft, LLC
Google Slides does not
have an image placeholder
option. Please place an
image over this box
manually
A. Deployment Approval
B. Continuous Integration Trigger
C. Gates
D. Branch Policy
TRIVIA QUESTION #2
What can be used to protect a branch from being
directly pushed to?
All contents © MuleSoft, LLC
CI/CD Pipeline Demo
All contents © MuleSoft, LLC 23
Tools
● Anypoint Studio v7.14.0
● Mule Runtime v4.4.0
● MUnit Tools v2.3.13
● Mule Maven Plugin v3.8.0
● Apache Maven v3.8.8 (Mule Maven Plugin is not compatible with latest Apache Maven version, v3.9.x)
● Anypoint Exchange v3
● Anypoint Platform: Runtime Manager
● Azure DevOps Free Tier
Utilities
Environments Used for Demo
● Development
● QA
● Production
Files
● azure-pipelines.yml
● nonprod-settings.xml
● prod-settings.xml
● pom.xml
● mule-artifact.json (CH 1.0 Only)
All contents © MuleSoft, LLC
The
Pipeline
Pathway
24
All contents © MuleSoft, LLC
7) Configure mule-
artifact.json (CH
1.0 only)
6) Configure
pom.xml
5) Add New
Release Pipeline
4) Add properties
to Library
3) Configure &
Install
settings.xml
2) Pull in azure-
pipelines.yml and
configure
1) Create a Build
Pipeline
25
Azure CICD Pipeline Set-Up
All contents © MuleSoft, LLC
Configure azure-pipelines.yml
27
CI trigger that allows main branch to run when updated via PR
1
Uses latest ubuntu, a Microsoft-hosted agent
2
Access to properties from default and dev variable groups from Library to use within Stage
3
Runs job if predefined variable, Build.Reason, is either ‘Individual CI’ or ‘Manual’, and has succeeded thus
far
4
Downloads settings.xml for lower environments from Secure Files in Library
5
Publishes Artifact to Exchange (CH 2.0 & RTF Only)
6
Runs MUnit tests, builds, and deploys to DEV environment
7
Gets <artifactId> from pom.xml and sets it as Pipeline variable, $(artifactId)
8
Publishes pipeline build artifact, pom.xml, to Container named ‘drop’
10
Publishes pipeline build artifact, JAR file, to Container named ‘drop’
9
All contents © MuleSoft, LLC
Configure and Install settings.xml
1. Install in Secure files of Library
2. Grant pipelines permission
*One settings.xml file is for the lower
environments, and one is for the Production
environment.
28
All contents © MuleSoft, LLC
1
Add properties in Mule
Maven Plugin Configuration
Configure pom.xml
35
Add MUnit executions
and configurations
2
3 Add Distribution Management (CH2.0, RTF)
All contents © MuleSoft, LLC
Property Differences in pom.xml
36
CloudHub 1.0 CloudHub 2.0
Runtime Fabric
All contents © MuleSoft, LLC
Configure mule-artifact.json (CH 1.0 Only)
37
Add names of secure properties to
the mule-artifact.json file to hide
them in Runtime Manager
Example of hidden properties in
Runtime Manager Settings →
All contents © MuleSoft, LLC 38
Deployment Target Setup Differences
CloudHub 1.0 CloudHub 2.0 Runtime Fabric
● Hide properties in mule-
artifact.json
● Protect properties in
pom.xml
● Must publish to Exchange
prior to deployment
● Must have Distribution
Management in pom.xml
● Protect properties in
pom.xml
● Must publish to Exchange
prior to deployment
● Must have Distribution
Management in pom.xml
● Uses Runtime Fabric agent
All contents © MuleSoft, LLC
Google Slides does not
have an image placeholder
option. Please place an
image over this box
manually
A. settings.xml
B. azure-pipelines.yml
C. pom.xml
D. mule-artifact.json
TRIVIA QUESTION #3
Which file can be used to protect secure property
values in Runtime Manager for CH 2.0 & RTF?
All contents © MuleSoft, LLC
Questions?
CONNECT ON LINKEDIN
CATHERINE WILLS
Consultant | Big Compass
All contents © MuleSoft, LLC
Google Slides does not
have an image placeholder
option. Please place an
image over this box
manually
Share on Social Meetup Feedback
+ Use the hashtags #MuleSoftMeetups &
#DCMuleSoftMeetup
+ Don’t forget to tag @BigCompass
+ Please fill out this 1 minute survey to
provide feedback and topic suggestions

More Related Content

What's hot

What's hot (20)

Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
 
Mule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsMule access management - Managing Environments and Permissions
Mule access management - Managing Environments and Permissions
 
Best Practices for API Security
Best Practices for API SecurityBest Practices for API Security
Best Practices for API Security
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Azure key vault
Azure key vaultAzure key vault
Azure key vault
 
Introduction to CloudHub 2.0
Introduction to CloudHub 2.0Introduction to CloudHub 2.0
Introduction to CloudHub 2.0
 
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
 
Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint Platform
 
[Final] best practices for access management (mule soft meetups riyadh) - j...
[Final] best practices for access management (mule soft meetups   riyadh) - j...[Final] best practices for access management (mule soft meetups   riyadh) - j...
[Final] best practices for access management (mule soft meetups riyadh) - j...
 
Power of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X EnginePower of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X Engine
 
10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration
 
OpenShift-Technical-Overview.pdf
OpenShift-Technical-Overview.pdfOpenShift-Technical-Overview.pdf
OpenShift-Technical-Overview.pdf
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices Webinar
 
Vanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect pptVanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect ppt
 
Azure Pipelines
Azure PipelinesAzure Pipelines
Azure Pipelines
 
Devops maturity model
Devops maturity modelDevops maturity model
Devops maturity model
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 
Mulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductionMulesoft Anypoint platform introduction
Mulesoft Anypoint platform introduction
 

Similar to Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps

Robust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumRobust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and Cilium
Weaveworks
 

Similar to Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps (20)

Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid DeploymentMulesoft AnyyPoint Monitoring for Hybrid Deployment
Mulesoft AnyyPoint Monitoring for Hybrid Deployment
 
Webinar: End to End Security & Operations with Chainguard and Weave GitOps
Webinar: End to End Security & Operations with Chainguard and Weave GitOpsWebinar: End to End Security & Operations with Chainguard and Weave GitOps
Webinar: End to End Security & Operations with Chainguard and Weave GitOps
 
Ahmadabad mule soft_meetup_6march2021_azure_CICD
Ahmadabad mule soft_meetup_6march2021_azure_CICDAhmadabad mule soft_meetup_6march2021_azure_CICD
Ahmadabad mule soft_meetup_6march2021_azure_CICD
 
Automate mule deployments with github actions and travis ci
Automate mule deployments with github actions  and  travis ciAutomate mule deployments with github actions  and  travis ci
Automate mule deployments with github actions and travis ci
 
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11julHyd virtual meetupslides11jul
Hyd virtual meetupslides11jul
 
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Robust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumRobust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and Cilium
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusion
 
Sydney mule soft meetup 30 april 2020
Sydney mule soft meetup   30 april 2020Sydney mule soft meetup   30 april 2020
Sydney mule soft meetup 30 april 2020
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOps
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18
 
Configuration Management and Deployment
Configuration Management and DeploymentConfiguration Management and Deployment
Configuration Management and Deployment
 

More from Big Compass

Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and SlackDenver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Big Compass
 

More from Big Compass (7)

Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
Denver MuleSoft Meetup: TDX Talk - Automatically Secure and Manage any API at...
 
DC MuleSoft Meetup: TDX Talk: API Security The 3 Keys To Protect Your Digital...
DC MuleSoft Meetup: TDX Talk: API Security The 3 Keys To Protect Your Digital...DC MuleSoft Meetup: TDX Talk: API Security The 3 Keys To Protect Your Digital...
DC MuleSoft Meetup: TDX Talk: API Security The 3 Keys To Protect Your Digital...
 
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
 
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
 
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and SlackDenver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
Denver MuleSoft Meetup: Approve this! (or reject this!) with MuleSoft and Slack
 
Denver MuleSoft Meetup: How To Best Use Anypoint Monitoring In Your Anypoint ...
Denver MuleSoft Meetup: How To Best Use Anypoint Monitoring In Your Anypoint ...Denver MuleSoft Meetup: How To Best Use Anypoint Monitoring In Your Anypoint ...
Denver MuleSoft Meetup: How To Best Use Anypoint Monitoring In Your Anypoint ...
 
Denver MuleSoft Meetup: Cool Features in DataWeave 2.3 and 2.4
Denver MuleSoft Meetup: Cool Features in DataWeave 2.3 and 2.4Denver MuleSoft Meetup: Cool Features in DataWeave 2.3 and 2.4
Denver MuleSoft Meetup: Cool Features in DataWeave 2.3 and 2.4
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 

Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps

  • 1. All contents © MuleSoft, LLC DC MULESOFT MEETUP Setting up a CI/CD Pipeline with MuleSoft and Azure DevOps Speaker: CATHERINE WILLS MuleSoft Consultant | Big Compass, An Argano Company
  • 2. All contents © MuleSoft, LLC DC MULESOFT MEETUP Meetup Admin Introductions STEPHANIE LAWRENCE BEN STONE
  • 3. All contents © MuleSoft, LLC Google Slides does not have an image placeholder option. Please place an image over this box manually + First person to call out the correct answer, wins! + One answer per person per question + If you answer more than 1x per question, you are ineligible for that question + If you’ve already won during today’s Meetup, you cannot win again + Meetup organizers make the final decision on the trivia winners DC MULESOFT MEETUP Trivia Question Rules & Regulations
  • 4. All contents © MuleSoft, LLC DC MULESOFT MEETUP SPEAKER Catherine Wills + Lives in New York, originally from Georgia + ~ 2 years of MuleSoft experience in development and architecture + Hobbies - Watching the Dawgs and the Braves, history museums, skiing, and golf
  • 5. All contents © MuleSoft, LLC CI/CD + DevOps
  • 6. All contents © MuleSoft, LLC 6 CI/CD is a method designed to frequently deliver applications by automating stages within the application development lifecycle. Continuous Integration: Incremental code changes are constantly integrated into a main branch which is verified by an automated build and automated unit testing. Continuous Delivery/Deployment: Automates the release of the validated code to Production. What is CI/CD?
  • 7. All contents © MuleSoft, LLC 7 DevOps integrates the work of software development (Dev) and operations (Ops) by facilitating team collaboration, shared responsibility, and technology automation which aid in a holistic style of Agile software development. What is DevOps?
  • 8. All contents © MuleSoft, LLC Advantages 8 CI/CD ● Increased speed gives rapid deliveries ● Greater efficiencies, streamlined process ● Ensured reliability ● Shorter development cycles ● Decreased deployment failures and bugs ● Enhanced quality and security ● Improved communication and collaboration ● Faster innovation DevOp s
  • 9. All contents © MuleSoft, LLC 9 Common Branching Strategies for DevOps GitHub Flow ● Utilizes main and feature branches ● Simple workflow for smaller teams ● Easily integrate into CI/CD pipelines Git Flow ● Uses main, develop, release, hotfix, and feature branches ● Easier parallel collaboration for larger teams ● Supports multiple versions of production code Trunk-Based Development ● Integrates into main branch once a day ● Always in releasable state ● Excellent for CI/CD pipelines
  • 10. All contents © MuleSoft, LLC Google Slides does not have an image placeholder option. Please place an image over this box manually A. Constantly Incrementing, Constantly Deploying B. Continuous Integration, Continuous Delivery C. Consistently Integrating, Consistently Building D. Continuous Increments, Constant Deployment TRIVIA QUESTION #1 What does CI/CD stand for?
  • 11. All contents © MuleSoft, LLC CloudHub 1.0, CloudHub 2.0, and Runtime Fabric Deployment Targets
  • 12. All contents © MuleSoft, LLC 12 Highlights CloudHub 1.0 CloudHub 2.0 Runtime Fabric ● Primary execution container is AWS EC3 instance ● Pre-determined worker sizes only ● Global deployment options ● Usage measured in vCores ● Container-based application deployment ● Can deploy to shared or private spaces ● Ingress self-service logs ● More granular vCore allocation options ● Primary execution is Kubernetes pod ● Granular control over application resource allocation ● Subject to customer data center footprint ● Usage measured in vCores
  • 13. All contents © MuleSoft, LLC Azure DevOps
  • 14. All contents © MuleSoft, LLC 15 Boards helps teams plan, track, and discuss work Repos is a set of version control tools used to manage code Pipelines supports CI/CD to test, build, and deploy code Pipelines: Used to automatically build and test code projects Releases: Holds a versioned set of artifacts specified in the CI/CD pipeline Library: A collection of build and release assets ■ Variable Groups can be used to store values and secrets, such as runtime properties ■ Secure Files can be used to store secure files such as the settings.xml Azure DevOps Components
  • 15. All contents © MuleSoft, LLC Branch Policies ● Can set policies for a specific branch namespace (i.e. develop, main) that applies for all repositories ● Protects a branch from having changes directly pushed to it ● Requires a pull request for code review 16
  • 16. All contents © MuleSoft, LLC Build Pipelines ● Define pipelines using YAML syntax (Fig. A) or Classic Build interface (Fig. B) ● Customizable triggers, conditions, tasks, etc. ● Test coverage and results ● Viewable logs (Fig. C) 17 Fig. A Fig. C Fig. B
  • 17. All contents © MuleSoft, LLC Build Trigger Variabilities Built-in functions and predefined variables can be used in expressions to specify various condition combinations for the Pipelines’ Stages, Jobs, or Steps 18 Trigger Type CI (Continuous Integration) PR (Pull Request) Scheduled YAML Version Uses pushed (target) branch Uses source branch Uses included branch Triggers ● Branch is specified in trigger and is pushed to, such as git- push or completion PR ● Manually run pipeline ● Must have build validation branch policy ● PR created and active, not upon PR completion ● Uses cron syntax Runs source branch when a PR into the main branch is created, if Build Validation branch policy is set on main branch, and is succeeding Runs main branch on a CI trigger if commit message starts with ‘Merged PR’ *Default merge commit message starts with ‘Merged PR’
  • 18. All contents © MuleSoft, LLC Release Pipelines ● Classic-style interface (Fig. A) ● Can rollback by re-deploying a previous release ● Various deployment trigger routes ● Pre and post deployment condition options ● Viewable logs (Fig. B) 19 Fig. A Fig. B
  • 19. All contents © MuleSoft, LLC Release Creation Trigger Options 20 ● Continuous Deployment ○ Creates release after successful ‘Individual CI’ build ○ Can include/exclude branches ● Pull Request ○ Creates release upon PR creation after successful build ○ Must set build validation branch policy ○ Must set target branch and specify in Stage(s) ● Scheduled Set Release Triggers ● Pre-Deployment Condition Triggers: ○ After Release ○ After Stage ○ Manual Only ● Deployment approvals ● Gates ○ Automatically collects health signals ■ i.e. Invoke REST API Set Pre/Post Deployment Conditions per Stage
  • 20. All contents © MuleSoft, LLC Google Slides does not have an image placeholder option. Please place an image over this box manually A. Deployment Approval B. Continuous Integration Trigger C. Gates D. Branch Policy TRIVIA QUESTION #2 What can be used to protect a branch from being directly pushed to?
  • 21. All contents © MuleSoft, LLC CI/CD Pipeline Demo
  • 22. All contents © MuleSoft, LLC 23 Tools ● Anypoint Studio v7.14.0 ● Mule Runtime v4.4.0 ● MUnit Tools v2.3.13 ● Mule Maven Plugin v3.8.0 ● Apache Maven v3.8.8 (Mule Maven Plugin is not compatible with latest Apache Maven version, v3.9.x) ● Anypoint Exchange v3 ● Anypoint Platform: Runtime Manager ● Azure DevOps Free Tier Utilities Environments Used for Demo ● Development ● QA ● Production Files ● azure-pipelines.yml ● nonprod-settings.xml ● prod-settings.xml ● pom.xml ● mule-artifact.json (CH 1.0 Only)
  • 23. All contents © MuleSoft, LLC The Pipeline Pathway 24
  • 24. All contents © MuleSoft, LLC 7) Configure mule- artifact.json (CH 1.0 only) 6) Configure pom.xml 5) Add New Release Pipeline 4) Add properties to Library 3) Configure & Install settings.xml 2) Pull in azure- pipelines.yml and configure 1) Create a Build Pipeline 25 Azure CICD Pipeline Set-Up
  • 25. All contents © MuleSoft, LLC Configure azure-pipelines.yml 27 CI trigger that allows main branch to run when updated via PR 1 Uses latest ubuntu, a Microsoft-hosted agent 2 Access to properties from default and dev variable groups from Library to use within Stage 3 Runs job if predefined variable, Build.Reason, is either ‘Individual CI’ or ‘Manual’, and has succeeded thus far 4 Downloads settings.xml for lower environments from Secure Files in Library 5 Publishes Artifact to Exchange (CH 2.0 & RTF Only) 6 Runs MUnit tests, builds, and deploys to DEV environment 7 Gets <artifactId> from pom.xml and sets it as Pipeline variable, $(artifactId) 8 Publishes pipeline build artifact, pom.xml, to Container named ‘drop’ 10 Publishes pipeline build artifact, JAR file, to Container named ‘drop’ 9
  • 26. All contents © MuleSoft, LLC Configure and Install settings.xml 1. Install in Secure files of Library 2. Grant pipelines permission *One settings.xml file is for the lower environments, and one is for the Production environment. 28
  • 27. All contents © MuleSoft, LLC 1 Add properties in Mule Maven Plugin Configuration Configure pom.xml 35 Add MUnit executions and configurations 2 3 Add Distribution Management (CH2.0, RTF)
  • 28. All contents © MuleSoft, LLC Property Differences in pom.xml 36 CloudHub 1.0 CloudHub 2.0 Runtime Fabric
  • 29. All contents © MuleSoft, LLC Configure mule-artifact.json (CH 1.0 Only) 37 Add names of secure properties to the mule-artifact.json file to hide them in Runtime Manager Example of hidden properties in Runtime Manager Settings →
  • 30. All contents © MuleSoft, LLC 38 Deployment Target Setup Differences CloudHub 1.0 CloudHub 2.0 Runtime Fabric ● Hide properties in mule- artifact.json ● Protect properties in pom.xml ● Must publish to Exchange prior to deployment ● Must have Distribution Management in pom.xml ● Protect properties in pom.xml ● Must publish to Exchange prior to deployment ● Must have Distribution Management in pom.xml ● Uses Runtime Fabric agent
  • 31. All contents © MuleSoft, LLC Google Slides does not have an image placeholder option. Please place an image over this box manually A. settings.xml B. azure-pipelines.yml C. pom.xml D. mule-artifact.json TRIVIA QUESTION #3 Which file can be used to protect secure property values in Runtime Manager for CH 2.0 & RTF?
  • 32. All contents © MuleSoft, LLC Questions? CONNECT ON LINKEDIN CATHERINE WILLS Consultant | Big Compass
  • 33. All contents © MuleSoft, LLC Google Slides does not have an image placeholder option. Please place an image over this box manually Share on Social Meetup Feedback + Use the hashtags #MuleSoftMeetups & #DCMuleSoftMeetup + Don’t forget to tag @BigCompass + Please fill out this 1 minute survey to provide feedback and topic suggestions