Do you… a) Sweat and wait to see if it blows up b) Pack up, go home & enjoy your weekend
Slide 10
It all boils down to automation.
Slide 11
The green pastures of automation
Image source: Forbes
Slide 12
Slide 13
Image source: Horizon Zero Dawn
Slide 14
Image source: Demotivational
Slide 15
Timeline.jerdog.me IAmJerdog jerdog Director, DevRel & Community
/in/jeremymeiss
Slide 16
“DEVOPS”
Slide 17
The DevOps Lifecycle ○ Plan
Image source: C-Sharp Corner
Slide 18
The DevOps Lifecycle ○ Plan ○ Code
Image source: C-Sharp Corner
Slide 19
The DevOps Lifecycle ○ Plan ○ Code ○ Build
Image source: C-Sharp Corner
Slide 20
The DevOps Lifecycle ○ ○ ○ ○
Image source: C-Sharp Corner
Plan Code Build Test
Slide 21
The DevOps Lifecycle ○ ○ ○ ○ ○
Image source: C-Sharp Corner
Plan Code Build Test Release
Slide 22
The DevOps Lifecycle ○ ○ ○ ○ ○ ○
Image source: C-Sharp Corner
Plan Code Build Test Release Deploy
Slide 23
The DevOps Lifecycle ○ ○ ○ ○ ○ ○ ○
Image source: C-Sharp Corner
Plan Code Build Test Release Deploy Operate
Slide 24
The DevOps Lifecycle ○ ○ ○ ○ ○ ○ ○ ○ Image source: C-Sharp Corner
Plan Code Build Test Release Deploy Operate Monitor
Slide 25
Continuous {Integration|Deployment}
Slide 26
Quick History of CI/CD
1991
Slide 27
Quick History of CI/CD
1991
1997
Slide 28
Quick History of CI/CD
2001
1991
1997
Slide 29
Quick History of CI/CD
Slide 30
Quick History of CI/CD
Slide 31
Software Development without CI/CD
Image source: Oursky
Slide 32
Software Development with CI/CD
Image source: Oursky
Slide 33
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 34
CI == Continuous Integration ○ Merge code changes often
Code
Shared Code Repo
CI/CD Runtime
Test
Scan for Vulnerabilities
Build Website
Slide 35
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 36
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 37
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 38
CD == Continuous Deployment the practice of automatically deploying new software releases to target environments
Build Website
Server deployment
Active Users
Slide 39
Continuous Deployment ○ Faster release cycles
Build Website
Server Deployment
Active Users
Slide 40
Continuous Deployment ○ Faster release cycles ○ Low-risk releases
Build Website
Server Deployment
Active Users
Slide 41
Continuous Deployment ○ Faster release cycles ○ Low-risk releases ○ Higher quality
Build Website
Server Deployment
Active Users
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 46
Slide 47
I feel the need… the need for SPEED!
○ Customers get access to new features faster ○ Company gets a faster ROI from new features
Slide 48
Implementing CI/CD
Slide 49
Make sure everyone is on the same page
Slide 50
Always start small
Slide 51
Do what works for you
Slide 52
Always measure
Slide 53
CI/CD Benchmarks for high performance
Throughput
Duration
At will
<10 minutes
Success Rate
90%
Mean Time to Recovery <1 hour
Slide 54
Better CI/CD Practices ○ Make testing an integral part of the dev process
Slide 55
Better CI/CD Practices ○ Make testing an integral part of the dev process ○ Ensure testing environment mirrors production
Slide 56
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 57
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 58
Streamline deploy
Slide 59
Slide 60
Full Report
https://circle.ci/ssd2020
Slide 61
Do not try to automate everything
Slide 62
Proof of concept ○ ○ ○ ○
A rigorous testing practice Consistent software environments Training on continuous integration practices. Reports to measure key metrics.
Slide 63
Timeline.jerdog.me
Thank you. For feedback and swag: circle.ci/jeremy
IAmJerdog jerdog /in/jeremymeiss