Demystifying DevOps and CI/CD

A presentation at Modern Frontends Live! in November 2022 in London, UK 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

What is DevOps?

Slide 8

Slide 8

Slide 9

Slide 9

Slide 10

Slide 10

1910s to 1930s “Flow production”

Slide 11

Slide 11

1990s

Slide 12

Slide 12

Slide 13

Slide 13

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

Slide 14

Slide 14

Slide 15

Slide 15

Slide 16

Slide 16

Slide 17

Slide 17

Image credit: freepik

Slide 18

Slide 18

Slide 19

Slide 19

Slide 20

Slide 20

Slide 21

Slide 21

Image credit: ROELBOB at DevOps.com

Slide 22

Slide 22

Image credit: ROELBOB at DevOps.com

Slide 23

Slide 23

Image credit: ROELBOB at DevOps.com

Slide 24

Slide 24

Slide 25

Slide 25

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

Image source: Horizon Zero Dawn

Slide 36

Slide 36

Image source: Demotivational

Slide 37

Slide 37

Continuous {Integration|Deployment}

Slide 38

Slide 38

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 39

Slide 39

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

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 ● Every developer commits daily+ to shared mainline code repo Code Shared Code Repo CI/CD Runtime Test Scan for Vulnerabilities Build Website

Slide 55

Slide 55

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 56

Slide 56

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 57

Slide 57

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 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 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 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

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

Slide 67

Slide 67

Implementing CI/CD

Slide 68

Slide 68

Slide 69

Slide 69

Image credit: Giphy

Slide 70

Slide 70

Make sure everyone is on the same page

Slide 71

Slide 71

Always start small

Slide 72

Slide 72

Do what works for you

Slide 73

Slide 73

Always measure

Slide 74

Slide 74

95% 50% Image credit: Giphy

Slide 75

Slide 75

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

90% Mean Time to Recovery <1 hour

Slide 76

Slide 76

Streamline deploy

Slide 77

Slide 77

Slide 78

Slide 78

Full Report https://circle.ci/ssd2022

Slide 79

Slide 79

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