SlideShare a Scribd company logo
1 of 37
Download to read offline
How build and deployment
shapes software architecture
    at thetrainline.com
  Matthew Skelton | thetrainline.com
 AKQA Anoraks, London | #akqaanoraks
         29 November 2012


                                     #akqaanoraks
                                 @matthewpskelton
architecture
= f (build & deploy)
                (for some systems)




                        #akqaanoraks
                    @matthewpskelton
Systems engineering
      (robotics, control theory, sensors, neuroscience)




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




                            now


Build & Deployment
at thetrainline.com
                                                                   #akqaanoraks
                                                               @matthewpskelton
#akqaanoraks
@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 hotshops list Nov 2011

                                                         #akqaanoraks
                                                     @matthewpskelton
Booking engines for many UK train operators

   Ticketing systems for Corporates and TMCs

      Several hundred individual websites

> £1bn ($1.5bn USD) per year in train ticket sales

                                              #akqaanoraks
                                          @matthewpskelton
#akqaanoraks
@matthewpskelton
• Early “distributed agile” success story
• http://www.thoughtworks.com/trainline




                                            #akqaanoraks
                                        @matthewpskelton
10+ dev teams in 2 locations
                                   #akqaanoraks
                               @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
                                 #akqaanoraks
                             @matthewpskelton
#akqaanoraks
@matthewpskelton
#akqaanoraks
@matthewpskelton
architecture
= f (build & deploy)
                (for some systems)




                        #akqaanoraks
                    @matthewpskelton
“HERESY!”



          #webperfdays
           #akqaanoraks
       @matthewpskelton
#webperfdays
    #akqaanoraks
@matthewpskelton
#webperfdays
    #akqaanoraks
@matthewpskelton
#webperfdays
    #akqaanoraks
@matthewpskelton
Web-based

Frequently-
 changing

Public-facing

High-volume
           #akqaanoraks
       @matthewpskelton
#akqaanoraks
@matthewpskelton
RELIABLE
REPEATABLE
  RAPID
RECURRING       #webperfdays
                 #akqaanoraks
             @matthewpskelton
‘R-R-R-R’
BUILD AND DEPLOYMENT
Helps to avoid the Ball of Mud

 Enables high-performance
        architectures
                             #webperfdays
                              #akqaanoraks
                          @matthewpskelton
#webperfdays
    #akqaanoraks
@matthewpskelton
LOAD BALANCING
HIGH AVAILABILITY
    SCALING
     ELASTIC
 RAPID RECOVERY
                   #webperfdays
                    #akqaanoraks
                @matthewpskelton
BUILDABLE




Small pipelined builds on generic build machines
         Seconds, not minutes or hours
              Short feedback cycles           #webperfdays
                                              #akqaanoraks
                                               #akqaanoraks
         (Dan Worthington-Bodart, @danielbodart - http://bit.ly/M85wsX)   @matthewpskelton
                                                                          @matthewpskelton
Build dependencies may mirror runtime deps
   msbuild /m for 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
                                               #akqaanoraks
                                           @matthewpskelton
TESTABLE
Test (separation, harnesses, points)

         IDENTIFIABLE
  Meaningful versions, packages,
  defined dependencies, artefact
           management
       (think component boundaries)
                                         #webperfdays
                                          #akqaanoraks
                                      @matthewpskelton
Enforced “onion” testing layers
(test separation, build machine firewalls, build agent types, …)
                  Semantic Versioning
                (A.B.C.D + contract to ‘clients’)
                 30+ external services
                       (test harnesses)

                                                           #akqaanoraks
                                                       @matthewpskelton
DEPLOYABLE
   Rapid, scriptable, simple failure modes

              MONITORABLE
    Logging, metrics, transaction tracing

               CONFIGURABLE
      Inject settings – no ‘black boxes’

              LIGHTWEIGHT
Keep things small and easily comprehendible
                                              #webperfdays
                                               #akqaanoraks
                                           @matthewpskelton
GO, MSDeploy, hand-rolled, Octopus, PS remoting
                     (“as simple as xcopy”)
              Graphite + SqlToGraphite
          (https://github.com/perryofpeek/SqlToGraphite)

                  LogStash + log4net
     (tune logging levels with config, transaction tracing)
           SCOM – operations manager
                   (early monitoring in Dev)                   #akqaanoraks
                                                           @matthewpskelton
INSTANTIABLE
   No snowflakes or singletons



        RECOVERABLE
 No nasty zombies after failures
MTTR more important than MTBF*
                          * for most kinds of F


                                     #webperfdays
                                      #akqaanoraks
                                  @matthewpskelton
Rebuild Build Agents with Chef

  Chef for environment rebuilds

Call Start() and Stop() on each
           component
                                       #akqaanoraks
                                   @matthewpskelton
#webperfdays
    #akqaanoraks
    #akqaanoraks
@matthewpskelton
@matthewpskelton
Well-known monolithic business rules engine
   Costly to build, deploy, configure, test

              Being replaced



                                         #akqaanoraks
                                     @matthewpskelton
RELIABLE
REPEATABLE
  RAPID
RECURRING       #webperfdays
                 #akqaanoraks
             @matthewpskelton
LIGHTWEIGHT
 LOAD BALANCING
                    TESTABLE
HIGH AVAILABILITY
                    MONITORABLE
         SCALING
                    CONFIGURABLE
          ELASTIC
                    RECOVERABLE
  RAPID RECOVERY
                    IDENTIFIABLE


                                #webperfdays
                                 #akqaanoraks
                             @matthewpskelton
London Continuous Delivery

             Next meetup:
         17 January 2013, with
            Opscode (Chef)



              #londoncd
                              #akqaanoraks
                          @matthewpskelton
architecture
= f (build & deploy)
                                                                                                                                      (for some systems)

                                                         thank you

                                @AKQAAnoraks
                  Blog: http://engineering.thetrainline.com/
                  matthewskelton.net | @matthewpskelton
                               Thanks to: Attila S, Jack R and Owain P 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                  #akqaanoraks
                                                                                                                                              @matthewpskelton

More Related Content

Similar to How Build and Deployment Shapes Software Architecture

How build and deployment should shape software architectures
How build and deployment should shape software architecturesHow build and deployment should shape software architectures
How build and deployment should shape software architecturesMatthew Skelton
 
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...Alberto Salazar
 
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Putting the 'I' in IoT - Building Digital Twins with Akka MicroservicesPutting the 'I' in IoT - Building Digital Twins with Akka Microservices
Putting the 'I' in IoT - Building Digital Twins with Akka MicroservicesLightbend
 
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...Codemotion
 
Sail In The Cloud
Sail In The CloudSail In The Cloud
Sail In The CloudAlex Soto
 
Forensics of CAN Bus
Forensics of CAN BusForensics of CAN Bus
Forensics of CAN BusDaniel Lance
 
2018 MONOLITICH TO MICROSERVICES - Conferencia Javeros colombia
2018 MONOLITICH TO MICROSERVICES  - Conferencia Javeros colombia 2018 MONOLITICH TO MICROSERVICES  - Conferencia Javeros colombia
2018 MONOLITICH TO MICROSERVICES - Conferencia Javeros colombia Alberto Salazar
 
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...Codemotion
 
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)Andrew Randall
 
3h à l'assaut d'une application réactive - Devoxx 2015
3h à l'assaut d'une application réactive - Devoxx 20153h à l'assaut d'une application réactive - Devoxx 2015
3h à l'assaut d'une application réactive - Devoxx 2015Publicis Sapient Engineering
 
#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to Microservices#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to MicroservicesAlberto Salazar
 
Day 2 Kubernetes - Tools for Operability (KubeCon)
Day 2 Kubernetes - Tools for Operability (KubeCon)Day 2 Kubernetes - Tools for Operability (KubeCon)
Day 2 Kubernetes - Tools for Operability (KubeCon)bridgetkromhout
 
Git Workflow Strategies for Technical Debt Management
Git Workflow Strategies for Technical Debt ManagementGit Workflow Strategies for Technical Debt Management
Git Workflow Strategies for Technical Debt ManagementRaquel Pau
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGian Maria Ricci
 
Testing in the 21st Century
Testing in the 21st CenturyTesting in the 21st Century
Testing in the 21st CenturyAlex Soto
 
The Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneThe Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneKonrad Malawski
 
Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native JavaAlex Soto
 
Oracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to MicroservicesOracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to MicroservicesAlberto Salazar
 
"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris
"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris
"Microservices Lessons Learned" talk at Voxxed Days Microservices, ParisSusanne Kaiser
 
We all need friends and Akka just found Kubernetes
We all need friends and Akka just found KubernetesWe all need friends and Akka just found Kubernetes
We all need friends and Akka just found KubernetesFabio Tiriticco
 

Similar to How Build and Deployment Shapes Software Architecture (20)

How build and deployment should shape software architectures
How build and deployment should shape software architecturesHow build and deployment should shape software architectures
How build and deployment should shape software architectures
 
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
 
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Putting the 'I' in IoT - Building Digital Twins with Akka MicroservicesPutting the 'I' in IoT - Building Digital Twins with Akka Microservices
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
 
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
 
Sail In The Cloud
Sail In The CloudSail In The Cloud
Sail In The Cloud
 
Forensics of CAN Bus
Forensics of CAN BusForensics of CAN Bus
Forensics of CAN Bus
 
2018 MONOLITICH TO MICROSERVICES - Conferencia Javeros colombia
2018 MONOLITICH TO MICROSERVICES  - Conferencia Javeros colombia 2018 MONOLITICH TO MICROSERVICES  - Conferencia Javeros colombia
2018 MONOLITICH TO MICROSERVICES - Conferencia Javeros colombia
 
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
Fabio Tiriticco - Ádám Sándor - Akka Cluster versus Kubernetes: Clustering...
 
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
 
3h à l'assaut d'une application réactive - Devoxx 2015
3h à l'assaut d'une application réactive - Devoxx 20153h à l'assaut d'une application réactive - Devoxx 2015
3h à l'assaut d'une application réactive - Devoxx 2015
 
#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to Microservices#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to Microservices
 
Day 2 Kubernetes - Tools for Operability (KubeCon)
Day 2 Kubernetes - Tools for Operability (KubeCon)Day 2 Kubernetes - Tools for Operability (KubeCon)
Day 2 Kubernetes - Tools for Operability (KubeCon)
 
Git Workflow Strategies for Technical Debt Management
Git Workflow Strategies for Technical Debt ManagementGit Workflow Strategies for Technical Debt Management
Git Workflow Strategies for Technical Debt Management
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
 
Testing in the 21st Century
Testing in the 21st CenturyTesting in the 21st Century
Testing in the 21st Century
 
The Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneThe Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOne
 
Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native Java
 
Oracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to MicroservicesOracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to Microservices
 
"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris
"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris
"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris
 
We all need friends and Akka just found Kubernetes
We all need friends and Akka just found KubernetesWe all need friends and Akka just found Kubernetes
We all need friends and Akka just found Kubernetes
 

More from Matthew Skelton

Find me on SpeakerDeck! - Matthew Skelton.pdf
Find me on SpeakerDeck! - Matthew Skelton.pdfFind me on SpeakerDeck! - Matthew Skelton.pdf
Find me on SpeakerDeck! - Matthew Skelton.pdfMatthew Skelton
 
Business and technical agility with Team Topologies - QCon Plus - 2021-05-26
Business and technical agility with Team Topologies - QCon Plus - 2021-05-26Business and technical agility with Team Topologies - QCon Plus - 2021-05-26
Business and technical agility with Team Topologies - QCon Plus - 2021-05-26Matthew Skelton
 
What is platform as a product? Clues from Team Topologies - WTFinar with Cont...
What is platform as a product? Clues from Team Topologies - WTFinar with Cont...What is platform as a product? Clues from Team Topologies - WTFinar with Cont...
What is platform as a product? Clues from Team Topologies - WTFinar with Cont...Matthew Skelton
 
Business agility with Team Topologies - NatWest Group - 2021-01-19
Business agility with Team Topologies - NatWest Group - 2021-01-19Business agility with Team Topologies - NatWest Group - 2021-01-19
Business agility with Team Topologies - NatWest Group - 2021-01-19Matthew Skelton
 
WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...
WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...
WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...Matthew Skelton
 
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...Matthew Skelton
 
Accidental Architects - how HR designs software systems - Team Topologies - f...
Accidental Architects - how HR designs software systems - Team Topologies - f...Accidental Architects - how HR designs software systems - Team Topologies - f...
Accidental Architects - how HR designs software systems - Team Topologies - f...Matthew Skelton
 
Team Topologies in action - early results from industry - DOES Las Vegas 2020...
Team Topologies in action - early results from industry - DOES Las Vegas 2020...Team Topologies in action - early results from industry - DOES Las Vegas 2020...
Team Topologies in action - early results from industry - DOES Las Vegas 2020...Matthew Skelton
 
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...Matthew Skelton
 
Remote first team interactions with Team Topologies - Iris Software Group - 2...
Remote first team interactions with Team Topologies - Iris Software Group - 2...Remote first team interactions with Team Topologies - Iris Software Group - 2...
Remote first team interactions with Team Topologies - Iris Software Group - 2...Matthew Skelton
 
Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...Matthew Skelton
 
Accidental Architects - how HR designs software systems - Team Topologies - e...
Accidental Architects - how HR designs software systems - Team Topologies - e...Accidental Architects - how HR designs software systems - Team Topologies - e...
Accidental Architects - how HR designs software systems - Team Topologies - e...Matthew Skelton
 
Remote-first team interactions with Team Topologies - SEAM - 2020-05-13
Remote-first team interactions with Team Topologies - SEAM - 2020-05-13Remote-first team interactions with Team Topologies - SEAM - 2020-05-13
Remote-first team interactions with Team Topologies - SEAM - 2020-05-13Matthew Skelton
 
Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...
Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...
Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...Matthew Skelton
 
Remote first team interactions with Team Topologies - IT Revolution webinar -...
Remote first team interactions with Team Topologies - IT Revolution webinar -...Remote first team interactions with Team Topologies - IT Revolution webinar -...
Remote first team interactions with Team Topologies - IT Revolution webinar -...Matthew Skelton
 
Remote-first team interactions with Team Topologies
Remote-first team interactions with Team TopologiesRemote-first team interactions with Team Topologies
Remote-first team interactions with Team TopologiesMatthew Skelton
 
Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...
Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...
Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...Matthew Skelton
 
How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...Matthew Skelton
 
Un-broken logging - the foundation of software operability - Operability.io -...
Un-broken logging - the foundation of software operability - Operability.io -...Un-broken logging - the foundation of software operability - Operability.io -...
Un-broken logging - the foundation of software operability - Operability.io -...Matthew Skelton
 
Forget monoliths vs microservices - focus on team cognitive load - Team Topol...
Forget monoliths vs microservices - focus on team cognitive load - Team Topol...Forget monoliths vs microservices - focus on team cognitive load - Team Topol...
Forget monoliths vs microservices - focus on team cognitive load - Team Topol...Matthew Skelton
 

More from Matthew Skelton (20)

Find me on SpeakerDeck! - Matthew Skelton.pdf
Find me on SpeakerDeck! - Matthew Skelton.pdfFind me on SpeakerDeck! - Matthew Skelton.pdf
Find me on SpeakerDeck! - Matthew Skelton.pdf
 
Business and technical agility with Team Topologies - QCon Plus - 2021-05-26
Business and technical agility with Team Topologies - QCon Plus - 2021-05-26Business and technical agility with Team Topologies - QCon Plus - 2021-05-26
Business and technical agility with Team Topologies - QCon Plus - 2021-05-26
 
What is platform as a product? Clues from Team Topologies - WTFinar with Cont...
What is platform as a product? Clues from Team Topologies - WTFinar with Cont...What is platform as a product? Clues from Team Topologies - WTFinar with Cont...
What is platform as a product? Clues from Team Topologies - WTFinar with Cont...
 
Business agility with Team Topologies - NatWest Group - 2021-01-19
Business agility with Team Topologies - NatWest Group - 2021-01-19Business agility with Team Topologies - NatWest Group - 2021-01-19
Business agility with Team Topologies - NatWest Group - 2021-01-19
 
WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...
WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...
WFT is platform as a product? Clues from Team Topologies - WTFinar with Conta...
 
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
 
Accidental Architects - how HR designs software systems - Team Topologies - f...
Accidental Architects - how HR designs software systems - Team Topologies - f...Accidental Architects - how HR designs software systems - Team Topologies - f...
Accidental Architects - how HR designs software systems - Team Topologies - f...
 
Team Topologies in action - early results from industry - DOES Las Vegas 2020...
Team Topologies in action - early results from industry - DOES Las Vegas 2020...Team Topologies in action - early results from industry - DOES Las Vegas 2020...
Team Topologies in action - early results from industry - DOES Las Vegas 2020...
 
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
 
Remote first team interactions with Team Topologies - Iris Software Group - 2...
Remote first team interactions with Team Topologies - Iris Software Group - 2...Remote first team interactions with Team Topologies - Iris Software Group - 2...
Remote first team interactions with Team Topologies - Iris Software Group - 2...
 
Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...
 
Accidental Architects - how HR designs software systems - Team Topologies - e...
Accidental Architects - how HR designs software systems - Team Topologies - e...Accidental Architects - how HR designs software systems - Team Topologies - e...
Accidental Architects - how HR designs software systems - Team Topologies - e...
 
Remote-first team interactions with Team Topologies - SEAM - 2020-05-13
Remote-first team interactions with Team Topologies - SEAM - 2020-05-13Remote-first team interactions with Team Topologies - SEAM - 2020-05-13
Remote-first team interactions with Team Topologies - SEAM - 2020-05-13
 
Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...
Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...
Remote-first team interactions with Team Topologies - Agile Yorkshire - 2020-...
 
Remote first team interactions with Team Topologies - IT Revolution webinar -...
Remote first team interactions with Team Topologies - IT Revolution webinar -...Remote first team interactions with Team Topologies - IT Revolution webinar -...
Remote first team interactions with Team Topologies - IT Revolution webinar -...
 
Remote-first team interactions with Team Topologies
Remote-first team interactions with Team TopologiesRemote-first team interactions with Team Topologies
Remote-first team interactions with Team Topologies
 
Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...
Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...
Forget monoliths vs microservices - focus on Team Cognitive Load - Team Topol...
 
How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...
 
Un-broken logging - the foundation of software operability - Operability.io -...
Un-broken logging - the foundation of software operability - Operability.io -...Un-broken logging - the foundation of software operability - Operability.io -...
Un-broken logging - the foundation of software operability - Operability.io -...
 
Forget monoliths vs microservices - focus on team cognitive load - Team Topol...
Forget monoliths vs microservices - focus on team cognitive load - Team Topol...Forget monoliths vs microservices - focus on team cognitive load - Team Topol...
Forget monoliths vs microservices - focus on team cognitive load - Team Topol...
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

How Build and Deployment Shapes Software Architecture

  • 1. How build and deployment shapes software architecture at thetrainline.com Matthew Skelton | thetrainline.com AKQA Anoraks, London | #akqaanoraks 29 November 2012 #akqaanoraks @matthewpskelton
  • 2. architecture = f (build & deploy) (for some systems) #akqaanoraks @matthewpskelton
  • 3. Systems engineering (robotics, control theory, sensors, neuroscience) Software development (finance, insurance, travel, pharma, media, medical imaging) now Build & Deployment at thetrainline.com #akqaanoraks @matthewpskelton
  • 5. 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 hotshops list Nov 2011 #akqaanoraks @matthewpskelton
  • 6. Booking engines for many UK train operators Ticketing systems for Corporates and TMCs Several hundred individual websites > £1bn ($1.5bn USD) per year in train ticket sales #akqaanoraks @matthewpskelton
  • 8. • Early “distributed agile” success story • http://www.thoughtworks.com/trainline #akqaanoraks @matthewpskelton
  • 9. 10+ dev teams in 2 locations #akqaanoraks @matthewpskelton
  • 10. 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 #akqaanoraks @matthewpskelton
  • 13. architecture = f (build & deploy) (for some systems) #akqaanoraks @matthewpskelton
  • 14. “HERESY!” #webperfdays #akqaanoraks @matthewpskelton
  • 15. #webperfdays #akqaanoraks @matthewpskelton
  • 16. #webperfdays #akqaanoraks @matthewpskelton
  • 17. #webperfdays #akqaanoraks @matthewpskelton
  • 20. RELIABLE REPEATABLE RAPID RECURRING #webperfdays #akqaanoraks @matthewpskelton
  • 21. ‘R-R-R-R’ BUILD AND DEPLOYMENT Helps to avoid the Ball of Mud Enables high-performance architectures #webperfdays #akqaanoraks @matthewpskelton
  • 22. #webperfdays #akqaanoraks @matthewpskelton
  • 23. LOAD BALANCING HIGH AVAILABILITY SCALING ELASTIC RAPID RECOVERY #webperfdays #akqaanoraks @matthewpskelton
  • 24. BUILDABLE Small pipelined builds on generic build machines Seconds, not minutes or hours Short feedback cycles #webperfdays #akqaanoraks #akqaanoraks (Dan Worthington-Bodart, @danielbodart - http://bit.ly/M85wsX) @matthewpskelton @matthewpskelton
  • 25. Build dependencies may mirror runtime deps msbuild /m for 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 #akqaanoraks @matthewpskelton
  • 26. TESTABLE Test (separation, harnesses, points) IDENTIFIABLE Meaningful versions, packages, defined dependencies, artefact management (think component boundaries) #webperfdays #akqaanoraks @matthewpskelton
  • 27. Enforced “onion” testing layers (test separation, build machine firewalls, build agent types, …) Semantic Versioning (A.B.C.D + contract to ‘clients’) 30+ external services (test harnesses) #akqaanoraks @matthewpskelton
  • 28. DEPLOYABLE Rapid, scriptable, simple failure modes MONITORABLE Logging, metrics, transaction tracing CONFIGURABLE Inject settings – no ‘black boxes’ LIGHTWEIGHT Keep things small and easily comprehendible #webperfdays #akqaanoraks @matthewpskelton
  • 29. GO, MSDeploy, hand-rolled, Octopus, PS remoting (“as simple as xcopy”) Graphite + SqlToGraphite (https://github.com/perryofpeek/SqlToGraphite) LogStash + log4net (tune logging levels with config, transaction tracing) SCOM – operations manager (early monitoring in Dev) #akqaanoraks @matthewpskelton
  • 30. INSTANTIABLE No snowflakes or singletons RECOVERABLE No nasty zombies after failures MTTR more important than MTBF* * for most kinds of F #webperfdays #akqaanoraks @matthewpskelton
  • 31. Rebuild Build Agents with Chef Chef for environment rebuilds Call Start() and Stop() on each component #akqaanoraks @matthewpskelton
  • 32. #webperfdays #akqaanoraks #akqaanoraks @matthewpskelton @matthewpskelton
  • 33. Well-known monolithic business rules engine Costly to build, deploy, configure, test Being replaced #akqaanoraks @matthewpskelton
  • 34. RELIABLE REPEATABLE RAPID RECURRING #webperfdays #akqaanoraks @matthewpskelton
  • 35. LIGHTWEIGHT LOAD BALANCING TESTABLE HIGH AVAILABILITY MONITORABLE SCALING CONFIGURABLE ELASTIC RECOVERABLE RAPID RECOVERY IDENTIFIABLE #webperfdays #akqaanoraks @matthewpskelton
  • 36. London Continuous Delivery Next meetup: 17 January 2013, with Opscode (Chef) #londoncd #akqaanoraks @matthewpskelton
  • 37. architecture = f (build & deploy) (for some systems) thank you @AKQAAnoraks Blog: http://engineering.thetrainline.com/ matthewskelton.net | @matthewpskelton Thanks to: Attila S, Jack R and Owain P 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 #akqaanoraks @matthewpskelton