Culture of Automation
CI/CD
Martin Sauvé
Solutions Architect,
[email protected]
Supply Chain
Source: Dave Gray, The Connected Company
Autonomy
Source: Dave Gray, The Connected Company
Why Automation Matters
Deployment
Deployment
Frequency Frequency
Reduces
Reduces Increases Increases
Changes
Changes Automation
Process
Increases/Refines Reduces
Increases Increases
Risks
Risks
Culture of automation
● Faster Delivery
● Higher Quality
● Less Risks
Prioritization Automation Small chunks - high throughput
Pressure ?
Feedback Visibility Awareness
5
• Single source of truth
• Infrastructure as Code
• Build Code for Production
• Provide Visibility to everyone who needs
• Automate to deployment in a clone of production/production – “Happy Path”
Developer Workflow DEV
CI/CD Pipeline
Provision Environment
INSTALL INSTALL CONFIG START
MySQL JBoss JBoss JBoss
UNIT
CODE COMMIT
TEST
Create Release
STATIC
CREATE OWASP CREATE
BUILD CODE DEPLOY
SNAPSHOT TESTING RELEASE
ANALYSIS
Developer Workflow DEV
What about Ansible ?
USE CASE #1 – Pipeline installation and configuration
• Several Roles available in Galaxy or in Communities supporting the toolchain
• Strong Ecosystem
• Demo was installed exclusively with Ansible. Very few manual intervention
USE CASE #2 – Jenkins Ansible Plugin/Integration
• Several Jobs in the Pipeline are done by Ansible Playbooks
• For example, dynamic provisioning and configuration of dev environment
USE CASE #3 – Provision Environment
• Provision nodes and OS configuration
• Provision Application Server/Database
Developer Workflow DEV
CI/CD Pipeline
Provision Environment
INSTALL INSTALL CONFIG START
MySQL JBoss JBoss JBoss
UNIT
CODE COMMIT
TEST
Create Release
STATIC
CREATE OWASP CREATE
BUILD CODE DEPLOY
SNAPSHOT TESTING RELEASE
ANALYSIS
DEMO !!!
In the demo:
• Single source of truth - GitHub
• Infrastructure as Code - Ansible playbooks/roles in source control
• Build Code for Production – Sonar/ZAP/JUnit
• Provide Visibility to everyone who needs - Jenkins UI, Sonar UI, ZAP Report
• Automate to deployment in a clone of production/production – “Happy Path” – Jenkins/Ansible
Part 2 – Coming soon
CICD with Containers
Ansible plugin – This plugin lets you invoke Ansible playbooks
using Jenkins and Ansible Core.
You can also use Dynamic Inventories from places like Cobbler,
OpenShift, OpenStack, Amazon EC2 and more.
OpenShift Sync plugin – Sync OpenShift Builds and
BuildConfigs with the state of Jenkins and Jenkins Jobs.
OpenShift Pipeline plugin – Exposes OpenShift’s functionality
(such as triggering builds/deployments, promoting images from
dev to test to production, or scaling deployed apps) to Jenkins
WildFly / JBoss EAP plugin – Enables Jenkins to automatically
deploy apps to local or remote, standalone or domain WildFly
and/or JBoss EAP
Kubernetes plugin – The base Kubernetes plugin primarily
exists to allow you to dynamically provision Jenkins slaves within
a Kubernetes cluster, for scalability as well as providing pods
with specific runtimes for specific jobs.
Jenkins in the Red Hat CI/CD Ecosystem
Follow me on Github:
http://github.com/masauve/
http://github.com/masauve/cicd-pipeline - Demo setup to be
posted soon