SlideShare a Scribd company logo
Intro to CI/CD
Michael Irwin - February 8, 2017
First... a history lesson!
The Pareto Principal (the 80/20
rule)
80% of bugs are found in 20% of code
90% of downtime comes from 10% of defects
"80% of the errors and crashes in Windows and O ce
were caused by 20% of the entire pool of bugs
detected." --Microsoft's CEO, 2002
"Microsoft’s own research found that the average user
of Word uses only 8% of the functionality." --
http://www.allaboutagile.com/agile-principle-8-enough-is-enough/
How do we reduce waste?
Intro to CI/CD using Docker
Intro to CI/CD using Docker
Intro to CI/CD using Docker
How would YOU de ne continuous
integration?
Continuous Integration is a
software development practice
where members of a team
integrate their work frequently,
usually each person integrates at
least daily - leading to multiple
integrations per day. Each
integration is veri ed by an
automated build (including test)
to detect integration errors as
quickly as possible.
How would YOU de ne continuous
delivery?
Continuous Delivery is a software
development discipline where
you build software in such a way
that the software can be released
to production at any time.
-- Martin Fowler
Recap
Continuous...
Integration - running automated builds to test
integration of application
Delivery - discipline to be able to release to
production at any time
Deployment - every change goes through the
pipeline and straight to production
What's it look like?
It really depends on your organization!
A fairly typical pipeline...
Developer commits code locally
Pushes code to shared repository
Build server sees change (either via webhook or
polling)
Build server performs build and runs tests
Artifact is created and published
Artifact rolled out to various tiers
What tools exist?
This is obviously not an exhaustive collection...
Why have a pipeline?
More reliable code
Tests are run automatically
Every stage is automated/scripted to reduce error
More frequent merges reduce merge issues
Get feedback quicker
Did a build break? Are tests passing?
Are we developing the right feature?
Morale boost
Engineers love seeing their work being used. Get it
out faster!
Getting Started
We're going to build a pipeline that looks like this...
1. Commit code locally
2. Push to a GitHub repository
3. Docker image built automatically using Docker Cloud
4. Docker image pushed and hosted on Docker Hub
Works very well for open-source types of projects. I use
this exact pipeline for my mikesir87/aws-cli image.
Hands-on time
https://github.com/mikesir87/ci-cd-intro-using-docker
Ad

Recommended

Continuous Integration
Continuous Integration
Robert Watts
 
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenario
Davide Benvegnù
 
Continuous integration - main principles
Continuous integration - main principles
Lena Petsenchuk
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
Poonam Panday
 
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Stephen Garrett
 
Continous integration
Continous integration
Jeremy Wilken
 
Continous Integration: A Case Study
Continous Integration: A Case Study
Talentica Software
 
Continuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was bad
Joe Ferguson
 
Continuous delivery applied
Continuous delivery applied
Mike McGarr
 
Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)
Sergio Navarro Pino
 
Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)
Mohamed TAIEB
 
Build safe environment for software developers
Build safe environment for software developers
Prayoch Rujira
 
Poster - DevOps Planning @ Microsoft
Poster - DevOps Planning @ Microsoft
VSTS Community MSFT
 
DevQAOps - Surviving in a DevOps World
DevQAOps - Surviving in a DevOps World
Winston Laoh
 
Poster - DevOps Habits @ Microsoft
Poster - DevOps Habits @ Microsoft
VSTS Community MSFT
 
Bootstrapping Quality
Bootstrapping Quality
Michael Roufa
 
Advanced deployment scenarios
Advanced deployment scenarios
Sergio Navarro Pino
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
Sergio Navarro Pino
 
CI back to basis
CI back to basis
Sergio Navarro Pino
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
Josh Justice
 
Continuous integration
Continuous integration
John Temoty Roca
 
Continuous Integration
Continuous Integration
Joseph Wang
 
Continuous Delivery
Continuous Delivery
Mike McGarr
 
Step away from that knife!
Step away from that knife!
Michael Goetz
 
Speed up your Titanium app development with automated tests - TiConf EU 2014
Speed up your Titanium app development with automated tests - TiConf EU 2014
Emanuele Rampichini
 
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon
 
DevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen Beal
Sonatype
 
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
garrett honeycutt
 
What's New in Docker 1.13?
What's New in Docker 1.13?
Michael Irwin
 
Gradle in 45min
Gradle in 45min
Schalk Cronjé
 

More Related Content

What's hot (20)

Continuous delivery applied
Continuous delivery applied
Mike McGarr
 
Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)
Sergio Navarro Pino
 
Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)
Mohamed TAIEB
 
Build safe environment for software developers
Build safe environment for software developers
Prayoch Rujira
 
Poster - DevOps Planning @ Microsoft
Poster - DevOps Planning @ Microsoft
VSTS Community MSFT
 
DevQAOps - Surviving in a DevOps World
DevQAOps - Surviving in a DevOps World
Winston Laoh
 
Poster - DevOps Habits @ Microsoft
Poster - DevOps Habits @ Microsoft
VSTS Community MSFT
 
Bootstrapping Quality
Bootstrapping Quality
Michael Roufa
 
Advanced deployment scenarios
Advanced deployment scenarios
Sergio Navarro Pino
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
Sergio Navarro Pino
 
CI back to basis
CI back to basis
Sergio Navarro Pino
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
Josh Justice
 
Continuous integration
Continuous integration
John Temoty Roca
 
Continuous Integration
Continuous Integration
Joseph Wang
 
Continuous Delivery
Continuous Delivery
Mike McGarr
 
Step away from that knife!
Step away from that knife!
Michael Goetz
 
Speed up your Titanium app development with automated tests - TiConf EU 2014
Speed up your Titanium app development with automated tests - TiConf EU 2014
Emanuele Rampichini
 
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon
 
DevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen Beal
Sonatype
 
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
garrett honeycutt
 
Continuous delivery applied
Continuous delivery applied
Mike McGarr
 
Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)
Sergio Navarro Pino
 
Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)
Mohamed TAIEB
 
Build safe environment for software developers
Build safe environment for software developers
Prayoch Rujira
 
Poster - DevOps Planning @ Microsoft
Poster - DevOps Planning @ Microsoft
VSTS Community MSFT
 
DevQAOps - Surviving in a DevOps World
DevQAOps - Surviving in a DevOps World
Winston Laoh
 
Poster - DevOps Habits @ Microsoft
Poster - DevOps Habits @ Microsoft
VSTS Community MSFT
 
Bootstrapping Quality
Bootstrapping Quality
Michael Roufa
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
Sergio Navarro Pino
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
Josh Justice
 
Continuous Integration
Continuous Integration
Joseph Wang
 
Continuous Delivery
Continuous Delivery
Mike McGarr
 
Step away from that knife!
Step away from that knife!
Michael Goetz
 
Speed up your Titanium app development with automated tests - TiConf EU 2014
Speed up your Titanium app development with automated tests - TiConf EU 2014
Emanuele Rampichini
 
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon
 
DevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen Beal
Sonatype
 
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
garrett honeycutt
 

Viewers also liked (11)

What's New in Docker 1.13?
What's New in Docker 1.13?
Michael Irwin
 
Gradle in 45min
Gradle in 45min
Schalk Cronjé
 
Gradle - the Enterprise Automation Tool
Gradle - the Enterprise Automation Tool
Izzet Mustafaiev
 
Making a small QA system with Docker
Making a small QA system with Docker
Naoki AINOYA
 
Git,Travis,Gradle
Git,Travis,Gradle
Riccardo Rigon
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and Docker
Bob Killen
 
Gradle - time for a new build
Gradle - time for a new build
Igor Khotin
 
Gradle
Gradle
Jadson Santos
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Rajmahendra Hegde
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
Dan Stine
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014
Justin Ryan
 
What's New in Docker 1.13?
What's New in Docker 1.13?
Michael Irwin
 
Gradle - the Enterprise Automation Tool
Gradle - the Enterprise Automation Tool
Izzet Mustafaiev
 
Making a small QA system with Docker
Making a small QA system with Docker
Naoki AINOYA
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and Docker
Bob Killen
 
Gradle - time for a new build
Gradle - time for a new build
Igor Khotin
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Rajmahendra Hegde
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
Dan Stine
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014
Justin Ryan
 
Ad

Similar to Intro to CI/CD using Docker (20)

Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
Software engineering
Software engineering
bartlowe
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health New
bartlowe
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
Continuous Integration
Continuous Integration
drluckyspin
 
Continuous Everything
Continuous Everything
Soumyak Bhattacharyya
 
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration
Aspire Systems
 
Continuous Integration and Builds
Continuous Integration and Builds
Bhavin Javia
 
Continuous integration
Continuous integration
Boris Dominic
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
mdevtalk
 
Continuous integration
Continuous integration
Andrey Zhupanenko
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Docker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker Cloud
Docker, Inc.
 
Part 2 improving your software development v1.0
Part 2 improving your software development v1.0
Jasmine Conseil
 
DevOps & DevEx
DevOps & DevEx
Ifunga Ndana
 
Continuous Everything v2.0
Continuous Everything v2.0
Soumyak Bhattacharyya
 
Continuous, continuous, continuous
Continuous, continuous, continuous
Michele Orselli
 
Continuous Everything
Continuous Everything
Andrea Tino
 
Continuous Integrations & Deployments
Continuous Integrations & Deployments
Shinu Suresh
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
Software engineering
Software engineering
bartlowe
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health New
bartlowe
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
Continuous Integration
Continuous Integration
drluckyspin
 
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration
Aspire Systems
 
Continuous Integration and Builds
Continuous Integration and Builds
Bhavin Javia
 
Continuous integration
Continuous integration
Boris Dominic
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
mdevtalk
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Docker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker Cloud
Docker, Inc.
 
Part 2 improving your software development v1.0
Part 2 improving your software development v1.0
Jasmine Conseil
 
Continuous, continuous, continuous
Continuous, continuous, continuous
Michele Orselli
 
Continuous Everything
Continuous Everything
Andrea Tino
 
Continuous Integrations & Deployments
Continuous Integrations & Deployments
Shinu Suresh
 
Ad

Recently uploaded (20)

Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
The Anti-Masterclass Live - Peak of Data & AI 2025
The Anti-Masterclass Live - Peak of Data & AI 2025
Safe Software
 
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
Shell Skill Tree - LabEx Certification (LabEx)
Shell Skill Tree - LabEx Certification (LabEx)
VICTOR MAESTRE RAMIREZ
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Best Practice for LLM Serving in the Cloud
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
The Anti-Masterclass Live - Peak of Data & AI 2025
The Anti-Masterclass Live - Peak of Data & AI 2025
Safe Software
 
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
Shell Skill Tree - LabEx Certification (LabEx)
Shell Skill Tree - LabEx Certification (LabEx)
VICTOR MAESTRE RAMIREZ
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Best Practice for LLM Serving in the Cloud
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 

Intro to CI/CD using Docker

  • 1. Intro to CI/CD Michael Irwin - February 8, 2017
  • 3. The Pareto Principal (the 80/20 rule) 80% of bugs are found in 20% of code 90% of downtime comes from 10% of defects "80% of the errors and crashes in Windows and O ce were caused by 20% of the entire pool of bugs detected." --Microsoft's CEO, 2002 "Microsoft’s own research found that the average user of Word uses only 8% of the functionality." -- http://www.allaboutagile.com/agile-principle-8-enough-is-enough/
  • 4. How do we reduce waste?
  • 8. How would YOU de ne continuous integration?
  • 9. Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is veri ed by an automated build (including test) to detect integration errors as quickly as possible.
  • 10. How would YOU de ne continuous delivery?
  • 11. Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. -- Martin Fowler
  • 12. Recap Continuous... Integration - running automated builds to test integration of application Delivery - discipline to be able to release to production at any time Deployment - every change goes through the pipeline and straight to production
  • 13. What's it look like? It really depends on your organization! A fairly typical pipeline... Developer commits code locally Pushes code to shared repository Build server sees change (either via webhook or polling) Build server performs build and runs tests Artifact is created and published Artifact rolled out to various tiers
  • 14. What tools exist? This is obviously not an exhaustive collection...
  • 15. Why have a pipeline? More reliable code Tests are run automatically Every stage is automated/scripted to reduce error More frequent merges reduce merge issues Get feedback quicker Did a build break? Are tests passing? Are we developing the right feature? Morale boost Engineers love seeing their work being used. Get it out faster!
  • 16. Getting Started We're going to build a pipeline that looks like this... 1. Commit code locally 2. Push to a GitHub repository 3. Docker image built automatically using Docker Cloud 4. Docker image pushed and hosted on Docker Hub Works very well for open-source types of projects. I use this exact pipeline for my mikesir87/aws-cli image.