Modelling Devops & Seeing the system

112
Modelling Devops http://farm6.staticflickr.com/5291/5540608712_a041894564_z.jpg @patrickdebois http://jedi.be/blog

description

- Walkthrough the different models people have used to explain devops - Monitoring mapping description (reverse value stream mapping) - Sample devops practices related back to 4 areas of devops

Transcript of Modelling Devops & Seeing the system

Page 2: Modelling Devops & Seeing the system

This presentation๏Devops ‘Models’ in the wild

๏Seeing the system๏‘Monitoring Stream Mapping Technique’๏Observations

๏Focus on Flow๏Identifying 4 areas of improvement๏Example practices

Page 3: Modelling Devops & Seeing the system

models to explain devops

Page 4: Modelling Devops & Seeing the system

DEV OPS

Page 5: Modelling Devops & Seeing the system

Paul Peisner

Page 6: Modelling Devops & Seeing the system

https://twitter.com/dysinger

MyopicDevops

Page 8: Modelling Devops & Seeing the system

https://cacoo.com/diagrams/uapwdcN6SDfwClDY-351A0.png

Mathias Marschall

An emerging set of practices

Page 10: Modelling Devops & Seeing the system

1. “Seeing”the System

Page 11: Modelling Devops & Seeing the system

Value Stream Mapping

Page 12: Modelling Devops & Seeing the system

“Monitoring”Stream Mapping

aka Reverse Value Stream Mapping

Page 13: Modelling Devops & Seeing the system

• Cross-Silo Group exercise

• (both dev, test, ops ...)

• Use a big wall

• preferred near their officespace

• preferred permanent

• Whiteboard/Long Paper for drawing

• Post-it with different colors

Exercise Preparation

Page 14: Modelling Devops & Seeing the system

ProductionDraw 4 quadrantsStart upper right

Page 15: Modelling Devops & Seeing the system

ProductionPut all production

components on the board

Page 16: Modelling Devops & Seeing the system

ProductionEach component =

1 post-it

Page 17: Modelling Devops & Seeing the system

Production

Components (architecture)

Put all production

components on the board

Page 18: Modelling Devops & Seeing the system

“I don’t know”can be a great conversation

starter

Page 19: Modelling Devops & Seeing the system

Production

Components (architecture)

External

Add components outside your control your team depends

outside your company (like cloud services)

Page 20: Modelling Devops & Seeing the system

Production

Components (architecture)

External

Add components outside your control

your team depends on inside your company(like firewall, dns, mail,

ldap)

Page 21: Modelling Devops & Seeing the system

Production

Components (architecture)

Supportive

Add the supportive components

(backup, monitoring...)

Page 22: Modelling Devops & Seeing the system

Production

Components (architecture)

Explain how these components interact

(architecture)

Page 23: Modelling Devops & Seeing the system

Production

Components (architecture)

Explainhow you know they are working correctly

“monitoring”

Page 24: Modelling Devops & Seeing the system

Production

EndUserComponents (architecture)

Add ‘core’ functionalities you’re providing to the

end-user

Page 25: Modelling Devops & Seeing the system

Production

EndUserComponents (architecture)

Map the functionalities to your components

(is your monitoring covering all components?)

Page 26: Modelling Devops & Seeing the system

Production

People (process)

EndUserComponents (architecture)

Now repeat the processfor people/groupsinvolved in support

Page 27: Modelling Devops & Seeing the system

Production

People (process)

EndUserComponents (architecture)

Add all groups/people involved for support

Page 28: Modelling Devops & Seeing the system

Production

People (process)

EndUserComponents (architecture)

External

Add all externalgroups/people involved

for support

Page 29: Modelling Devops & Seeing the system

Production

People (process)

EndUserComponents (architecture)

Supportive

Add all supportivegroups/people involved

for support

Page 30: Modelling Devops & Seeing the system

Production

People (process)

EndUserComponents (architecture)

Explain how these people interact

(process)

Page 31: Modelling Devops & Seeing the system

Production

People (process)

EndUserComponents (architecture)

How do you the process is working well?

(KPI’s)

Page 32: Modelling Devops & Seeing the system

Production

People (process)

EndUserComponents (architecture)

Relate the people/groups

to each of the components(who get alerts)

Page 33: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUser

Add the enduser support

services you offer

Page 34: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUser

Relate enduser supportto the process and

to the components to the functionalities

Page 35: Modelling Devops & Seeing the system

“To fix something we know we have to

go through development

process”

Page 36: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUserBusiness

Enter Project Mode

Page 37: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUserBusiness

Repeat mappingfor people/process

initiate improvements in production

Page 38: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUserBusiness

Repeat mappingfor people/process

initiate improvements in production

Page 39: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUserBusiness

Repeat mappingfor people/process

initiate improvements in production

Page 40: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUserBusiness

Repeat mappingfor people/process

initiate improvements in production

Page 41: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUserBusiness

Repeat mappingfor people/process

initiate improvements in production

Page 42: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

EndUserBusiness

Repeat mappingfor people/process

initiate improvements in production

Page 43: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Repeat mapping for

dev/test components

Page 44: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Repeat mapping for

dev/test components

Page 45: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Repeat mapping for

dev/test components

Page 46: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Repeat mapping for

dev/test components

Page 47: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Repeat mapping for

dev/test components

Page 48: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

“Seeing the devops system”

Page 49: Modelling Devops & Seeing the system

a first step ofevolving

“commonground”

Page 50: Modelling Devops & Seeing the system

Some Observations

Page 51: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

More maturepeople consider

dev/test/qa as part of production

Page 52: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

More maturedev/test/qa/prod

components are the same

Page 53: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

More mature= Less ????

about end-user functionalities

Page 54: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

More mature= > monitoring/

support for external/cloud

services

Page 55: Modelling Devops & Seeing the system

2. Focus on Flow

Page 56: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Page 57: Modelling Devops & Seeing the system

Remove friction

http://philippe.kruchten.com/2013/11/24/friction/

“Friction: the resistance that one surface or object encounters when moving over another.” [Merriam-Webster dict.]

Page 58: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Find your bottleneck(s) = friction

Page 59: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Technical Debt

Social Debt

Page 60: Modelling Devops & Seeing the system

OPSDEV

http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

4 areas of improvement

Page 61: Modelling Devops & Seeing the system

OPSDEV

Area 1: Extend delivery to production

http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Page 62: Modelling Devops & Seeing the system

OPSDEV

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Page 63: Modelling Devops & Seeing the system

OPSDEV

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Page 64: Modelling Devops & Seeing the system

OPSDEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Page 65: Modelling Devops & Seeing the system

Tools Can you ‘technically’ do it

Process Should you do it

People(culture)

Will you do it

“Layers per Area”

Think ‘tags’ of things you do in an area

Area X

Page 66: Modelling Devops & Seeing the system

“Area Maturity Level”a way to quantify

your progress

http://groups.google.com/group/devops/browse_frm/thread/f3de603a4cea493e?scoring=d&

Page 67: Modelling Devops & Seeing the system

Initial Unpredictable poorly controlled and reactive

Managed Focused on project, often and reactive

Defined Focused on organization and proactive

Quantitatively Managed Measured and controlled

Optimizing Focus on Improvement

CMMI - Maturity Levels (Process centric)

Page 68: Modelling Devops & Seeing the system

Intro Using Source Control ...

Novice Builds Triggered by Commit ...

Intermediate Automated Deployment to Testing ...

Advanced Automated Functional Testing ...

Insane Continuous Deployment to Prod ...

Alternative Maturity Levels(cfr. Continuous Integration Model)

http://blogs.urbancode.com/continuous-integration/continuous-integration-maturity-model/

Page 69: Modelling Devops & Seeing the system

Name AreaAreaAreaArea

Provision dev/test and prod from the same src

DEVDEV delivery to ProdEmbed Project

knowledgeProvision dev/test and prod from the same src Embed Operations

knowledgeEmbed Operations

knowledgefeedback from Prod OPS

Tools IntroLayer Level

Practice: Use a configuration mangement system like chef/puppet to provision dev,test and prod from the same source

Pattern: Automation, reuse of code

Principles: By reusing the code it gets tested more && often more frequent/earlier feedback

Page 70: Modelling Devops & Seeing the system

Production

Components (architecture)People (process)

Dev, Test, QA

EndUserBusiness

Different places where we can improve

http://devopsdays.org/blog/2010/05/16/the-panel-experiment-and-ignite-devops/

Andrew Schaefer

Page 71: Modelling Devops & Seeing the system

Some examplepractices

always understand the context before applying

Page 72: Modelling Devops & Seeing the system

http://www.jedi.be/blog/2013/05/24/Infrastructure%20as%20Code/

cfengine, puppetchef, ansible, salt, ...

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Infrastructure as code

Page 73: Modelling Devops & Seeing the system

http://www.jedi.be/blog/2013/05/24/Infrastructure%20as%20Code/

cfengine, puppetchef, ansible, salt, ...

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Infrastructure as code

Using same technologyversioning/testing/...

Page 74: Modelling Devops & Seeing the system

http://www.jedi.be/blog/2013/05/24/Infrastructure%20as%20Code/

cfengine, puppetchef, ansible, salt, ...

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Infrastructure as code

Using same technologyversioning/testing/...

Executable ‘documentation’

Page 75: Modelling Devops & Seeing the system

http://www.jedi.be/blog/2013/05/24/Infrastructure%20as%20Code/

cfengine, puppetchef, ansible, salt, ...

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Infrastructure as code

Using same technologyversioning/testing/...

Executable ‘documentation’

Common language

Page 76: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

http://www.hashicorp.com/

Reproduceableenvironments

Page 77: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

http://www.hashicorp.com/

Reproduceableenvironments

Dev/Test machines are using the same setup as

Production

Page 78: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

http://www.hashicorp.com/

Reproduceableenvironments

Dev/Test machines are using the same setup as

Production

When your app requires changes on the system you can try them and change them ourself

Page 79: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

http://www.hashicorp.com/

Reproduceableenvironments

Dev/Test machines are using the same setup as

Production

When your app requires changes on the system you can try them and change them ourself

Ops can propagateproduction changes to

dev easily

Page 80: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Monitoring & Metrics

#monitoring{love,sucks}

Page 81: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Monitoring & Metrics

#monitoring{love,sucks}

Enable devs to see the production usage/

problems(graphite)

Page 82: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Monitoring & Metrics

#monitoring{love,sucks}

Enable devs to see the production usage/

problems(graphite)

Devs can add metrics in their code(Statsd)

Page 83: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Monitoring & Metrics

#monitoring{love,sucks}

Enable devs to see the production usage/

problems(graphite)

Devs can add metrics in their code(Statsd)

Make non-subjectivedecisions at the start of

the project

Page 84: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into OperationsDevelopers

wearing pagers

Page 85: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into OperationsDevelopers

wearing pagers

Devs you have run operations learn and

take it back to project

Page 86: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into OperationsDevelopers

wearing pagers

Devs you have run operations learn and

take it back to project

Devs know the app better and can teach/

train operations people

Page 87: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into OperationsDevelopers

wearing pagers

Devs you have run operations learn and

take it back to project

Devs know the app better and can teach/

train operations people

Better Tests to preventproduction problems/

pain

Page 88: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

https://github.com/Netflix/SimianArmy

Page 89: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

https://github.com/Netflix/SimianArmy

Experience problemsearlier in the pipeline

(less costly)

Page 90: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Page 91: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Visualize frequency of production errors and enable extraction of

‘context’

Page 92: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

https://speakerdeck.com/jnewland/chatops-at-github

Page 93: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

https://speakerdeck.com/jnewland/chatops-at-github

Shared view on the system events

Page 94: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

(Public)Post-Mortems

Page 95: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Objective viewon problems

(think retrospective)

(Public)Post-Mortems

Page 96: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Game Days

http://www.youtube.com/watch?v=LCZT_Q3z520&noredirect=1

Page 97: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

Find bottlenecks in procedures/technology

Game Days

http://www.youtube.com/watch?v=LCZT_Q3z520&noredirect=1

Page 98: Modelling Devops & Seeing the system

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

SadOps

http://github.com/railsmachine/sadops

Page 99: Modelling Devops & Seeing the system

Training through simulation

OPS DEV

Area 4: Embed Operations knowledge into Project

Area 2: Extend operations feedback to project

Area 1: Extend delivery to production

Area 3: Embed Projectknowledge into Operations

SadOps

http://github.com/railsmachine/sadops

Page 100: Modelling Devops & Seeing the system

“You build ityou run it”

Amazon

Page 101: Modelling Devops & Seeing the system

DEVOPS

Page 102: Modelling Devops & Seeing the system

3. Find Feedback loops

Page 103: Modelling Devops & Seeing the system

Caveat: DifferentiateSymptoms vs real cause

Page 104: Modelling Devops & Seeing the system

Your bottleneck will move

Page 105: Modelling Devops & Seeing the system

is it even in Dev & Ops ?

MGMT FIN SALESHR

Business CustomerOPSDEV

Page 106: Modelling Devops & Seeing the system

Beware of the DEVOPS WIZARDSthat don’t know your context

Page 107: Modelling Devops & Seeing the system
Page 108: Modelling Devops & Seeing the system

Devops is not just about tools

or automation

Understanding the systemneeds to be done together

Takeways

Everbody should care about the whole system

Page 109: Modelling Devops & Seeing the system

4. Look forContinuous

Improvement

Page 110: Modelling Devops & Seeing the system

Places to look for ideas

Page 111: Modelling Devops & Seeing the system

Places to look for ideas (2)

Page 112: Modelling Devops & Seeing the system

?