This document discusses how software build and deployment processes can shape architectures, specifically for web-based systems that frequently change and have high volumes. It argues that architectures focused on being lightweight, testable, monitorable, configurable, recoverable, and having identifiable components can help systems be more reliable, repeatable, rapid, and able to recover from failures. The document also notes how such architectures allow for load balancing, high availability, scaling, and elasticity.
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
How build-and-deploy-affects-architecture
1. How build and deployment
should shape software
architectures
Matthew Skelton CEng | thetrainline.com
IASA UK Ignite 2, London | #iasaignite
10 September 2012
2. Systems engineering
(robotics, control theory, sensors, neuroscience)
Software
development
(finance, insurance, travel, pharma, media, medical imaging)
now
Build & Deployment
at thetrainline.com
@matthewpskelton
12. BUILDABLE
Small pipelined builds on generic build machines
Seconds, not minutes or hours
Short feedback cycles
(Dan Worthington-Bodart, @danielbodart - http://bit.ly/M85wsX)
13. TESTABLE
Test (separation, harnesses, points)
IDENTIFIABLE
Meaningful versions, packages,
defined dependencies, artefact
management
(think component boundaries)
14. DEPLOYABLE
Rapid, scriptable, simple failure modes
MONITORABLE
Logging, metrics, transaction tracing
CONFIGURABLE
Inject settings – no ‘black boxes’
LIGHTWEIGHT
Keep things small and easily comprehendible
15. INSTANTIABLE
No snowflakes or singletons
RECOVERABLE
No nasty zombies after failures
MTTR more important than MTBF*
* for most kinds of F
19. LOAD BALANCING
HIGH AVAILABILITY
SCALING
ELASTIC ARCHITECTURES
RAPID RECOVERY
20. architecture
= f (build & deploy)
(for some systems)
thank you
IASA: www.iasaglobal.org
matthewskelton.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
Notas del editor
If a component e.g. BizTalk is not {scriptable, deployable, buildable, etc.} then get rid of it