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