“10+ Deploys per Day: Dev and Ops Cooperation at Flickr” - John Allspaw, Paul Hammond
Slide 17
Slide 18
Slide 19
Slide 20
Image credit: freepik
Slide 21
Slide 22
Slide 23
Slide 24
Image credit: ROELBOB at DevOps.com
Slide 25
Image credit: ROELBOB at DevOps.com
Slide 26
Image credit: ROELBOB at DevOps.com
Slide 27
Imagine you’re getting ready to ship something…
Slide 28
Slide 29
You press the big red button
Slide 30
click
Slide 31
Slide 32
silence
Slide 33
Do you… a) Sweat and wait to see if it blows up
Slide 34
Do you… a) Sweat and wait to see if it blows up b) Pack up, go home & enjoy your weekend
Slide 35
It all boils down to automation.
Slide 36
The green pastures of automation
Image source: Forbes
Slide 37
Slide 38
Image source: Horizon Zero Dawn
Slide 39
Image source: Demotivational
Slide 40
Continuous {Integration|Deployment}
Slide 41
Slide 42
Slide 43
Scrumban!
Slide 44
Slide 45
Slide 46
Quick History of CI/CD
1991
Slide 47
Quick History of CI/CD
1991
1997
Slide 48
Quick History of CI/CD
2001
1991
1997
Slide 49
Quick History of CI/CD
Slide 50
Quick History of CI/CD
Slide 51
Quick History of CI/CD
Slide 52
Software Development without CI/CD
Slide 53
Software Development without CI/CD
Image source: Oursky
Slide 54
CI == Continuous Integration
the practice of merging all developers’ working copies to a shared code repository
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 55
CI == Continuous Integration ●
Merge code changes often
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 56
CI == Continuous Integration ● ●
Merge code changes often Run automated tests to validate builds
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 57
CI == Continuous Integration ● ● ●
Merge code changes often Run automated tests to validate builds Only integrate tested code into code base
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 58
CI == Continuous Integration ● ● ● ●
Merge code changes often Run automated tests to validate builds Only integrate tested code into code base Changes frequently merged into release branches
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 59
CI == Continuous Integration
the practice of merging all developers’ working copies to a shared code repository
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 60
CI == Continuous Integration ●
Merge code changes often
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 61
CI == Continuous Integration ● ●
Merge code changes often Run automated tests to validate builds
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 62
CI == Continuous Integration ● ● ●
Merge code changes often Run automated tests to validate builds Only integrate tested code into code base
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 63
CI == Continuous Integration ● ● ● ●
Merge code changes often Run automated tests to validate builds Only integrate tested code into code base Changes frequently merged into release branches
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 64
Image credit: Product Coalition
Slide 65
CD == Continuous Deployment the practice of automatically deploying new software releases to target environments
Build Website
Server deployment
Active Users
Slide 66
CD == Continuous Deployment ●
Build Website
Faster release cycles
Server Deployment
Active Users
Slide 67
CD == Continuous Deployment ● ●
Build Website
Faster release cycles Low-risk releases
Server Deployment
Active Users
Slide 68
CD == Continuous Deployment ● ● ●
Build Website
Faster release cycles Low-risk releases Higher quality
Server Deployment
Active Users
Slide 69
CD == Continuous Deployment ● ● ● ●
Build Website
Faster release cycles Low-risk releases Higher quality Lower costs
Server Deployment
Active Users
Slide 70
Is CI/CD a TOOL?
Slide 71
Are there benefits to CI/CD?
Slide 72
CI/CD Benefits ● ● ● ● ● ●
Improve team productivity & efficiency Accelerate speed to market Identify product/market fit Release higher quality, more stable products Increase customer satisfaction Keep devs happy and shipping code
Slide 73
Slide 74
I feel the need… the need for SPEED! ● ●
Customers get access to new features faster Company gets a faster ROI from new features
Slide 75
Implementing CI/CD
Slide 76
Make sure everyone is on the same page
Slide 77
Always start small
Slide 78
Do what works for you
Slide 79
Always measure
Slide 80
CI/CD Benchmarks
Throughput
Duration
At will
<10 minutes
Success Rate
90%
Mean Time to Recovery <1 hour
Slide 81
Better CI/CD Practices ●
Make testing an integral part of the dev process
Slide 82
Better CI/CD Practices ● ●
Make testing an integral part of the dev process Ensure testing environment mirrors production
Slide 83
Better CI/CD Practices ● ● ●
Make testing an integral part of the dev process Ensure testing environment mirrors production Use coding better practices, i.e. pair programming
Slide 84
Better CI/CD Practices ● ● ● ●
Make testing an integral part of the dev process Ensure testing environment mirrors production Use coding better practices, i.e. pair programming Automate the deploy workflow
Slide 85
Streamline deploy
Slide 86
Slide 87
Full Report
https://circle.ci/ssd2022
Slide 88
Thank you. For feedback and swag: circle.ci/jeremy
Timeline.jerdog.me IAmJerdog jerdog /in/jeremymeiss