Top Banner
Continuous Delivery: Tools, Collaboration, and Conway's Law Matthew Skelton, Skelton Thatcher Consulting QCon London 2015, Weds 4 th March #qconlondon
90

Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Jul 14, 2015

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Continuous Delivery: Tools, Collaboration, and Conway's Law

Matthew Skelton, Skelton Thatcher Consulting

QCon London 2015, Weds 4th March

#qconlondon

Page 2: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 3: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

CollaborationTool Automation

LearningSingleton toolsConway’s Law

Page 4: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Matthew Skelton

• Building & operating software systems since 1998

• Cybernetics + Neuroscience + Music• control engineering• psychology• ‘network’ and group interactions

@matthewpskelton

Page 5: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 6: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Recent clients

Legal

Payments

Tourism

Betting

Travel booking

Financial services

Healthcare data

Page 7: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Common themes•Online since ~1999•Successful in their sector•Large, central core database(s)•Non-aligned team goals•Ops historically undervalued•Need to adopt DevOps and Continuous Delivery

Page 8: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Common needs•Technology selection ticklists•Team interactions•Collaboration opportunities•Tools as catalysts

Page 9: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 10: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 11: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

‘Delivery’ implies ‘fire and forget’

We must continue to careafter deployment

Page 12: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Continuous Delivery

Continuous Evolution of software systems

Small changes

High quality

Operationally excellent

Engaged teams

Focus on value

Use flow

Page 13: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Delivery ≠ Deployment

Empower product & commercial people to make features available

at the right time

Pull, not Push

Continuous Delivery

Page 14: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Regular, rapid, repeatable, reliable changes

Automate most of the things

Continuous Delivery

Page 15: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

QualitySafety

ReliabilityPsychology

Effectiveness

Continuous Delivery

Page 16: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 17: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

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 18: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Not DevOps“Automation”

“Build & Release”“Infrastructure Development”

“System Administration”“Containers”

Page 19: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 20: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Collaboration

Page 21: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

1. Version Control

Page 22: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 23: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 24: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 25: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 26: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 27: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 28: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

2. Deployment Pipeline

Page 29: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

A large online retailer•Travel sector•Since ~1999•UK market• ‘Non-core’ applications

Page 30: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Challenges were:•Limited Git skills in Service team•Manual deployments• ‘Snowflake’ servers•No CI•Risks: security, automation, etc

Page 31: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 32: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

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 33: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Results•Security: happy•Service team: relieved (& happy) •Developers: won over (& happy)•Business: surprised (& happy)

Page 34: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

3. Log Aggregation

Page 35: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Log aggregation & searchElasticSearch+ LogStash+ Kibana /

NewRelic / LogEntries / Stackify

(In Production, Pre-Prod, Test)

On developer machines!!!

Page 36: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Event type IDs

How many discrete states exist in your application?

Page 37: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Event type IDs

Page 38: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Event type IDs

enum

Human-readable sets: unique values, sparse, immutable

C#, Java, Python, node(Ruby, PHP, …)

Page 39: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Technical

Domain

public enum EventID

{

// Badly-initialised logging data

NotSet = 0,

// An unrecognised event has occurred

UnexpectedError = 10000,

ApplicationStarted = 20000,

ApplicationShutdownNoticeReceived = 20001,

PageGenerationStarted = 30000,

PageGenerationCompleted = 30001,

MessageQueued = 40000,

MessagePeeked = 40001,

ItemAddedToBasket = 60001,

ItemRemovedFromBasket = 60002,

CreditCardDetailsSubmitted = 70001,

// ...

}

Page 40: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

ItemAddedToBasket = 60001

Page 41: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

ItemAddedToBasket = 60001

Page 42: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Monolith to microservices:debugger does not have the full view

Distributed systems

Page 43: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Even with remote debugger, it’s boring to attach and detach

(but… Glimpse)

Remote debugging?

Page 44: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 45: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

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

Page 46: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Log aggregation & search

Good logging is good communication

ELK and other log aggregation tools can build Dev + QA + Ops

collaboration

Page 47: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 48: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

4. Detect Database Drift

Page 49: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Red Gate DLM Dashboard

Page 50: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Red Gate DLM Dashboard

Page 51: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Collaboration & tool choice

Value collaboration as a key criterion

Orthogonal to main tool purpose (?)

“How does this tool help people to collaborate?”

Page 52: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Automation

Page 53: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Tooling & APIs•Prefer SaaS to begin with•API for:• Important state changes & actions• Import/Export•Trigger•Alerting•…

Page 54: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Tooling Automation•Avoid manual configuration of tools• Install via packages•RPM, APT, Gems, Chocolatey

•Configure using Chef/Puppet/Ansible/DSC/etc.• Insist on APIs

Page 55: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Tool Automation

Point-n-click is no longer acceptable

Choose tools that expose APIs

Aim for composition of new capabilities

Build and deployment are first-class concerns

Page 56: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Learning

Page 57: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 58: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 59: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 60: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 61: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Learning & tool choice

Bring people with you

Appreciate current skills

Prefer achievable gains now

Avoid fear of too-scary tools

Page 62: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Singleton tools(or the ‘Prize Bull’ approach)

Page 63: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 64: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Singleton toolsSpecial database serverCostly log aggregation

Costly monitoringServer configuration tooling

…only in Production

Page 65: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

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

Page 66: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

“Better features”?

Optimise globally across the teams that need to

collaborate

Page 67: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Singleton toolBreaks feedback (learning) loop

from Production

Makes CI/CD more difficult

Underestimates value of collaboration and learning

Page 68: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Conway’s Law

Page 69: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

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 70: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Ruth Malan, 2008

“if the architecture of the system and the architecture of the organization are at odds, the architecture of the organization wins”http://traceinthesand.com/blog/2008/02/13/conways-law/

Page 71: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

?

Page 72: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 73: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 74: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 75: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 76: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 77: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 78: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Team Topologiestopology: the study of places

Team Topologies: study of the placement of teams

(responsibilities, communication, shape)

Page 79: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 80: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 81: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 82: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 83: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Conway & Tool ChoiceSee the whole organisation as a

system that we’re building

Separate tools for separate teams

Shared tools for collaborative teams

http://bit.ly/DevOpsTopologies

Page 84: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton
Page 85: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

How to choose tools for Continuous Delivery and

DevOpsValue collaboration aspects

Insist on APIs and scripted deploymentsAvoid a learning mountain: evolve tooling

Avoid Production-only toolsConsider Conway’s Law

(this list is incomplete!)

Page 86: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Further readingBuild Quality Inbuildqualityin.com

Continuous Delivery and DevOps experience reports from 20 authors

70% of royalties donated to Code Club

Discount for #qconlondon: http://leanpub.com/buildqualityin/c/qconlondon2015

Six contributors from QCon London 2015 speakers:- Dave Farley- Rachel Laycock- Amy Phillips- Anna Shipman- Matthew Skelton- Philip Wills

- + 14 more

Page 87: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Further reading

DZone 2015 Guide to Continuous Delivery

http://bit.ly/DZoneCDreport

Page 88: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Conway’s Law & Continuous Delivery

• Allan Kelly - @allankellynet

• London Continuous Delivery meetup group – January 2014

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

Page 89: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

We help you to transform your technology and teams

for the cloud

Page 90: Continuous Delivery Tools Collaboration Conways Law - QCon London - Matthew Skelton

Thank youmatthewskelton.net / @matthewpskelton

HT: @Squire_Matt, @alan_parkinson

http://skeltonthatcher.com/[email protected]

@SkeltonThatcher

+44 (0)20 8242 4103

Slides are Copyright © 2015 Skelton Thatcher Consulting Ltd. All rights reserved.