Demystifying DevOps and CI/CD

A presentation at Beer City Code 2022 in August 2022 in Grand Rapids, MI, USA by Jeremy Meiss

Slide 1

Slide 1

Demystifying DevOps and CI/CD

Slide 2

Slide 2

Slide 3

Slide 3

Image credit: https://github.com/infrabricks/wordcloud

Slide 4

Slide 4

Image credit: https://github.com/infrabricks/wordcloud

Slide 5

Slide 5

Slide 6

Slide 6

Slide 7

Slide 7

Jeremy Meiss Director, DevRel & Community timeline.jerdog.me

Slide 8

Slide 8

Image credit: https://github.com/infrabricks/wordcloud

Slide 9

Slide 9

Slide 10

Slide 10

What is DevOps?

Slide 11

Slide 11

Slide 12

Slide 12

Slide 13

Slide 13

1910s to 1930s “Flow production”

Slide 14

Slide 14

1990s

Slide 15

Slide 15

Slide 16

Slide 16

“10+ Deploys per Day: Dev and Ops Cooperation at Flickr” - John Allspaw, Paul Hammond

Slide 17

Slide 17

Slide 18

Slide 18

Slide 19

Slide 19

Slide 20

Slide 20

Image credit: freepik

Slide 21

Slide 21

Slide 22

Slide 22

Slide 23

Slide 23

Slide 24

Slide 24

Image credit: ROELBOB at DevOps.com

Slide 25

Slide 25

Image credit: ROELBOB at DevOps.com

Slide 26

Slide 26

Image credit: ROELBOB at DevOps.com

Slide 27

Slide 27

Imagine you’re getting ready to ship something…

Slide 28

Slide 28

Slide 29

Slide 29

You press the big red button

Slide 30

Slide 30

click

Slide 31

Slide 31

Slide 32

Slide 32

silence

Slide 33

Slide 33

Do you… a) Sweat and wait to see if it blows up

Slide 34

Slide 34

Do you… a) Sweat and wait to see if it blows up b) Pack up, go home & enjoy your weekend

Slide 35

Slide 35

It all boils down to automation.

Slide 36

Slide 36

The green pastures of automation Image source: Forbes

Slide 37

Slide 37

Slide 38

Slide 38

Image source: Horizon Zero Dawn

Slide 39

Slide 39

Image source: Demotivational

Slide 40

Slide 40

Continuous {Integration|Deployment}

Slide 41

Slide 41

Slide 42

Slide 42

Slide 43

Slide 43

Scrumban!

Slide 44

Slide 44

Slide 45

Slide 45

Slide 46

Slide 46

Quick History of CI/CD 1991

Slide 47

Slide 47

Quick History of CI/CD 1991 1997

Slide 48

Slide 48

Quick History of CI/CD 2001 1991 1997

Slide 49

Slide 49

Quick History of CI/CD

Slide 50

Slide 50

Quick History of CI/CD

Slide 51

Slide 51

Quick History of CI/CD

Slide 52

Slide 52

Software Development without CI/CD

Slide 53

Slide 53

Software Development without CI/CD Image source: Oursky

Slide 54

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

Slide 55

CI == Continuous Integration ● Merge code changes often Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 56

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

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

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

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

Slide 60

CI == Continuous Integration ● Merge code changes often Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 61

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

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

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

Slide 64

Image credit: Product Coalition

Slide 65

Slide 65

CD == Continuous Deployment the practice of automatically deploying new software releases to target environments Build Website Server deployment Active Users

Slide 66

Slide 66

CD == Continuous Deployment ● Build Website Faster release cycles Server Deployment Active Users

Slide 67

Slide 67

CD == Continuous Deployment ● ● Build Website Faster release cycles Low-risk releases Server Deployment Active Users

Slide 68

Slide 68

CD == Continuous Deployment ● ● ● Build Website Faster release cycles Low-risk releases Higher quality Server Deployment Active Users

Slide 69

Slide 69

CD == Continuous Deployment ● ● ● ● Build Website Faster release cycles Low-risk releases Higher quality Lower costs Server Deployment Active Users

Slide 70

Slide 70

Is CI/CD a TOOL?

Slide 71

Slide 71

Are there benefits to CI/CD?

Slide 72

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 73

Slide 74

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

Slide 75

Implementing CI/CD

Slide 76

Slide 76

Make sure everyone is on the same page

Slide 77

Slide 77

Always start small

Slide 78

Slide 78

Do what works for you

Slide 79

Slide 79

Always measure

Slide 80

Slide 80

CI/CD Benchmarks Throughput Duration At will <10 minutes Success Rate

90% Mean Time to Recovery <1 hour

Slide 81

Slide 81

Better CI/CD Practices ● Make testing an integral part of the dev process

Slide 82

Slide 82

Better CI/CD Practices ● ● Make testing an integral part of the dev process Ensure testing environment mirrors production

Slide 83

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

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

Slide 85

Streamline deploy

Slide 86

Slide 86

Slide 87

Slide 87

Full Report https://circle.ci/ssd2022

Slide 88

Slide 88

Thank you. For feedback and swag: circle.ci/jeremy Timeline.jerdog.me IAmJerdog jerdog /in/jeremymeiss