1 of 40

Devops is not what you think

BilboStack 2019

2 of 40

2

3 of 40

@eferro

Eduardo Ferro Aldama

https://www.eferro.net

Sysadmin, Developer, Product,

Tech lead, Agile, XP/Devops advocate

4 of 40

Agenda

  • Definition
  • Culture / Mindset
  • Practices / Tools
  • Introducing DevOps
  • References
  • Conclusions

4

5 of 40

Definition

6 of 40

“Devops is...

Cool name for sysadmins

A team that deploys other teams services

A team that operates other teams services

6

7 of 40

“Devops is...

learning to work in small batches

creating fast feedback loops

enabling cross-functional collaboration though value streams

developing a culture of experimentation”

Jez Humble

7

8 of 40

DevOps includes and enhance the ideas of the Agile Software Development giving a more end to end vision of the value stream for a technology-based company. And, you know, Every Company Is A Tech Company.

@eferro

8

9 of 40

Culture / Mindset

10 of 40

10

11 of 40

AGILE SOFTWARE DELIVERY

11

Biz/Prod

Dev

Ops

UX, QA, DBA, Design, Security

12 of 40

Devops (optimize whole value stream)

12

13 of 40

  • Collaboration
  • Avoiding SILOs
  • Flow
  • Remove waste
  • Build Quality in
  • Create fast feedback loops
  • Maximize learning

13

14 of 40

Practices / Tools

15 of 40

  • Developers on-call
  • Infrastructure Automation
  • Self Service Platform
  • Design for failure
  • Continuous Delivery
  • ...

15

16 of 40

Developers on call

  • Pain Driven Development
  • Ops requirements in backlog
  • Production ready code
  • Instrumentation
  • Monitoring

16

17 of 40

You build it, you run it.

Werner Vogels

CTO Amazon

17

18 of 40

Developers on call

Practices & patterns

Actionable Alarms

Push metrics

Pull metrics

Centralized logging

Observability

Design for Failure

Tools

Kibana

Prometheus

Grafana

Fluentd

Logstash

PagerDuty

18

19 of 40

Infrastructure Automation

  • Infrastructure as code
  • Configuration Management

19

20 of 40

Infrastructure Automation

Tools

Puppet

Chef

Ansible

Terraform

Consul

Docker

Practices & patterns

Infrastructure testing

Inmutable Infra

Image bakering

Containers

Push conf management

Pull conf management

20

21 of 40

Self Service Platform

  • Each team
  • Deploy by themselves
  • Operate their services

21

22 of 40

Self Service Platform

Practices & patterns

Deploy pipelines

One command deploy

Blue Green Deployments

Rolling Deployments

Platform Control Panel

Alerts

Monitoring

Tools

Kubernetes

OpenShift

CloudFoundry

Heroku

Docker

OpenStack

Jenkins

22

23 of 40

Design for Failure

  • Embrace failure
  • Design for failure
  • Learn from it

23

24 of 40

Design for Failure

  • Optimize recovery (MTTR)
  • Observability
  • Monitoring
  • Automatic recover

24

25 of 40

Design for Failure

Practices & patterns

Circuit Breakers

Retries

Blameless IRs

Chaos Engineering

Game days

Testing in production

Smoke tests

Tools

Hystrix

HA Proxy

Chaos Monkey

Envoy

OpenTracing

25

26 of 40

Continuous Delivery

Build, Test, Deploy your apps in a fast and automated manner.

Agile Software

Development

26

27 of 40

Continuous Delivery

  • Continuous Integration
  • Deployment Pipelines
  • Deploy during working hours
  • Automatic testing
  • Release vs Deploy

27

28 of 40

Continuous Delivery

Practices & patterns

XP practices

BDD

Deployment pipelines

Rolling Deploys

Feature Toggles

Parallel Changes

Tools

Cypress

Jenkins

CircleCI

GitLab

launchdarkly

28

29 of 40

Introducing DevOps

30 of 40

30

31 of 40

31

32 of 40

32

Self Service Platform

Product Team A

Product Team B

Platform Team

create

Production Engineering

DevOps Team

SRE Team

33 of 40

Metrics

  • Deployment Frequency
  • Lead time for changes

  • Time to restore
  • Change Failure Rate

33

34 of 40

Inflection points

  • Deploy during working hours
  • Self Service deployments
  • Blameless IR
  • Dashboard and Metrics

34

35 of 40

References

36 of 40

36

37 of 40

37

38 of 40

Conclusions

Devops is a mindset

Devops includes/requires Agile Development

Continuous Delivery

Flow, Feedback, Continuous Learning

38

39 of 40

To make error is human. To propagate error to all server in automatic way is #devops.” – DevOps Borat.

39

40 of 40

Thanks!!!

Questions?

Feedback?

https://app.bilbostack.com/

@eferro