Demystifying DevOps and CI/CD

A presentation at DevFest KC in December 2023 in Kansas City, MO, 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

Slide 5

Slide 5

Slide 6

Slide 6

Jeremy Meiss DevRel & Community leader Open to work jmeiss.me

Slide 7

Slide 7

What is DevOps?

Slide 8

Slide 8

Slide 9

Slide 9

Slide 10

Slide 10

“Ok blue-haired dude, what really is DevOps and where did it come from?”

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

MAY 15-16, 2024 devopsdayskc.org

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

Slide 28

Slide 28

Slide 29

Slide 29

Imagine you’re getting ready to ship something…

Slide 30

Slide 30

Slide 31

Slide 31

You press the big red button

Slide 32

Slide 32

click

Slide 33

Slide 33

Slide 34

Slide 34

silence

Slide 35

Slide 35

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

Slide 36

Slide 36

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

Slide 37

Slide 37

It all boils down to automation.

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

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 42

Slide 42

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

Slide 43

Slide 43

Slide 44

Slide 44

Slide 45

Slide 45

Scrumban!

Slide 46

Slide 46

Slide 47

Slide 47

Slide 48

Slide 48

Quick History of CI/CD 1991

Slide 49

Slide 49

Quick History of CI/CD 1991 1997

Slide 50

Slide 50

Quick History of CI/CD 2001 1991 1997

Slide 51

Slide 51

Quick History of CI/CD

Slide 52

Slide 52

Quick History of CI/CD

Slide 53

Slide 53

Quick History of CI/CD AWS CodePipeline GitHub Actions

Slide 54

Slide 54

Software Development without CI/CD

Slide 55

Slide 55

Software Development without CI/CD Image source: Oursky

Slide 56

Slide 56

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 57

Slide 57

CI == Continuous Integration ● Every developer commits daily+ to shared mainline code repo Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 58

Slide 58

CI == Continuous Integration ● ● Every developer commits daily+ to shared mainline code repo Every commit triggers automated build and test of the codebase Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 59

Slide 59

CI == Continuous Integration ● ● ● Every developer commits daily+ to shared mainline code repo Every commit triggers automated build and test of the codebase If the build or any test fails, it’s repaired quickly – often within minutes Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 60

Slide 60

CI == Continuous Integration ● ● ● ● Every developer commits daily+ to shared mainline code repo Every commit triggers automated build and test of the codebase If the build or any test fails, it’s repaired quickly – often within minutes Only integrate tested code into code base Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 61

Slide 61

CI == Continuous Integration ● ● ● ● ● Every developer commits daily+ to shared mainline code repo Every commit triggers automated build and test of the codebase If the build or any test fails, it’s repaired quickly – often within minutes 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 62

Slide 62

Image credit: Product Coalition

Slide 63

Slide 63

Image credit: Giphy

Slide 64

Slide 64

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

Slide 65

Slide 65

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

Slide 66

Slide 66

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

Slide 67

Slide 67

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

Slide 68

Slide 68

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

Slide 69

Slide 69

CI vs CD(elivery) vs CD(eployment)?

Slide 70

Slide 70

Implementing CI/CD

Slide 71

Slide 71

Slide 72

Slide 72

Image credit: Giphy

Slide 73

Slide 73

Make sure everyone is on the same page

Slide 74

Slide 74

Always start small

Slide 75

Slide 75

Do what works for you

Slide 76

Slide 76

Always measure

Slide 77

Slide 77

95% 50% Image credit: Giphy

Slide 78

Slide 78

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

90% Mean Time to Recovery <1 hour

Slide 79

Slide 79

Streamline deploy

Slide 80

Slide 80

Thank you. IAmJerdog jerdog /in/jeremymeiss jerdog@hachyderm.io