how build-and-deploy-affects-architecture

20
How build and deployment should shape software architectures Matthew Skelton CEng | thetrainline.com IASA UK Ignite 2, London | #iasaignite 10 September 2012

Upload: iasa-uk

Post on 23-Jan-2015

66 views

Category:

Technology


0 download

DESCRIPTION

Iasa UK Ignite 2 presentation by Matthew Skelton CEng | thetrainline.com

TRANSCRIPT

Page 1: How build-and-deploy-affects-architecture

How build and deployment should shape software

architectures

Matthew Skelton CEng | thetrainline.comIASA UK Ignite 2, London | #iasaignite

10 September 2012

Page 2: How build-and-deploy-affects-architecture

Systems engineering(robotics, control theory, sensors, neuroscience)

Software development

(finance, insurance, travel, pharma, media, medical imaging)

now

Build & Deployment at thetrainline.com

@matthewpskelton

Page 3: How build-and-deploy-affects-architecture

architecture = f (build & deploy)

(for some systems)

Page 4: How build-and-deploy-affects-architecture

“HERESY!”

Page 5: How build-and-deploy-affects-architecture
Page 6: How build-and-deploy-affects-architecture
Page 7: How build-and-deploy-affects-architecture
Page 8: How build-and-deploy-affects-architecture

RELIABLEREPEATABLE

RAPIDRECURRING

Page 9: How build-and-deploy-affects-architecture

Web-based

Frequently- changing

Public-facing

High-volume

Page 10: How build-and-deploy-affects-architecture

‘R-R-R-R’ BUILD AND DEPLOYMENT

Helps to avoid the Ball of Mud

Page 11: How build-and-deploy-affects-architecture

Ball of Mud

Brian Foote: http://www.laputan.org/mud/

Page 12: How build-and-deploy-affects-architecture

BUILDABLE

Small pipelined builds on generic build machines Seconds, not minutes or hours

Short feedback cycles(Dan Worthington-Bodart, @danielbodart - http://bit.ly/M85wsX)

“CRAZY FAST BUILDS”

Page 13: How build-and-deploy-affects-architecture

TESTABLETest (separation, harnesses, points)

IDENTIFIABLEMeaningful versions, packages, defined dependencies, artefact

management

(think component boundaries)

Page 14: How build-and-deploy-affects-architecture

DEPLOYABLERapid, scriptable, simple failure modes

MONITORABLELogging, metrics, transaction tracing

CONFIGURABLEInject settings – no ‘black boxes’

LIGHTWEIGHTKeep things small and easily comprehendible

Page 15: How build-and-deploy-affects-architecture

INSTANTIABLENo snowflakes or singletons

RECOVERABLENo nasty zombies after failures

MTTR more important than MTBF** for most kinds of F

Page 16: How build-and-deploy-affects-architecture

Be brutal with things which prevent ‘R-R-R-R’ build and deployment;knock them out of your architectures

Page 17: How build-and-deploy-affects-architecture

RELIABLEREPEATABLE

RAPIDRECURRING

Page 18: How build-and-deploy-affects-architecture

Lightweight, Testable, Monitorable, Configurable,

Recoverable, Identifiablecomponent architecture

Page 19: How build-and-deploy-affects-architecture

LOAD BALANCINGHIGH AVAILABILITY

SCALINGELASTIC ARCHITECTURES

RAPID RECOVERY

Page 20: How build-and-deploy-affects-architecture

architecture = f (build & deploy)

(for some systems)

thank you

IASA: www.iasaglobal.orgmatthewskelton.net | @matthewpskelton

Thanks to: Attila S, Jack R and Owain P for feedback.

Picture credits: Petra: Wikimedia/Berthold Werner; army engineers: US DoD; ball of mud: pwern.blogspot.co.uk; sports car: xarj.net; zombie: bjj.org; feather:

Wikipedia; punch: thelegalblitz.com; passport: coverpalace.com; dogs: reluctantmemsahib.wordpress.com; Meccano: dalefield.com