SlideShare a Scribd company logo
Introduction to CI/CD
Introduction to CI/CD
Steve Mactaggart
State Manager - Victoria
Agenda
● What is CI and CD
● What makes good CI / CD
● How we get there
● Business benefits of it all….
What is CI and CD?
● Continuous Integration
○ An approach to be continually validating the state of a codebase
through automated testing.
○ Best achieved through integration with version control
● Continuous Delivery / Deployment
○ An approach to regularly deploying artifacts that successfully pass
the CI phase to ensure confidence around the deployment
Delivery vs Deployment
Continuous integration, continuous deployment,
and continuous delivery are like vectors that have the same
direction, but different magnitude.
Their goal is the same: make our software development and
release process faster and more robust.
The key difference between the three is in the scope of
automation applied.
Delivery vs Deployment
● Continuous Delivery
○ Automatically prepare and track a release to production
○ The desired outcome is that anyone with sufficient privileges to deploy a new
release can do so at any time in one or a few clicks. By eliminating nearly all
manual tasks, developers become more productive.
● Continuous Deployment
○ Every change in the source code is deployed to production automatically,
without explicit approval from a developer.
○ As long as it passes the quality controls
What does good look like?
What makes for good CI?
1. Decoupled stages
○ Each step in CI should do a single focused task
2. Repeatable
○ Automated in a way that is consistently repeatable
○ Tooling should work for local developers too – Local/Remote parity
3. Fail fast
○ Fail at the first sign of trouble
The test pyramid
https://martinfowler.com/bliki/TestPyramid.html
What makes for good CD?
1. Design with the system in mind
○ Cover as many parts of a deployment as possible
○ Application | Infrastructure | Configuration | Data
2. Pipelines
○ Continually increase confidence as you move towards production
3. Globally unique versions
○ Know the state of the system at any time
○ Be able to demonstrate difference between current and future state
CD Pipeline flow
DEV PRE PROD PRODUCTIONConfiguration
Infrastructure
Application
Bringing CI & CD together
Continuous
Integration
Knowing the artifacts
are Good
Knowing the
deployment is Good
Continuous
Delivery /
Deployment
Artifact
store
Full deployment pipeline
https://www.oreilly.com/learning/configuring-a-continuous-delivery-pipeline-in-jenkins
Tracking Confidence
Where do we start?
How do we know we are progressing?
Introduction to CI/CD
1. Assess the current state
2. WSJF
3. Think globally – act locally
○ Proof of Concept and Spikes are your friends
1. Assess the current state
2. WSJF
3. Think globally – act locally
○ Proof of Concept and Spikes are your friends
Unit testing and shifting left
● Make the tests easy to run
○ Run them locally
■ Invest in good quality IDE support
○ Consistent entrypoint - Abstract the complexity
■ Makefiles / Gradle
○ Pull request unit test execution
Failing fast
● Code inspection
○ Code linting
○ Security inspection
○ Code format
● Code coverage
○ Track coverage changes
Centralised artifacts
● Managing output from a CI process
○ Only the strong survive
○ Central common location
○ Clearly understood name and version approach
○ Build them only once
○ Make them timeless – externalise configuration
Business benefits of CI/CD
Why do this?
● Reduction of delivery risk
○ No longer do we need to rely on humans with specific knowledge as
the gate-keepers of quality
○ Reduced chance of humans not following the process
○ Reduced chance of mis-communication on executing the change
Why do this?
● To encode the process, we need to know the process
○ If we know all the tests pass,
○ If we know all the steps in deployment,
○ What is stopping us from releasing?
Why do this?
● Better visibility on change
○ As our systems and tools are version controlled
○ And we know what the current state of production is
○ And we can describe the process by which it will be changed
○ We can diff the system states with confidence
● Opens up more avenues for review and increased audit
compliance
Why do this?
● Increased efficiency and delivery options
○ Enables us to deliver things with reduced effort
○ This leads us to deploy change more frequently
○ Which leads to getting feedback faster
○ That enables us to experiment easier
○ This leads to smaller batch sizes
○ Which leads to and increased flow of the entire system
Why do this?
● Enhanced learning from failure
○ When we have an issue or failure, we write a test to cover it
○ This test gets added to our suite and executed every time
○ Decreases our risk of this issue occurring again
That’s all folks…
Steve Mactaggart
State Manager – Victoria
steve.mactaggart@cevo.com.au
Ad

More Related Content

What's hot (20)

Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
Batyr Nuryyev
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
Haggai Philip Zagury
 
Jenkins
JenkinsJenkins
Jenkins
Roger Xia
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
rajdeep
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
Pradeep Patel, PMP®
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
CI/CD
CI/CDCI/CD
CI/CD
AmitDhodi
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
sparkfabrik
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
Karthik Gaekwad
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
DevOps
DevOpsDevOps
DevOps
Gehad Elsayed
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
JEMLI Fathi
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Rishabh Indoria
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
Alexander Meijers
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
Cprime
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
EastBanc Tachnologies
 
Meetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOpsMeetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOps
Vietnam Open Infrastructure User Group
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
DevOps Lifecycle | Edureka
DevOps Lifecycle | EdurekaDevOps Lifecycle | Edureka
DevOps Lifecycle | Edureka
Edureka!
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
Batyr Nuryyev
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
rajdeep
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
sparkfabrik
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Rishabh Indoria
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
Cprime
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
DevOps Lifecycle | Edureka
DevOps Lifecycle | EdurekaDevOps Lifecycle | Edureka
DevOps Lifecycle | Edureka
Edureka!
 

Similar to Introduction to CI/CD (20)

Developing Quality Products Quickly through a Culture of CI/CD
Developing Quality Products Quickly through a Culture of CI/CDDeveloping Quality Products Quickly through a Culture of CI/CD
Developing Quality Products Quickly through a Culture of CI/CD
Paul Hepworth
 
Continues delivery - Introduction
Continues delivery - IntroductionContinues delivery - Introduction
Continues delivery - Introduction
Erez Attar
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environment
Stefan Verhoeff
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the Enterprise
XebiaLabs
 
2019 State of DevOps Report: Database Best Practices for Strong DevOps
2019 State of DevOps Report: Database Best Practices for Strong DevOps2019 State of DevOps Report: Database Best Practices for Strong DevOps
2019 State of DevOps Report: Database Best Practices for Strong DevOps
DevOps.com
 
Measure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryMeasure and Accelerate Your Software Delivery
Measure and Accelerate Your Software Delivery
Anand Chauhan
 
Software Quality for Developers
Software Quality for DevelopersSoftware Quality for Developers
Software Quality for Developers
Maira Bay de Souza
 
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
Andrey Falko
 
DevTestOps
DevTestOpsDevTestOps
DevTestOps
Paul Mateos
 
The Continuous Delivery process
The Continuous Delivery processThe Continuous Delivery process
The Continuous Delivery process
XPeppers
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
Matt Callanan
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
Jean-Philippe Briend
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security Testing
Matt Tesauro
 
Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)
Paul Boocock
 
6 Tools for Improving IT Operations in ICS Environments
6 Tools for Improving IT Operations in ICS Environments6 Tools for Improving IT Operations in ICS Environments
6 Tools for Improving IT Operations in ICS Environments
EnergySec
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015
Yuval Yeret
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps Fundamentals
Anant Corporation
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
jamieayre
 
Developing Quality Products Quickly through a Culture of CI/CD
Developing Quality Products Quickly through a Culture of CI/CDDeveloping Quality Products Quickly through a Culture of CI/CD
Developing Quality Products Quickly through a Culture of CI/CD
Paul Hepworth
 
Continues delivery - Introduction
Continues delivery - IntroductionContinues delivery - Introduction
Continues delivery - Introduction
Erez Attar
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environment
Stefan Verhoeff
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the Enterprise
XebiaLabs
 
2019 State of DevOps Report: Database Best Practices for Strong DevOps
2019 State of DevOps Report: Database Best Practices for Strong DevOps2019 State of DevOps Report: Database Best Practices for Strong DevOps
2019 State of DevOps Report: Database Best Practices for Strong DevOps
DevOps.com
 
Measure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryMeasure and Accelerate Your Software Delivery
Measure and Accelerate Your Software Delivery
Anand Chauhan
 
Software Quality for Developers
Software Quality for DevelopersSoftware Quality for Developers
Software Quality for Developers
Maira Bay de Souza
 
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
Andrey Falko
 
The Continuous Delivery process
The Continuous Delivery processThe Continuous Delivery process
The Continuous Delivery process
XPeppers
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
Matt Callanan
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
Jean-Philippe Briend
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security Testing
Matt Tesauro
 
Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)
Paul Boocock
 
6 Tools for Improving IT Operations in ICS Environments
6 Tools for Improving IT Operations in ICS Environments6 Tools for Improving IT Operations in ICS Environments
6 Tools for Improving IT Operations in ICS Environments
EnergySec
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015
Yuval Yeret
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps Fundamentals
Anant Corporation
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
jamieayre
 
Ad

More from Steve Mactaggart (7)

Cevo - AWS Architectural Resilience Day - Melbourne 2024
Cevo - AWS Architectural Resilience Day - Melbourne 2024Cevo - AWS Architectural Resilience Day - Melbourne 2024
Cevo - AWS Architectural Resilience Day - Melbourne 2024
Steve Mactaggart
 
5 DevOps things that have changed because of COVID-19
5 DevOps things that have changed because of COVID-195 DevOps things that have changed because of COVID-19
5 DevOps things that have changed because of COVID-19
Steve Mactaggart
 
Are you a leadership group or a leadership team?
Are you a leadership group or a leadership team?Are you a leadership group or a leadership team?
Are you a leadership group or a leadership team?
Steve Mactaggart
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructure
Steve Mactaggart
 
Jenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downJenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way down
Steve Mactaggart
 
The changing role of the team leader in a DevOps transformation
The changing role of the team leader in a DevOps transformationThe changing role of the team leader in a DevOps transformation
The changing role of the team leader in a DevOps transformation
Steve Mactaggart
 
Head in the clouds
Head in the cloudsHead in the clouds
Head in the clouds
Steve Mactaggart
 
Cevo - AWS Architectural Resilience Day - Melbourne 2024
Cevo - AWS Architectural Resilience Day - Melbourne 2024Cevo - AWS Architectural Resilience Day - Melbourne 2024
Cevo - AWS Architectural Resilience Day - Melbourne 2024
Steve Mactaggart
 
5 DevOps things that have changed because of COVID-19
5 DevOps things that have changed because of COVID-195 DevOps things that have changed because of COVID-19
5 DevOps things that have changed because of COVID-19
Steve Mactaggart
 
Are you a leadership group or a leadership team?
Are you a leadership group or a leadership team?Are you a leadership group or a leadership team?
Are you a leadership group or a leadership team?
Steve Mactaggart
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructure
Steve Mactaggart
 
Jenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downJenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way down
Steve Mactaggart
 
The changing role of the team leader in a DevOps transformation
The changing role of the team leader in a DevOps transformationThe changing role of the team leader in a DevOps transformation
The changing role of the team leader in a DevOps transformation
Steve Mactaggart
 
Ad

Recently uploaded (20)

Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
Lynda Kane
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Salesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docxSalesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docx
José Enrique López Rivera
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Datastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptxDatastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptx
kaleeswaric3
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
Lynda Kane
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Salesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docxSalesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docx
José Enrique López Rivera
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Datastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptxDatastucture-Unit 4-Linked List Presentation.pptx
Datastucture-Unit 4-Linked List Presentation.pptx
kaleeswaric3
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 

Introduction to CI/CD

  • 2. Introduction to CI/CD Steve Mactaggart State Manager - Victoria
  • 3. Agenda ● What is CI and CD ● What makes good CI / CD ● How we get there ● Business benefits of it all….
  • 4. What is CI and CD? ● Continuous Integration ○ An approach to be continually validating the state of a codebase through automated testing. ○ Best achieved through integration with version control ● Continuous Delivery / Deployment ○ An approach to regularly deploying artifacts that successfully pass the CI phase to ensure confidence around the deployment
  • 5. Delivery vs Deployment Continuous integration, continuous deployment, and continuous delivery are like vectors that have the same direction, but different magnitude. Their goal is the same: make our software development and release process faster and more robust. The key difference between the three is in the scope of automation applied.
  • 6. Delivery vs Deployment ● Continuous Delivery ○ Automatically prepare and track a release to production ○ The desired outcome is that anyone with sufficient privileges to deploy a new release can do so at any time in one or a few clicks. By eliminating nearly all manual tasks, developers become more productive. ● Continuous Deployment ○ Every change in the source code is deployed to production automatically, without explicit approval from a developer. ○ As long as it passes the quality controls
  • 7. What does good look like?
  • 8. What makes for good CI? 1. Decoupled stages ○ Each step in CI should do a single focused task 2. Repeatable ○ Automated in a way that is consistently repeatable ○ Tooling should work for local developers too – Local/Remote parity 3. Fail fast ○ Fail at the first sign of trouble
  • 10. What makes for good CD? 1. Design with the system in mind ○ Cover as many parts of a deployment as possible ○ Application | Infrastructure | Configuration | Data 2. Pipelines ○ Continually increase confidence as you move towards production 3. Globally unique versions ○ Know the state of the system at any time ○ Be able to demonstrate difference between current and future state
  • 11. CD Pipeline flow DEV PRE PROD PRODUCTIONConfiguration Infrastructure Application
  • 12. Bringing CI & CD together Continuous Integration Knowing the artifacts are Good Knowing the deployment is Good Continuous Delivery / Deployment Artifact store
  • 14. Tracking Confidence Where do we start? How do we know we are progressing?
  • 16. 1. Assess the current state 2. WSJF 3. Think globally – act locally ○ Proof of Concept and Spikes are your friends
  • 17. 1. Assess the current state 2. WSJF 3. Think globally – act locally ○ Proof of Concept and Spikes are your friends
  • 18. Unit testing and shifting left ● Make the tests easy to run ○ Run them locally ■ Invest in good quality IDE support ○ Consistent entrypoint - Abstract the complexity ■ Makefiles / Gradle ○ Pull request unit test execution
  • 19. Failing fast ● Code inspection ○ Code linting ○ Security inspection ○ Code format ● Code coverage ○ Track coverage changes
  • 20. Centralised artifacts ● Managing output from a CI process ○ Only the strong survive ○ Central common location ○ Clearly understood name and version approach ○ Build them only once ○ Make them timeless – externalise configuration
  • 22. Why do this? ● Reduction of delivery risk ○ No longer do we need to rely on humans with specific knowledge as the gate-keepers of quality ○ Reduced chance of humans not following the process ○ Reduced chance of mis-communication on executing the change
  • 23. Why do this? ● To encode the process, we need to know the process ○ If we know all the tests pass, ○ If we know all the steps in deployment, ○ What is stopping us from releasing?
  • 24. Why do this? ● Better visibility on change ○ As our systems and tools are version controlled ○ And we know what the current state of production is ○ And we can describe the process by which it will be changed ○ We can diff the system states with confidence ● Opens up more avenues for review and increased audit compliance
  • 25. Why do this? ● Increased efficiency and delivery options ○ Enables us to deliver things with reduced effort ○ This leads us to deploy change more frequently ○ Which leads to getting feedback faster ○ That enables us to experiment easier ○ This leads to smaller batch sizes ○ Which leads to and increased flow of the entire system
  • 26. Why do this? ● Enhanced learning from failure ○ When we have an issue or failure, we write a test to cover it ○ This test gets added to our suite and executed every time ○ Decreases our risk of this issue occurring again
  • 27. That’s all folks… Steve Mactaggart State Manager – Victoria [email protected]

Editor's Notes

  • #5: Focus here is CONTINUOUS You'll see this reoccur through todays talk You could do CI without version control, but it would kinda be like cycling without wheels
  • #7: Give you an example During recent engagements - we were able to get to Delivery All changes ran through the same flow Sequence of the tasks were sometimes different Approval and validation still had manual steps Cevo Website - made it to Deployment Merge to master If it builds, and the tests pass then it is released
  • #9: Simple Like we are doing in the application space, moving away from monoliths - our CI should follow the same patterns Enables better troubleshooting Powers greater reuse Repeatable Where most of your time will end up being sunk This is the tools Environment isolaiton Dependancy isolation Version consistency Fail fast Lean in to the pain, better to have it earlier
  • #10: Simple Test a single function well at the unit level Repeatable Isolate from Data / Systems / Availability Fail Fast Time to fail in unit is super quick We should only be moving something forward if we know it is as good as it can possibly be. Lots of awesome tooling and prior art in this space, challenge is that not all code is testable in its current state - requires some investment in closing the gap (Tech Debt)
  • #11: Systems are no longer only the application Think network egress rules Encryption keys O/S packaging updates Even compute / memory requirements Pipelines Everything goes the same path, if it fail we throw it all out and look for the next item Visualise the pipeline Enable us to build in stage gates of quality along the way Like point #1 - a system is not one thing What is the version of the system 1/2/3? * as code enables a diff based review process
  • #14: Green = CI Yellow / Red = CD yellow may repeat in complex environments SIT / UAT / PRE environments But the process should be the same Focus on Pull based deployments, not push based workflows
  • #19: Channel the Repeatable focus Try hard to have the one process to run them all Common entry point Keep it simple Don't have lots of complex config Fail fast Run tests against branches to get confidence before merge Keep your tests versioned with your code
  • #21: Don't be re-building the artifact because you change passwords – inject this configuration