Matthew Skelton - How to choose tools for DevOps - collaboration over automation

60
How to choose tools for DevOps and Continuous Delivery Matthew Skelton, Skelton Thatcher Consulting DevOps Exchange meetup group, 24 July 2014, London, UK #doxlon

description

skeltonthatcher.com | @matthewpskelton Title: How to choose tools for DevOps - collaboration over automation Matthew Skelton has been building, deploying, and operating commercial software systems since 1998. Co-founder and Principal Consultant at Skelton Thatcher Consulting Ltd, he specialises in helping organisations to adopt and sustain good practices for building and operating software systems: Continuous Delivery, DevOps, aspects of ITIL, and software operability. Matthew founded and leads the 700-member London Continuous Delivery meetup group (http://londoncd.org.uk/), and instigated the first conference in Europe dedicated to Continuous Delivery, PIPELINE Conference (http://pipelineconf.info/). He also co-facilitates the popular Experience DevOps workshop series (http://experiencedevops.org/). With an ever-increasing array of tools and technologies claiming to 'enable DevOps', how do we know which tools to try or to choose? In-house, open source, or commercial? Ruby or shell? Dedicated or plugins? It transpires that highly collaborative practices such as DevOps and Continuous Delivery require new ways of assessing tools and technologies in order to avoid creating new silos. Matthew Skelton shares his recent experience of helping many different organisations to evaluate and select tools to facilitate DevOps; the recommendations may surprise you.

Transcript of Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Page 1: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

How to choose tools for DevOps and

Continuous DeliveryMatthew Skelton, Skelton Thatcher Consulting

DevOps Exchange meetup group, 24 July 2014, London, UK

#doxlon

Page 2: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Collaboration

Learning

Singleton tools

Conway’s Law

Page 3: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Matthew Skelton

•15 years building & operating software systems

•Cybernetics + Neuroscience• control engineering

• psychology

• ‘network’ interactions

@matthewpskelton

Page 4: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

PIPELINE Conference

London Continuous Delivery meetupgroup (#londoncd)

Page 5: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Help orgs to adopt and sustain good engineering practices

Interim CTO/Head of X, tech strategy, architecture, workshops, delivery

Page 6: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Recent clients

•Tourism

•Betting & gambling

•Travel booking

•Financial data & reporting

•Healthcare

Page 7: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Common themes•Online since ~1999

•Successful in their sector

•Large, central core database(s)

•Non-aligned goals

•Need to adopt DevOps and Continuous Delivery

Page 8: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Common needs

•Technology selection ticklists

•Team interactions

•Collaboration opportunities

•Tools as catalysts

Page 9: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 10: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Continuous Delivery

•A scientific approach to changing software systems (Dave Farley)

•Regular, rapid, repeatable, reliable changes

Page 11: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Continuous Delivery

•Quality

•Safety

•Reliability

•Psychology

•Effectiveness

Page 12: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 13: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

DevOps“Highly effective, daily collaboration between software developers and IT

operations people to produce relevant, working systems” *

*also QA/Testing, IT Service Desk, Programme Management,

Commercial, Marketing, etc.

Page 14: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Not DevOps

“Automation”

“Build & Release”

“Infrastructure Development”

“System Administration”

Page 15: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 16: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Collaboration

Page 17: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

1. Version Control

Page 18: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 19: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 20: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 21: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 22: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 23: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 24: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

2. Deployment Pipeline

Page 25: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 26: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 27: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 28: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Challenges were:

•Limited Git skills in Service team

•Manual deployments

•‘Snowflake’ servers

•No CI

•Risks: security, automation, etc

Page 29: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

http://bit.ly/thetrainline-weekly-deploy

Page 30: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

What we did•Built a walking skeleton pipeline

•Modelled security roles and stages

• Included manual steps (at first)

•Walked people through steps

•Finally: opened firewall so everyone could see the UI

Page 31: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Results

•Security: happy

•Service team: relieved (& happy)

•Developers: won over (& happy)

•Business: surprised (& happy)

Page 32: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

3. Log Aggregation

Page 33: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

LogStash

•ElasticSearch+ LogStash+ Kibana•ELK

•In Production, Pre-Prod, Test

•On developer machines!!!

Page 34: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

http://rashidkpc.github.io/Kibana/images/screenshots/searchss.png

Page 35: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Collaboration & tool choice

Value collaboration as a key criterion

Orthogonal to main purpose (?)

“How does [the use of] this tool help people to collaborate?”

Page 36: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Learning

Page 37: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 38: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 39: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 40: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 41: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Learning & tool choice

Bring people with you

Appreciate current skills

Prefer achievable gains now

Avoid fear of too-scary tools

Page 42: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Singleton tools(or the ‘Prize Bull’ approach)

Page 43: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 44: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Singleton tools

•Special database server

•Costly log aggregation

•Costly monitoring

•Server configuration

Page 45: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

http://www.walpapershddownload.com/highland-cattle-wallpapers/

Page 46: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

“Better features”?

Optimise globally across the teams that need to collaborate

Page 47: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Singleton tool

Breaks feedback (learning) loop from Production

Makes CI/CD more difficult

Underestimates value of collaboration and learning

Page 48: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Conway’s Law

Page 49: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Mel Conway, 1968

“organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”

http://www.melconway.com/Home/Conways_Law.html

Page 50: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 51: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

DevOps Topologies

Page 52: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

DevOps Topologies

Page 53: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

DevOps Topologies

Page 54: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

DevOps Topologies

Page 55: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Conway & Tool Choice

See the organisation as a system

Separate tools for separate teams

Shared tools for collaborative teams

http://bit.ly/DevOpsTopologies

Page 56: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Conway’s Law•Allan Kelly - @allankellynet

•https://vimeo.com/channels/londoncd

Page 57: Matthew Skelton - How to choose tools for DevOps - collaboration over automation
Page 58: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

How to choose tools for DevOps

Value collaboration aspects

Avoid a learning mountain: evolve tooling

Avoid Production-only tools

Consider Conway’s Law

(this list is incomplete!)

Page 59: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Further readingHighOps Operability eBook

bit.ly/OperabilityEbook

Build Quality In

buildqualityin.com

Page 60: Matthew Skelton - How to choose tools for DevOps - collaboration over automation

Thank youmatthewskelton.net / @matthewpskelton

skeltonthatcher.com

HT: @Squire_Matt, @alan_parkinson