continuous delivery for databases - microservices, team structures, and conway's law -...

63
Continuous Delivery for databases: microservices, team structures, and Conway's Law Matthew Skelton, Skelton Thatcher Consulting BBC:develop conference, Thursday 13 th November 2014, London, UK #bbcdevelop

Upload: skelton-thatcher-consulting-ltd

Post on 02-Jul-2015

4.213 views

Category:

Software


1 download

DESCRIPTION

The way we think about data and databases must adapt to fit with dynamic 'cloud' infrastructure and Continuous Delivery. The need for rapid deployments and feedback from software changes combined with an increase in complexity of modern distributed systems and powerful new tooling are together driving significant changes to the way we design, build, and operate software systems. These changes require new ways of writing code, new team structures, and new ownership models for software systems, all of which in turn have implications for data and databases. In this talk, we will look at the factors driving increased deployability, the pattern of microservices as a way to improve deployability, changes to data models that microservices bring, and changes to team structures and responsibilities required to make these new approaches effective in a Continuous Delivery context.

TRANSCRIPT

Page 1: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Continuous Delivery for databases:

microservices, team structures, and Conway's Law

Matthew Skelton, Skelton Thatcher Consulting

BBC:develop conference,

Thursday 13th November 2014, London, UK

#bbcdevelop

Page 2: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Continuous DeliveryDatabases

MicroservicesTeam structuresConway’s Law

Page 3: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Developers & Database Administrators (DBAs)

Page 4: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 5: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Siege

http://galleryhip.com/castle-siege-wallpaper.html

Page 6: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

http://theattractivearts.com/2013/11/life-after-love/

Page 7: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Shared context and language for Developers and DBAs to facilitate

a move to microservices and Continuous Delivery

Page 8: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

BUILDING BLOCKS

Scale (magnification)Distributed transactions

Event streams

Page 9: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

OUTCOMES(New software architectures)

New team topologiesNew responsibilities(Continuous Delivery)

Page 10: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Matthew Skelton

•Building & operating commercial software systems since 1998

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

@matthewpskelton

Page 11: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Skelton ThatcherIntroduction and Services Overview

Page 12: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

FORCES / CONTEXT

Page 13: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

‘Cloud’ changes the way we mustdesign, deliver, and operate

our software systems

Page 14: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Changes for ‘cloud’

Page 15: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

FORCES

Deployability(Elasticity)

(Conway’s Law)

Page 16: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

DEPLOYABILITY

Single applicationSingle user journey

Single feature

Page 17: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

DATABASE DEPLOYABILITYMinimize changes in ProductionReduce accidental complexity

Archive, distinguish, and split dataName things transparently

Source Business Intelligence from a data warehouseValue more highly the need for change

Avoid Production-only tooling and config

http://bit.ly/DatabaseDeployability

Page 18: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

MICROSERVICES

Single applicationSingle user journey

Single feature

Page 19: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

DATABASE DEPLOYABILITYEnd the siege mentality

Page 20: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

BUILDING BLOCKS

Page 21: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

BUILDING BLOCKS

Distributed transactionsScale (magnification)

Event streams

Page 22: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 23: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 24: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 25: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 26: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 27: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

BETWEEN ORGANISATIONS

Asynchronous data reconciliationEventual consistency

Page 28: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 29: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

BETWEEN MICROSERVICES

Asynchronous data reconciliationEventual consistency

Page 30: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Familiar patterns, different ‘magnification’

Page 31: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

EVENT STREAMS

Event sourcingNoSQL, CQRS, Reactive

Pub-Sub messaging

Page 32: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

EVENT STREAMSRDBMS database transaction log

Page 33: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Familiar patterns, different ‘magnification’

Page 34: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

‘Fractal architecture’

Page 35: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

FAMILIAR PATTERNS

Distributed transactionsEvent streams

Asynchronous data reconciliationEventual consistency

Page 36: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

CHANGES

Page 37: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

CHANGES

Team topologyResponsibilities

Page 38: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Conway’s Law

Page 39: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

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 40: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

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 41: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Topologies and responsibilities

Page 42: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 43: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 44: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 45: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 46: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 47: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 48: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

There is no single ‘right’ team topology, but there are several

‘bad’ topologies for any one organisation

Page 49: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Make the team topology & responsibilities match the

required software architecture

Page 50: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

RECAPITULATION

Page 51: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Both Devs and DBAs know that:

Distributed transactions do not scale well

Event streams are the foundation of reliable systems

Page 52: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Shared concepts:

Distributed transactionsEvent streams

Asynchronous data reconciliationEventual consistency

Page 53: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Familiar concepts, different scale & context

Page 54: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

New team topologies needed

Page 55: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

http://theattractivearts.com/2013/11/life-after-love/

Page 56: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

We did not really mention:

Microservices technologiesTeam topologies in depth

Page 57: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Continuous Delivery for databasesWe need finer-grained, more frequent and isolated deployments

Microservices allow these more fine-grained deployments

We need to support the microservice database model: a larger number of smaller databases with eventual consistency and asynchronous (back office) data reconciliation

This is what we've been doing at an organisational level anyhow (Master Data, inter -bank reconciliation) so we apply the same principles at a Business Service level

This needs team restructuring to be effective (Conway's Law)

What team topologies might work well?

Page 58: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Continuous Delivery for databases

Further details (article, slides):http://bit.ly/CDforDB

Page 59: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014
Page 60: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Further readingBuild Quality Inbuildqualityin.com

Continuous Delivery & DevOps experience reportsForewords by Dave Farley and Patrick Debois

70% of royalties go to Code Club (@CodeClub)

Contributors include several presenters at BBC:develop 2014:- Amy Phillips (Songkick)- Phil Wills (Guardian)

Discount for #bbcdevelop !https://leanpub.com/buildqualityin/c/BBCdevelop2014

Page 61: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Further readingRuth Malan (@ruthmalan) – Conway’s Law round-up: http://www.ruthmalan.com/Journal/2014/2014JournalMay.htm#Conways_Law

Allan Kelly on Conway’s Law: https://vimeo.com/channels/londoncd/85378217

Common database deployment blockers and Continuous Delivery headaches (Simple Talk) http://bit.ly/DatabaseDeployability

Team Topologies: http://bit.ly/DevOpsTopologies

Matt Hilbert on ‘Next Generation DBA’: http://bit.ly/NextGenDBA

Chris Richardson ‘Microservices: Decomposing Applications for Deployability and Scalability’ http://www.slideshare.net/chris.e.richardson/microservices-decomposing-applications-for-deployability-and-scalability-jax

Page 62: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

ThanksBBC for inviting the talk

Audience for listening, asking questions

People at Red Gate Software for joining up some of the dots

Page 63: Continuous Delivery for databases - microservices, team structures, and Conway's Law - develop:BBC 2014

Thank you!

http://skeltonthatcher.com/

[email protected]

@SkeltonThatcher

+44 (0)20 8242 4103