How build and deploy shapes software architecture at thetrainline.com
matthewskelton
5,448 views
36 slides
Oct 05, 2012
Slide 1 of 36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
About This Presentation
By ensuing our software builds and deployments are Reliable, Repeatable, Rapid and Recurring, we can produce software which is lightweight, testable, monitorable, configurable and recoverable. These properties enable features such as load-balancing, scaling, elasticity and rapid recovery, all key fo...
By ensuing our software builds and deployments are Reliable, Repeatable, Rapid and Recurring, we can produce software which is lightweight, testable, monitorable, configurable and recoverable. These properties enable features such as load-balancing, scaling, elasticity and rapid recovery, all key for high-performing web systems. R-R-R-R builds and deployments also enable Continuous Delivery of features into Production.
Size: 4.22 MB
Language: en
Added: Oct 05, 2012
Slides: 36 pages
Slide Content
#webperfdays
@matthewpskelton
How build and deployment
shapes software architecture
at thetrainline.com
Matthew Skelton | thetrainline.com
WebPerfDaysEU, London | #webperfdays
05 October 2012
#webperfdays
@matthewpskelton
architecture
= f (build&deploy)
(for some systems)
#webperfdays
@matthewpskelton
Systems engineering
(robotics, control theory, sensors, neuroscience)
Software
development
(finance, insurance, travel, pharma, media, medical imaging)
now
Build & Deployment
at thetrainline.com
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
9m visits per month to thetrainline.com
2nd most visited UK travel booking website
(behind Easyjet)*
Over 100,000 daily visits via our mobile apps
*source: IMRG hotshopslist Nov 2011
#webperfdays
@matthewpskelton
Booking engines for many UK train operators
Ticketing systems for Corporatesand TMCs
Several hundred individual websites
> £1bn ($1.5bn USD) per year in train ticket sales
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
•Early “distributed agile” success story
•http://www.thoughtworks.com/trainline
#webperfdays
@matthewpskelton
10+ dev teams in 2 locations
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
Server Farm
(Build, Deployment, Replication)
100+ build agents
20 dev environments x 20 VMs per
environment = 400 dev VMs
Git replication (Gitolite), …
MORE SERVERS THAN PRODUCTION
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
architecture
= f (build&deploy)
(for some systems)
#webperfdays
@matthewpskelton
‘R-R-R-R’
BUILD AND DEPLOYMENT
Helps to avoid the Ball of Mud
Enables high-performance
architectures
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
BUILDABLE
Small pipelined builds on generic build machines
Seconds, not minutesor hours
Short feedback cycles
(Dan Worthington-Bodart, @danielbodart-http://bit.ly/M85wsX)
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
Build dependencies may mirror runtime deps
msbuild/mfor multi-threaded builds
(forces component isolation)
Gallio(MbUnit) –replacement engine for NUnit
NuGet+ Squid for super-fast build artefacts
RAM disk for some working copy operations
#webperfdays
@matthewpskelton
TESTABLE
Test (separation, harnesses, points)
IDENTIFIABLE
Meaningful versions, packages,
defined dependencies, artefact
management
(think component boundaries)
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
INSTANTIABLE
No snowflakes or singletons
RECOVERABLE
No nasty zombies after failures
MTTR more important than MTBF*
* for most kinds of F
#webperfdays
@matthewpskelton
#webperfdays
@matthewpskelton
Rebuild Build Agents with Chef
Chef for environment rebuilds
Call Start()and Stop()on each
component
#webperfdays
@matthewpskelton
architecture
= f (build&deploy)
(for some systems)
thank you
webperfdays.org
matthewskelton.net| @matthewpskelton
Thanks to: Attila S, Jack R and OwainP for feedback.
Picture credits:
Label: seanlabel.com; Sheep: gallery.hd.org; Train:worldontrains.blogspot.co.uk; Gurner: mog.com; 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