Demystifying DevOps and CI/CD

A presentation at KCDC 2022 in August 2022 in Kansas City, MO, USA by Jeremy Meiss

Slide 1

Slide 1

Demystifying DevOps and CI/CD

Slide 2

Slide 2

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

Slide 3

Slide 3

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

Slide 4

Slide 4

Slide 5

Slide 5

Slide 6

Slide 6

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

Slide 7

Slide 7

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

Slide 8

Slide 8

Slide 9

Slide 9

What is DevOps?

Slide 10

Slide 10

Slide 11

Slide 11

Slide 12

Slide 12

1910s to 1930s “Flow production”

Slide 13

Slide 13

1990s

Slide 14

Slide 14

Slide 15

Slide 15

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

Slide 16

Slide 16

Slide 17

Slide 17

Slide 18

Slide 18

Slide 19

Slide 19

Image credit: freepik

Slide 20

Slide 20

Slide 21

Slide 21

Slide 22

Slide 22

Slide 23

Slide 23

Image credit: ROELBOB at DevOps.com

Slide 24

Slide 24

Image credit: ROELBOB at DevOps.com

Slide 25

Slide 25

Image credit: ROELBOB at DevOps.com

Slide 26

Slide 26

Imagine you’re getting ready to ship something…

Slide 27

Slide 27

Slide 28

Slide 28

You press the big red button

Slide 29

Slide 29

click

Slide 30

Slide 30

Slide 31

Slide 31

silence

Slide 32

Slide 32

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

Slide 33

Slide 33

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

Slide 34

Slide 34

It all boils down to automation.

Slide 35

Slide 35

The green pastures of automation Image source: Forbes

Slide 36

Slide 36

Slide 37

Slide 37

Image source: Horizon Zero Dawn

Slide 38

Slide 38

Image source: Demotivational

Slide 39

Slide 39

Continuous {Integration|Deployment}

Slide 40

Slide 40

Slide 41

Slide 41

Slide 42

Slide 42

Scrumban!

Slide 43

Slide 43

Slide 44

Slide 44

Slide 45

Slide 45

Quick History of CI/CD 1991

Slide 46

Slide 46

Quick History of CI/CD 1991 1997

Slide 47

Slide 47

Quick History of CI/CD 2001 1991 1997

Slide 48

Slide 48

Quick History of CI/CD

Slide 49

Slide 49

Quick History of CI/CD

Slide 50

Slide 50

Quick History of CI/CD

Slide 51

Slide 51

Software Development without CI/CD

Slide 52

Slide 52

Software Development without CI/CD Image source: Oursky

Slide 53

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

Slide 54

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

Slide 55

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

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

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

Slide 58

Image credit: Product Coalition

Slide 59

Slide 59

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

Slide 60

Slide 60

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

Slide 61

Slide 61

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

Slide 62

Slide 62

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

Slide 63

Slide 63

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

Slide 64

Slide 64

Is CI/CD a TOOL?

Slide 65

Slide 65

Are there benefits to CI/CD?

Slide 66

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

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

Slide 68

Implementing CI/CD

Slide 69

Slide 69

Make sure everyone is on the same page

Slide 70

Slide 70

Always start small

Slide 71

Slide 71

Do what works for you

Slide 72

Slide 72

Always measure

Slide 73

Slide 73

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

90% Mean Time to Recovery <1 hour

Slide 74

Slide 74

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

Slide 75

Slide 75

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

Slide 76

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

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

Slide 78

Streamline deploy

Slide 79

Slide 79

Slide 80

Slide 80

Full Report https://circle.ci/ssd2022

Slide 81

Slide 81

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