Slide 1

Slide 1 text

DevOoops Mastery Bryan Liles

Slide 2

Slide 2 text

DevOoops Mastery @bryanl

Slide 3

Slide 3 text

DevOops Mastery

Slide 4

Slide 4 text

More Mastery less oops

Slide 5

Slide 5 text

Accidental successes

Slide 6

Slide 6 text

“It works on my machine”

Slide 7

Slide 7 text

Promise Theory

Slide 8

Slide 8 text

Promise Theory • Model of voluntary cooperation between individual, autonomous actors, or agents who publish their intentions to one another in a form of promises. • Dev makes promises to ops • Ops make promises to dev

Slide 9

Slide 9 text

Automation

Slide 10

Slide 10 text

OOPS: to release our software, it only requires three CLI commands, a web page visit, an email to Santa, and an act of

Slide 11

Slide 11 text

The Mastery

Slide 12

Slide 12 text

once, twice, automate

Slide 13

Slide 13 text

use Vagrant?

Slide 14

Slide 14 text

use Vagrant with DigitalOcean?

Slide 15

Slide 15 text

docker-machine

Slide 16

Slide 16 text

docker-machine docker compose

Slide 17

Slide 17 text

docker-machine docker compose docker swarm

Slide 18

Slide 18 text

Contest: What does tr(1) do?

Slide 19

Slide 19 text

Configuration Management

Slide 20

Slide 20 text

OOPS: We configure servers with this set of scripts. You have to run this one before that one, and this other one only once.

Slide 21

Slide 21 text

The Mastery

Slide 22

Slide 22 text

We Chef

Slide 23

Slide 23 text

You might Ansible or Puppet or Salt or CFEngine or custom

Slide 24

Slide 24 text

but should you custom?

Slide 25

Slide 25 text

yeah, you test this too google “chef test kitchen”

Slide 26

Slide 26 text

composition over comprehensiveness

Slide 27

Slide 27 text

Contest: On a modern Linux distribution, how can you find the number of processors?

Slide 28

Slide 28 text

Continuous Integration

Slide 29

Slide 29 text

OOPS: Why spend time and money on another server when it works on my workstation?

Slide 30

Slide 30 text

The Mastery

Slide 31

Slide 31 text

you might Jenkins

Slide 32

Slide 32 text

I Travis’d in the past

Slide 33

Slide 33 text

We used Drone

Slide 34

Slide 34 text

I wish we Jenkins’d

Slide 35

Slide 35 text

CI produces artifacts

Slide 36

Slide 36 text

Only deploy the artifacts

Slide 37

Slide 37 text

Contest: What year did Linux come out?

Slide 38

Slide 38 text

Deployment

Slide 39

Slide 39 text

OOPS: We have to deploy from a certain server and we can only deploy on odd Thursdays or when Jamaal is in the office.

Slide 40

Slide 40 text

The Mastery

Slide 41

Slide 41 text

What do you mean you don’t test your deploys?

Slide 42

Slide 42 text

capistrano or fabric, take your pick

Slide 43

Slide 43 text

or deploy with chef?

Slide 44

Slide 44 text

or roll your own …

Slide 45

Slide 45 text

… but don’t do that

Slide 46

Slide 46 text

or go advanced mode have your CI build docker images

Slide 47

Slide 47 text

or go super advanced mode deploy those docker images to mesos

Slide 48

Slide 48 text

PS…… Digital Ocean Droplets start at $5/month

Slide 49

Slide 49 text

or go SUPER DUPER ADVANCED MODE use packer to build machine images with your app already installed and configured and use the cloud like it wants to used.

Slide 50

Slide 50 text

Contest: I have a Ruby array: [{“foo_id"=>"1"}, {"bar_id"=>"2"}, {“bar_id"=>"3"}] How do I convert it to: [2, 4, 6]

Slide 51

Slide 51 text

Teams Over Individuals

Slide 52

Slide 52 text

OOPS: They are Ops and we are Engineering. We write, they keep the servers up. The two shall not cross paths.

Slide 53

Slide 53 text

The Mastery

Slide 54

Slide 54 text

Dev VS Ops

Slide 55

Slide 55 text

Engineer VS SRE

Slide 56

Slide 56 text

chat all the things

Slide 57

Slide 57 text

f(devoops) -> devops

Slide 58

Slide 58 text

Automation

Slide 59

Slide 59 text

Configuration Management

Slide 60

Slide 60 text

Continuous Integration

Slide 61

Slide 61 text

Deployment

Slide 62

Slide 62 text

Teams over Individuals

Slide 63

Slide 63 text

we suck

Slide 64

Slide 64 text

we are lazy

Slide 65

Slide 65 text

we can’t do the a task the same way twice

Slide 66

Slide 66 text

we do things differently the second time

Slide 67

Slide 67 text

Thanks! @bryanl @digitalocean