Slide 1

Slide 1 text

@mongrelion - carlosleon.info Portable Pipelines Vilnius, DevOpsPro Europe 2019

Slide 2

Slide 2 text

@mongrelion - carlosleon.info Carlos León - @mongrelion Strategic Consultant All Things Cloud Native, DevOps, Programmable Infrastructure, Automation and Hang Gliding <3

Slide 3

Slide 3 text

@mongrelion - carlosleon.info Agenda 1 CICD: The Basics 2 The Status Quo 3 CICD Tooling 4 Example 5 Portability 6 Q&A

Slide 4

Slide 4 text

Questions https://sli.do #devops2019

Slide 5

Slide 5 text

CICD: The Basics

Slide 6

Slide 6 text

DevOps Toolchain is licensed under the Creative Commons Attribution-Share Alike 4.0 International license

Slide 7

Slide 7 text

Build -> Test -> Deploy Staging -> More Tests -> Deploy Production

Slide 8

Slide 8 text

@mongrelion - carlosleon.info The Good

Slide 9

Slide 9 text

@mongrelion - carlosleon.info The Good ● Predictable

Slide 10

Slide 10 text

@mongrelion - carlosleon.info The Good ● Predictable ● Reproducible

Slide 11

Slide 11 text

@mongrelion - carlosleon.info The Good ● Predictable ● Reproducible ● Visibility

Slide 12

Slide 12 text

@mongrelion - carlosleon.info The Good ● Predictable ● Reproducible ● Visibility ● Accountability

Slide 13

Slide 13 text

@mongrelion - carlosleon.info The Good ● Predictable ● Reproducible ● Visibility ● Accountability ● Less error prone

Slide 14

Slide 14 text

@mongrelion - carlosleon.info The Bad

Slide 15

Slide 15 text

@mongrelion - carlosleon.info The Bad ● Semantic Versioning

Slide 16

Slide 16 text

@mongrelion - carlosleon.info The Bad ● Semantic Versioning ● Can get chaotic when the pipeline is slow

Slide 17

Slide 17 text

@mongrelion - carlosleon.info The Status Quo

Slide 18

Slide 18 text

Jenkins logo is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.

Slide 19

Slide 19 text

@mongrelion - carlosleon.info The Good

Slide 20

Slide 20 text

@mongrelion - carlosleon.info ● Community support The Good

Slide 21

Slide 21 text

@mongrelion - carlosleon.info ● Community support ● Commercial support The Good

Slide 22

Slide 22 text

@mongrelion - carlosleon.info The Good ● Community support ● Commercial support ● Extensions/plugins ecosystem

Slide 23

Slide 23 text

@mongrelion - carlosleon.info ● Community support ● Commercial support ● Extensions/plugins ecosystem ● Well known The Good

Slide 24

Slide 24 text

@mongrelion - carlosleon.info The Good ● Community support ● Commercial support ● Extensions/plugins ecosystem ● Well known ● Battle tested

Slide 25

Slide 25 text

@mongrelion - carlosleon.info The Bad

Slide 26

Slide 26 text

@mongrelion - carlosleon.info ● Eager for resources The Bad

Slide 27

Slide 27 text

@mongrelion - carlosleon.info ● Eager for resources ● Hard to automate The Bad

Slide 28

Slide 28 text

@mongrelion - carlosleon.info ● Eager for resources ● Hard to automate ● Stateful to the bone The Bad

Slide 29

Slide 29 text

@mongrelion - carlosleon.info The Bad ● Eager for resources ● Hard to automate ● Stateful to the bone ● Extensions/plugin ecosystem

Slide 30

Slide 30 text

CICD Tooling

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

@mongrelion - carlosleon.info Web application written in Go Example

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

@mongrelion - carlosleon.info Issues with this approach

Slide 36

Slide 36 text

@mongrelion - carlosleon.info Issues with this approach ● Lots of manual steps

Slide 37

Slide 37 text

@mongrelion - carlosleon.info Issues with this approach ● Lots of manual steps ● Changes are not visible

Slide 38

Slide 38 text

@mongrelion - carlosleon.info Issues with this approach ● Lots of manual steps ● Changes are not visible ● No track

Slide 39

Slide 39 text

@mongrelion - carlosleon.info Issues with this approach ● Lots of manual steps ● Changes are not visible ● No track ● No responsibility

Slide 40

Slide 40 text

@mongrelion - carlosleon.info Issues with this approach ● Lots of manual steps ● Changes are not visible ● No track ● No responsibility ● Long feedback loops

Slide 41

Slide 41 text

@mongrelion - carlosleon.info Portability Example

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

@mongrelion - carlosleon.info Pros

Slide 49

Slide 49 text

@mongrelion - carlosleon.info Pros ● Portability

Slide 50

Slide 50 text

@mongrelion - carlosleon.info Pros ● Portability ● Short iteration loops

Slide 51

Slide 51 text

@mongrelion - carlosleon.info Pros ● Portability ● Short iteration loops ● Accountability

Slide 52

Slide 52 text

@mongrelion - carlosleon.info Pros ● Portability ● Short iteration loops ● Accountability ● Trackable changes

Slide 53

Slide 53 text

@mongrelion - carlosleon.info Cons

Slide 54

Slide 54 text

@mongrelion - carlosleon.info Cons ● Hard to bootstrap

Slide 55

Slide 55 text

@mongrelion - carlosleon.info Cons ● Hard to bootstrap ● Time to learn bash

Slide 56

Slide 56 text

@mongrelion - carlosleon.info Cons ● Hard to bootstrap ● Time to learn bash ● Hard to reuse community components

Slide 57

Slide 57 text

Questions https://sli.do #devops2019

Slide 58

Slide 58 text

@mongrelion - carlosleon.info Thank you.