A presentation at CascadiaJS 2021 Pre-Show by Jeremy Meiss
Demystifying CI/CD
Imagine you’re getting ready to ship something…
You press the big red button
click
silence
Do you… a) Sweat and wait to see if it blows up
Do you… a) Sweat and wait to see if it blows up b) Pack up, go home & enjoy your weekend
It all boils down to automation.
The green pastures of automation Image source: Forbes
Image source: Horizon Zero Dawn
Image source: Demotivational
Timeline.jerdog.me IAmJerdog jerdog Director, DevRel & Community /in/jeremymeiss
“DEVOPS”
The DevOps Lifecycle ○ Plan Image source: C-Sharp Corner
The DevOps Lifecycle ○ Plan ○ Code Image source: C-Sharp Corner
The DevOps Lifecycle ○ Plan ○ Code ○ Build Image source: C-Sharp Corner
The DevOps Lifecycle ○ ○ ○ ○ Image source: C-Sharp Corner Plan Code Build Test
The DevOps Lifecycle ○ ○ ○ ○ ○ Image source: C-Sharp Corner Plan Code Build Test Release
The DevOps Lifecycle ○ ○ ○ ○ ○ ○ Image source: C-Sharp Corner Plan Code Build Test Release Deploy
The DevOps Lifecycle ○ ○ ○ ○ ○ ○ ○ Image source: C-Sharp Corner Plan Code Build Test Release Deploy Operate
The DevOps Lifecycle ○ ○ ○ ○ ○ ○ ○ ○ Image source: C-Sharp Corner Plan Code Build Test Release Deploy Operate Monitor
Continuous {Integration|Deployment}
Software Development without CI/CD Image source: Oursky
Software Development with CI/CD Image source: Oursky
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
CI == Continuous Integration ○ Merge code changes often Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website
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
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
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
CD == Continuous Deployment the practice of automatically deploying new software releases to target environments Build Website Server deployment Active Users
Continuous Deployment ○ Faster release cycles Build Website Server Deployment Active Users
Continuous Deployment ○ Faster release cycles ○ Low-risk releases Build Website Server Deployment Active Users
Continuous Deployment ○ Faster release cycles ○ Low-risk releases ○ Higher quality Build Website Server Deployment Active Users
Continuous Deployment ○ ○ ○ ○ Build Website Faster release cycles Low-risk releases Higher quality Lower costs Server Deployment Active Users
Is CI/CD a TOOL?
Are there benefits to CI/CD?
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
I feel the need… the need for SPEED! ○ Customers get access to new features faster ○ Company gets a faster ROI from new features
Implementing CI/CD
Make sure everyone is on the same page
Always start small
Do what works for you
Always measure
CI/CD Benchmarks for high performance Throughput Duration At will <10 minutes Success Rate
90% Mean Time to Recovery <1 hour
Better CI/CD Practices ○ Make testing an integral part of the dev process
Better CI/CD Practices ○ Make testing an integral part of the dev process ○ Ensure testing environment mirrors production
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
Full Report https://circle.ci/ssd2020
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 Streamline the deploy workflow
Streamline deploy
Do not try to automate everything
Proof of concept ○ ○ ○ ○ A rigorous testing practice Consistent software environments Training on continuous integration practices. Reports to measure key metrics.
Timeline.jerdog.me Thank you. For feedback and swag: circle.ci/jeremy IAmJerdog jerdog /in/jeremymeiss
CI/CD enables teams to establish processes that increase velocity, collaboration, and quality of their codebase. Learn the fundamentals of CI/CD and DevOps for Javascript developers.
Here’s what was said about this presentation on social media.
🚨 The #CascadiaJS pre-conference meetup is TODAY, starting at 6pm PDT.
— CascadiaJS 🇺🇸 🇨🇦 (@CascadiaJS) October 14, 2021
The meetup is free, and we'll all be hanging out in the virtual event space (powered by @gather_town) that we'll be using for the conference itself 🎉@swyx @IAmJerdog @jdalton https://t.co/Y0abftSsMJ
Talks are up!
— CascadiaJS 🇺🇸 🇨🇦 (@CascadiaJS) October 15, 2021
Let's start with @IAmJerdog demystifying CI/CD for JavaScript developers.https://t.co/0HYXbfDvtM