48
How to choose tools for DevOps Matthew Skelton, Skelton Thatcher Consulting Unicom DevOps Summit, 26 June 2014, London, UK

How to choose tools for DevOps

Embed Size (px)

DESCRIPTION

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. Slides from Unicom DevOps Summit, 26th June 2014, London

Citation preview

Page 1: How to choose tools for DevOps

How to choose tools for DevOps

Matthew Skelton, Skelton Thatcher Consulting

Unicom DevOps Summit, 26 June 2014, London, UK

#unidevops

Page 2: How to choose tools for DevOps

Collaboration

Learning

Singleton tools

Conway’s Law

Page 3: How to choose tools for DevOps

Matthew Skelton•15 years building & operating software systems

•Cybernetics + Neuroscience• control engineering• psychology• ‘network’ interactions

@matthewpskelton

Page 4: How to choose tools for DevOps

Help orgs to adopt and sustain good engineering practices

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

Page 5: How to choose tools for DevOps

DevOpsOngoing, highly effective

collaboration between Development and Operations*

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

Commercial, Marketing, etc.

Page 6: How to choose tools for DevOps

Not DevOps“Automation”

“Build & Release”

“Infrastructure Development”

“System Administration”

Page 7: How to choose tools for DevOps
Page 8: How to choose tools for DevOps

Collaboration

Page 9: How to choose tools for DevOps

1. Version Control

Page 10: How to choose tools for DevOps
Page 11: How to choose tools for DevOps
Page 12: How to choose tools for DevOps
Page 13: How to choose tools for DevOps
Page 14: How to choose tools for DevOps
Page 15: How to choose tools for DevOps
Page 16: How to choose tools for DevOps

2. Deployment Pipeline

Page 17: How to choose tools for DevOps
Page 18: How to choose tools for DevOps
Page 19: How to choose tools for DevOps
Page 20: How to choose tools for DevOps

Challenges were:•Limited Git skills in Service team

•Manual deployments

•‘Snowflake’ servers

•No CI

•Risks: security, automation, etc

Page 21: How to choose tools for DevOps

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

Page 22: How to choose tools for DevOps

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 23: How to choose tools for DevOps

Results•Security: happy

•Service team: relieved (& happy)

•Developers: won over (& happy)

•Business: surprised (& happy)

Page 24: How to choose tools for DevOps

3. Log Aggregation

Page 25: How to choose tools for DevOps

LogStash•ElasticSearch+ LogStash+ Kibana•ELK

•In Production, Pre-Prod, Test

•On developer machines!!!

Page 26: How to choose tools for DevOps

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

Page 27: How to choose tools for DevOps

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 28: How to choose tools for DevOps

Learning

Page 29: How to choose tools for DevOps
Page 30: How to choose tools for DevOps
Page 31: How to choose tools for DevOps

Learning & tool choice

Bring people with you

Appreciate current skills

Prefer achievable gains now

Avoid fear of too-scary tools

Page 32: How to choose tools for DevOps

Singleton tools

Page 33: How to choose tools for DevOps
Page 34: How to choose tools for DevOps

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

Page 35: How to choose tools for DevOps

Singleton toolBreaks feedback (learning) loop

from Production

Makes CI/CD more difficult

Underestimates value of collaboration and learning

Page 36: How to choose tools for DevOps

Conway’s Law

Page 37: How to choose tools for DevOps

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 38: How to choose tools for DevOps

?

Page 39: How to choose tools for DevOps

DevOps Topologies

Page 40: How to choose tools for DevOps

DevOps Topologies

Page 41: How to choose tools for DevOps

DevOps Topologies

Page 42: How to choose tools for DevOps

DevOps Topologies

Page 43: How to choose tools for DevOps

Conway & Tool Choice

See the organisation as a system

Separate tools for separate teams

Shared tools for collaborative teams

http://bit.ly/DevOpsTopologies

Page 44: How to choose tools for DevOps

Conway’s Law•Allan Kelly - @allankellynet

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

Page 45: How to choose tools for DevOps
Page 46: How to choose tools for DevOps

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 47: How to choose tools for DevOps

Further readingHighOps Operability eBook

bit.ly/OperabilityEbookBuild Quality In

buildqualityin.com

Page 48: How to choose tools for DevOps

Thank youmatthewskelton.net / @matthewpskelton

skeltonthatcher.com

HT: @Squire_Matt, @alan_parkinson