Demystifying DevOps and CI/CD

A presentation at JConf.dev 2022 in September 2022 in Chicago, IL, 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

What is DevOps?

Slide 9

Slide 9

Slide 10

Slide 10

Slide 11

Slide 11

1910s to 1930s “Flow production”

Slide 12

Slide 12

1990s

Slide 13

Slide 13

Slide 14

Slide 14

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

Slide 15

Slide 15

Slide 16

Slide 16

Slide 17

Slide 17

Slide 18

Slide 18

Image credit: freepik

Slide 19

Slide 19

Slide 20

Slide 20

Slide 21

Slide 21

Slide 22

Slide 22

Image credit: ROELBOB at DevOps.com

Slide 23

Slide 23

Image credit: ROELBOB at DevOps.com

Slide 24

Slide 24

Image credit: ROELBOB at DevOps.com

Slide 25

Slide 25

Slide 26

Slide 26

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

Image source: Horizon Zero Dawn

Slide 37

Slide 37

Image source: Demotivational

Slide 38

Slide 38

Continuous {Integration|Deployment}

Slide 39

Slide 39

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 40

Slide 40

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

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, keeping team informed on code base / future conflicts Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 56

Slide 56

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

Slide 57

Slide 57

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

Slide 58

Slide 58

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

Slide 59

Slide 59

Image credit: Product Coalition

Slide 60

Slide 60

Image credit: Giphy

Slide 61

Slide 61

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

Slide 62

Slide 62

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

Slide 63

Slide 63

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

Slide 64

Slide 64

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

Slide 65

Slide 65

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

Slide 66

Slide 66

Implementing CI/CD

Slide 67

Slide 67

Slide 68

Slide 68

Image credit: Giphy

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

95% 50% Image credit: Giphy

Slide 74

Slide 74

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

90% Mean Time to Recovery <1 hour

Slide 75

Slide 75

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

Slide 76

Slide 76

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

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

Slide 78

Slide 78

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 79

Slide 79

Streamline deploy

Slide 80

Slide 80

Slide 81

Slide 81

Full Report https://circle.ci/ssd2022

Slide 82

Slide 82

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