A presentation at JConf.dev 2022 in in Chicago, IL, USA by Jeremy Meiss
Demystifying DevOps and CI/CD
Image credit: https://github.com/infrabricks/wordcloud
Image credit: https://github.com/infrabricks/wordcloud
Jeremy Meiss Director, DevRel & Community timeline.jerdog.me
Image credit: https://github.com/infrabricks/wordcloud
What is DevOps?
1910s to 1930s “Flow production”
1990s
“10+ Deploys per Day: Dev and Ops Cooperation at Flickr” - John Allspaw, Paul Hammond
Image credit: freepik
Image credit: ROELBOB at DevOps.com
Image credit: ROELBOB at DevOps.com
Image credit: ROELBOB at DevOps.com
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.
Image source: Horizon Zero Dawn
Image source: Demotivational
Continuous {Integration|Deployment}
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
CD == Continuous Deployment the practice of automatically deploying new software releases to target environments Build Website Server deployment Active Users
Scrumban!
Quick History of CI/CD 1991
Quick History of CI/CD 1991 1997
Quick History of CI/CD 2001 1991 1997
Quick History of CI/CD
Quick History of CI/CD
Quick History of CI/CD
Software Development without CI/CD
Software Development without 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, keeping team informed on code base / future conflicts Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website
CI == Continuous Integration ● ● Merge code changes often, keeping team informed on code base / future conflicts Run automated tests to validate builds, ensuring quality code pushes Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website
CI == Continuous Integration ● ● ● Merge code changes often, keeping team informed on code base / future conflicts Run automated tests to validate builds, ensuring quality code pushes 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, keeping team informed on code base / future conflicts Run automated tests to validate builds, ensuring quality code pushes 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
Image credit: Product Coalition
Image credit: Giphy
CD == Continuous Deployment the practice of automatically deploying new software releases to target environments Build Website Server deployment Active Users
CD == Continuous Deployment ● Build Website Faster release cycles Server Deployment Active Users
CD == Continuous Deployment ● ● Build Website Faster release cycles Low-risk releases Server Deployment Active Users
CD == Continuous Deployment ● ● ● Build Website Faster release cycles Low-risk releases Higher quality Server Deployment Active Users
CD == Continuous Deployment ● ● ● ● Build Website Faster release cycles Low-risk releases Higher quality Lower costs Server Deployment Active Users
Implementing CI/CD
Image credit: Giphy
Make sure everyone is on the same page
Always start small
Do what works for you
Always measure
95% 50% Image credit: Giphy
CI/CD Benchmarks 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
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
Streamline deploy
Full Report https://circle.ci/ssd2022
Thank you. For feedback and swag: circle.ci/jeremy Timeline.jerdog.me IAmJerdog jerdog /in/jeremymeiss
While it seems that every week new terms appear to describe DevOps tools, segments, ideas, practices, etc., are they really new? And what is DevOps, anyways? In this talk Jeremy will first break down DevOps, its history, and why it matters. Then he’ll dive deeper into Continuous Integration and Continuous Deployment (CI/CD) concepts, and why it can be the key to becoming a high performing team.