SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
How build and deployment
shapes software architecture
    at thetrainline.com
  Matthew Skelton | thetrainline.com
WebPerfDays EU, 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 hotshops list Nov 2011

                                                        #webperfdays
                                                     @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

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




                                           #webperfdays
                                        @matthewpskelton
10+ dev teams in 2 locations
                                  #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
“HERESY!”



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

Frequently-
 changing

Public-facing

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

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




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

         IDENTIFIABLE
  Meaningful versions, packages,
  defined dependencies, artefact
           management
       (think component boundaries)
                                         #webperfdays
                                      @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)

                                                          #webperfdays
                                                       @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
                                           @matthewpskelton
GO, MSDeploy, hand-rolled, Octopus, MSDeploy
                   (“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)                   #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
Rebuild Build Agents with Chef

  Chef for environment rebuilds

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

              Being replaced



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


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

                                          thank you

                 webperfdays.org
      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                                #webperfdays
                                                                                                                   @matthewpskelton

Más contenido relacionado

Similar a How build and deploy shapes software architecture at thetrainline.com

Similar a How build and deploy shapes software architecture at thetrainline.com (20)

Gute Nachrichten, Schlechte Nachrichten
Gute Nachrichten, Schlechte NachrichtenGute Nachrichten, Schlechte Nachrichten
Gute Nachrichten, Schlechte Nachrichten
 
How build-and-deploy-affects-architecture
How build-and-deploy-affects-architectureHow build-and-deploy-affects-architecture
How build-and-deploy-affects-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 architectures
 
Red Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaRed Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - Atlanta
 
Agile integration workshop Atlanta
Agile integration workshop   AtlantaAgile integration workshop   Atlanta
Agile integration workshop Atlanta
 
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
 
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
 
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
 
B4UConference_Sexy Angular Stack
B4UConference_Sexy Angular StackB4UConference_Sexy Angular Stack
B4UConference_Sexy Angular Stack
 
Sail In The Cloud
Sail In The CloudSail In The Cloud
Sail In The Cloud
 
Controlling your race with Micrometer, Spring Boot and Cloud Foundry
Controlling your race with Micrometer, Spring Boot and Cloud FoundryControlling your race with Micrometer, Spring Boot and Cloud Foundry
Controlling your race with Micrometer, Spring Boot and Cloud Foundry
 
A Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an IslandA Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an Island
 
Continuous integration testing 2019 08
Continuous integration testing 2019 08Continuous integration testing 2019 08
Continuous integration testing 2019 08
 
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...
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
Join Our Party: The Cloud Native Adventure Brigade (Kubernetes Belgium 2019)
Join Our Party: The Cloud Native Adventure Brigade (Kubernetes Belgium 2019)Join Our Party: The Cloud Native Adventure Brigade (Kubernetes Belgium 2019)
Join Our Party: The Cloud Native Adventure Brigade (Kubernetes Belgium 2019)
 
Integrating multiple CDNs at Etsy
Integrating multiple CDNs at EtsyIntegrating multiple CDNs at Etsy
Integrating multiple CDNs at Etsy
 
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
 
Problems you’ll face in the Microservices World: Configuration, Authenticatio...
Problems you’ll face in the Microservices World: Configuration, Authenticatio...Problems you’ll face in the Microservices World: Configuration, Authenticatio...
Problems you’ll face in the Microservices World: Configuration, Authenticatio...
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop Seattle
 

Más de 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
 
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
 

Más de 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...
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 

How build and deploy shapes software architecture at thetrainline.com

  • 1. How build and deployment shapes software architecture at thetrainline.com Matthew Skelton | thetrainline.com WebPerfDays EU, London | #webperfdays 05 October 2012 #webperfdays @matthewpskelton
  • 2. architecture = f (build & deploy) (for some systems) #webperfdays @matthewpskelton
  • 3. Systems engineering (robotics, control theory, sensors, neuroscience) Software development (finance, insurance, travel, pharma, media, medical imaging) now Build & Deployment at thetrainline.com #webperfdays @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 #webperfdays @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 #webperfdays @matthewpskelton
  • 8. • Early “distributed agile” success story • http://www.thoughtworks.com/trainline #webperfdays @matthewpskelton
  • 9. 10+ dev teams in 2 locations #webperfdays @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 #webperfdays @matthewpskelton
  • 13. architecture = f (build & deploy) (for some systems) #webperfdays @matthewpskelton
  • 14. “HERESY!” #webperfdays @matthewpskelton
  • 20. RELIABLE REPEATABLE RAPID RECURRING #webperfdays @matthewpskelton
  • 21. ‘R-R-R-R’ BUILD AND DEPLOYMENT Helps to avoid the Ball of Mud Enables high-performance architectures #webperfdays @matthewpskelton
  • 23. LOAD BALANCING HIGH AVAILABILITY SCALING ELASTIC RAPID RECOVERY #webperfdays @matthewpskelton
  • 24. BUILDABLE Small pipelined builds on generic build machines Seconds, not minutes or hours Short feedback cycles #webperfdays (Dan Worthington-Bodart, @danielbodart - http://bit.ly/M85wsX) @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 #webperfdays @matthewpskelton
  • 26. TESTABLE Test (separation, harnesses, points) IDENTIFIABLE Meaningful versions, packages, defined dependencies, artefact management (think component boundaries) #webperfdays @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) #webperfdays @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 @matthewpskelton
  • 29. GO, MSDeploy, hand-rolled, Octopus, MSDeploy (“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) #webperfdays @matthewpskelton
  • 30. INSTANTIABLE No snowflakes or singletons RECOVERABLE No nasty zombies after failures MTTR more important than MTBF* * for most kinds of F #webperfdays @matthewpskelton
  • 31. Rebuild Build Agents with Chef Chef for environment rebuilds Call Start() and Stop() on each component #webperfdays @matthewpskelton
  • 33. Well-known monolithic business rules engine Costly to build, deploy, configure, test Being replaced #webperfdays @matthewpskelton
  • 34. RELIABLE REPEATABLE RAPID RECURRING #webperfdays @matthewpskelton
  • 35. LIGHTWEIGHT LOAD BALANCING TESTABLE HIGH AVAILABILITY MONITORABLE SCALING CONFIGURABLE ELASTIC RECOVERABLE RAPID RECOVERY IDENTIFIABLE #webperfdays @matthewpskelton
  • 36. architecture = f (build & deploy) (for some systems) thank you webperfdays.org 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 #webperfdays @matthewpskelton