SlideShare a Scribd company logo
1 of 33
Scaling Systems: Architectures
          that Grow
Fundamental Patterns for scaling you can
      implement incrementally
Who Am I?
• Kendall Miller
• One of the Founders of Gibraltar Software
   – Small Independent Software Vendor Founded in 2008
   – Developers of VistaDB and Gibraltar
   – Engineers, not Sales People
• Enterprise Systems Architect & Developer since 1995
• BSE in Computer Engineering, University of Illinois
  Urbana-Champaign (UIUC)
• Twitter: @KendallMiller
Fair Warning
What is Scale?


Scaling is the ability to cope
   and perform under an
    increasing workload.
What is Scale?



Scaling to a load = available
    sustaining that load
What is Scale?


 Being available is really
 about a request being
completed in a period of
         time.
What’s your Target?
0.00E+00   1.00E+07    2.00E+07    3.00E+07   4.00E+07   5.00E+07   6.00E+07   7.00E+07

                                 Microsoft.com

                   Twitter.com

     Amazon.com

    Target.com

    Slashdot.org

    DevExpress.com

    Hanselman.com
    Gibraltar
    Software
     Average daily traffic in Visitors / Day
What’s your Target?
1.00E+00 1.00E+01 1.00E+02 1.00E+03 1.00E+04 1.00E+05 1.00E+06 1.00E+07 1.00E+08

                                 Microsoft.com

                                 Twitter.com

                              Amazon.com

                           Target.com

                     Slashdot.org

                DevExpress.com

              Hanselman.com
             Gibraltar
             Software
    Average daily traffic in Visitors / Day
What’s your Target?


  25,000 Visitors/Day = 125,000 Pages/Day

11 High Traffic Hours/Day = 12,000 Pages/Hour

   12,000 Pages/Hour = 3.3 Pages/Second
Specific Architectures
•   Gossip                   • Load Balancers + Shared
•   Map Reduce                 Nothing Units
•   Tree of Responsibility   • Load Balancers +
•   Stream Processing          Stateless Nodes +
                               Scalable Storage
•   Scalable Storage
                             • Content Addressable
•   Publish/Subscribe          Networks
•   Distributed Queues       • General Peer to Peer
ACD/C
• Async – Do the work whenever
• Caching – Don’t do any work you don’t have
  to
• Distribution – Get as many people to do the
  work as you can
• Consistency – We all agree on these key things
Async
• Decouple operations so you do the minimum
  amount of work in performance critical paths
• Queue work that can be completed later to
  smooth out load
• Speculative Execution
• Scheduled Requests (Nightly processes)
Caching
• Save results of earlier work nearby where they
  are handy to use again later
• Apply in front of anything that’s time
  consuming
• Easiest to apply from the left to the right
• Simple strategies can be really effective (EF
  Dump all on update)
Why Caching?
• Loading the world is impractical
• Apps ask a lot of repeating questions.
  – Stateless applications even more so
• Answers don’t change often
• Authoritative information is expensive
Distribution
• Distribute requests across multiple systems
• Classic web “Scale Out” approach
• The less state held, the easier to distribute
  work.
  – Distributed database = hard
  – Distributed static content server = easy
• Request routing for distribution can serve
  other availability purposes
Consistency
• The degree to which all parties observe the
  same state of the system at the same time
• Scaling inevitably requires compromise
  – Forces one source of the truth for absolute
    consistency and requires extensive locking to
    ensure parties agree
  – The real world doesn’t require the consistency we
    tend to demand of our systems
Consistency Challenges
• Singleton Data Structures (Order numbers..)
• State held between the endpoints of a process
• Consistent results of queries across
  partitioned datasets
Typical Application
                   Session State          Transaction Isolation
                    SSL Session           Reader/Writer Locks
                  Log Contention       Singleton Data Structures
                Memory Allocation/GC
                  Network Sockets
                  Request Queue



 Client                Server
  (Web                  (Web                   Storage
Browser)               Server)               (Database)
Caching
100%       50%     10%      1%




 Client           Server
  (Web             (Web            Storage
Browser)          Server)        (Database)
Distribution
                            Session State and Identity
                             need to be factored out
                             Partition (Sticky Session)
                            First, then stateless nodes
 Client           Server
  (Web             (Web
 Client
Browser)          Server)
  (Web
 Client                                Storage
Browser)
  (Web                               (Database)
 Client           Server
Browser)
  (Web             (Web
Browser)          Server)
Partitioned Storage Zones
                   Server
 Client             (Web
                   Server
  (Web             Server)
                    (Web       Storage
 Client                      (Database)
Browser)           Server)
  (Web
 Client
Browser)
  (Web
 Client            Server
Browser)
  (Web              (Web
Browser)           Server
                   Server)     Storage
                    (Web
                   Server)   (Database)
Partitioned Storage Intra-Zone

 Client                 Server
                                   Orders
  (Web     Customer B    (Web
                        Server
 Client
Browser)                Server)
                         (Web
  (Web                  Server
 Client                 Server)
Browser)                 (Web
  (Web                  Server
 Client                 Server)
Browser)                 (Web     Products
  (Web
                        Server)
Browser)


                                  Inventory
Asynchronous Processing

Server                   Orders
 (Web      Order
Server
Server)    Queue
 (Web
Server
Server)
 (Web
Server
Server)
 (Web                   Products
Server)
            Order
          Processing
            Server      Inventory
Fallacies of Distributed Computing
•   The network is reliable
•   Latency is zero
•   Bandwidth is infinite
•   The network is secure
•   Topology doesn’t change
•   There is one administrator
•   Transport cost is zero
•   The network is homogeneous
Fresh Problems: Partial Failures

 Client           Server
  (Web             (Web
 Client
Browser)          Server)
  (Web
 Client                        Storage
Browser)
  (Web                       (Database)
 Client           Server
Browser)
  (Web             (Web
Browser)          Server)
Fresh Problems: Partial Failures
1. Break system into individual failure zones
2. Monitor each instance of each zone for
   problems
3. Route around bad instances
Without
monitoring, redundancy is
       worthless
Fresh Problems: Upgrades
                  Server
 Client            (Web
                  Server
  (Web            Server)
                   (Web       Storage
 Client                     (Database)
Browser)          Server)
  (Web
 Client
Browser)
  (Web
 Client           Server
Browser)
  (Web             (Web
Browser)          Server
                  Server)     Storage
                   (Web
                  Server)   (Database)
Fresh Problems: Upgrades
1. Break system into individual upgrade zones
2. Upgrade each zone – Drain &
   Stop, Upgrade, Verify.
3. Cut traffic over to updated zones
Design for Software Update
      From the Start
    • Don’t forget Data Schemas
Bringing Home the Bacon


       Testing
       Testing
       Testing
Critical Lessons Learned
• ACD/C
• Clear Consistency
  Strategy
• Build in monitoring and
  management
Additional Information:
   Websites
      – www.GibraltarSoftware.com
      – www.eSymmetrix.com

   Follow Up
      – Kendall.Miller@eSymmetrix.com
      – Twitter: kendallmiller

More Related Content

What's hot

The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenParticular Software
 
Aws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and DevelopersAws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and DevelopersDylan Burris
 
VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!VMworld
 
Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveJonas Bonér
 
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...SL Corporation
 
How to Build High Performance : WordPress
How to Build High Performance : WordPressHow to Build High Performance : WordPress
How to Build High Performance : WordPressDylan Burris
 
12 best practices for virtualizing active directory DCs
12 best practices for virtualizing active directory DCs12 best practices for virtualizing active directory DCs
12 best practices for virtualizing active directory DCsVeeam Software
 
Towards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI StoryTowards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI StoryIT Expert Club
 
Design principles of scalable, distributed systems
Design principles of scalable, distributed systemsDesign principles of scalable, distributed systems
Design principles of scalable, distributed systemsTinniam V Ganesh (TV)
 
Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...
Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...
Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...IT Arena
 
VMworld 2013: Virtualize Active Directory ‒ The Right Way!
VMworld 2013: Virtualize Active Directory ‒ The Right Way!VMworld 2013: Virtualize Active Directory ‒ The Right Way!
VMworld 2013: Virtualize Active Directory ‒ The Right Way!VMworld
 
Stream Collections - Scala Days
Stream Collections - Scala DaysStream Collections - Scala Days
Stream Collections - Scala DaysGreg Silin
 
Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providersLen Bass
 
Reactive Supply To Changing Demand
Reactive Supply To Changing DemandReactive Supply To Changing Demand
Reactive Supply To Changing DemandJonas Bonér
 
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...Bob Pusateri
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Andrew Miller
 
Dashboard project.
Dashboard project.Dashboard project.
Dashboard project.ratankadam
 
Architecting for the cloud elasticity security
Architecting for the cloud elasticity securityArchitecting for the cloud elasticity security
Architecting for the cloud elasticity securityLen Bass
 

What's hot (20)

CQRS
CQRSCQRS
CQRS
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 
Aws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and DevelopersAws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and Developers
 
VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!
 
Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspective
 
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
 
How to Build High Performance : WordPress
How to Build High Performance : WordPressHow to Build High Performance : WordPress
How to Build High Performance : WordPress
 
12 best practices for virtualizing active directory DCs
12 best practices for virtualizing active directory DCs12 best practices for virtualizing active directory DCs
12 best practices for virtualizing active directory DCs
 
Towards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI StoryTowards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI Story
 
Design principles of scalable, distributed systems
Design principles of scalable, distributed systemsDesign principles of scalable, distributed systems
Design principles of scalable, distributed systems
 
Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...
Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...
Dennis Doomen. Using OWIN, Webhooks, Event Sourcing and the Onion Architectur...
 
Os Solomon
Os SolomonOs Solomon
Os Solomon
 
VMworld 2013: Virtualize Active Directory ‒ The Right Way!
VMworld 2013: Virtualize Active Directory ‒ The Right Way!VMworld 2013: Virtualize Active Directory ‒ The Right Way!
VMworld 2013: Virtualize Active Directory ‒ The Right Way!
 
Stream Collections - Scala Days
Stream Collections - Scala DaysStream Collections - Scala Days
Stream Collections - Scala Days
 
Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providers
 
Reactive Supply To Changing Demand
Reactive Supply To Changing DemandReactive Supply To Changing Demand
Reactive Supply To Changing Demand
 
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
 
Dashboard project.
Dashboard project.Dashboard project.
Dashboard project.
 
Architecting for the cloud elasticity security
Architecting for the cloud elasticity securityArchitecting for the cloud elasticity security
Architecting for the cloud elasticity security
 

Similar to Scaling Systems: Architectures that Grow

Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Vikas Sahni
 
Building azure applications ireland
Building azure applications irelandBuilding azure applications ireland
Building azure applications irelandMichael Meagher
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure PlatformAsmTrash
 
Fixing Twitter Velocity2009
Fixing Twitter Velocity2009Fixing Twitter Velocity2009
Fixing Twitter Velocity2009John Adams
 
Architecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudArchitecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudClint Edmonson
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitterRoger Xia
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azuredivyapisces
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...Amazon Web Services
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978David Chou
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale ArchitectureRightScale
 
Database Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big DataDatabase Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big Dataexponential-inc
 
Windows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerWindows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerMustafa
 
Windows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerWindows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerMSHOWTO Bilisim Toplulugu
 
13h00 p duff-building-applications-with-aws-final
13h00   p duff-building-applications-with-aws-final13h00   p duff-building-applications-with-aws-final
13h00 p duff-building-applications-with-aws-finalLuiz Gustavo Santos
 
Java EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithJava EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithMarkus Eisele
 

Similar to Scaling Systems: Architectures that Grow (20)

Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
 
Building azure applications ireland
Building azure applications irelandBuilding azure applications ireland
Building azure applications ireland
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure Platform
 
Fixing Twitter Velocity2009
Fixing Twitter Velocity2009Fixing Twitter Velocity2009
Fixing Twitter Velocity2009
 
Architecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudArchitecting Scalable Applications in the Cloud
Architecting Scalable Applications in the Cloud
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azure
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale Architecture
 
Database Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big DataDatabase Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big Data
 
Windows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerWindows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen Hizmetler
 
Windows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerWindows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek Hizmetler
 
Building Applications with AWS
Building Applications with AWSBuilding Applications with AWS
Building Applications with AWS
 
13h00 p duff-building-applications-with-aws-final
13h00   p duff-building-applications-with-aws-final13h00   p duff-building-applications-with-aws-final
13h00 p duff-building-applications-with-aws-final
 
Java EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithJava EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolith
 
Azure basics
Azure basicsAzure basics
Azure basics
 

More from Gibraltar Software

Introducing Agile to the Enterprise
Introducing Agile to the EnterpriseIntroducing Agile to the Enterprise
Introducing Agile to the EnterpriseGibraltar Software
 
The raspberry pi – building an internet radio
The raspberry pi – building an internet radioThe raspberry pi – building an internet radio
The raspberry pi – building an internet radioGibraltar Software
 
Connecting to the raspberry pi from your laptop
Connecting to the raspberry pi from your laptopConnecting to the raspberry pi from your laptop
Connecting to the raspberry pi from your laptopGibraltar Software
 
Setting uptheraspberrypiusingberryboot
Setting uptheraspberrypiusingberrybootSetting uptheraspberrypiusingberryboot
Setting uptheraspberrypiusingberrybootGibraltar Software
 
Software Company Survival Guide
Software Company Survival GuideSoftware Company Survival Guide
Software Company Survival GuideGibraltar Software
 

More from Gibraltar Software (6)

Introducing Agile to the Enterprise
Introducing Agile to the EnterpriseIntroducing Agile to the Enterprise
Introducing Agile to the Enterprise
 
The raspberry pi – building an internet radio
The raspberry pi – building an internet radioThe raspberry pi – building an internet radio
The raspberry pi – building an internet radio
 
Connecting to the raspberry pi from your laptop
Connecting to the raspberry pi from your laptopConnecting to the raspberry pi from your laptop
Connecting to the raspberry pi from your laptop
 
Setting uptheraspberrypiusingberryboot
Setting uptheraspberrypiusingberrybootSetting uptheraspberrypiusingberryboot
Setting uptheraspberrypiusingberryboot
 
Software Company Survival Guide
Software Company Survival GuideSoftware Company Survival Guide
Software Company Survival Guide
 
A Year in the Life of an ISV
A Year in the Life of an ISVA Year in the Life of an ISV
A Year in the Life of an ISV
 

Recently uploaded

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
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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 2024The Digital Insurer
 
[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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
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
 
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 WorkerThousandEyes
 
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
 
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
 

Recently uploaded (20)

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
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
[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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
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
 
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
 
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...
 
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
 

Scaling Systems: Architectures that Grow

  • 1. Scaling Systems: Architectures that Grow Fundamental Patterns for scaling you can implement incrementally
  • 2. Who Am I? • Kendall Miller • One of the Founders of Gibraltar Software – Small Independent Software Vendor Founded in 2008 – Developers of VistaDB and Gibraltar – Engineers, not Sales People • Enterprise Systems Architect & Developer since 1995 • BSE in Computer Engineering, University of Illinois Urbana-Champaign (UIUC) • Twitter: @KendallMiller
  • 4. What is Scale? Scaling is the ability to cope and perform under an increasing workload.
  • 5. What is Scale? Scaling to a load = available sustaining that load
  • 6. What is Scale? Being available is really about a request being completed in a period of time.
  • 7. What’s your Target? 0.00E+00 1.00E+07 2.00E+07 3.00E+07 4.00E+07 5.00E+07 6.00E+07 7.00E+07 Microsoft.com Twitter.com Amazon.com Target.com Slashdot.org DevExpress.com Hanselman.com Gibraltar Software Average daily traffic in Visitors / Day
  • 8. What’s your Target? 1.00E+00 1.00E+01 1.00E+02 1.00E+03 1.00E+04 1.00E+05 1.00E+06 1.00E+07 1.00E+08 Microsoft.com Twitter.com Amazon.com Target.com Slashdot.org DevExpress.com Hanselman.com Gibraltar Software Average daily traffic in Visitors / Day
  • 9. What’s your Target? 25,000 Visitors/Day = 125,000 Pages/Day 11 High Traffic Hours/Day = 12,000 Pages/Hour 12,000 Pages/Hour = 3.3 Pages/Second
  • 10. Specific Architectures • Gossip • Load Balancers + Shared • Map Reduce Nothing Units • Tree of Responsibility • Load Balancers + • Stream Processing Stateless Nodes + Scalable Storage • Scalable Storage • Content Addressable • Publish/Subscribe Networks • Distributed Queues • General Peer to Peer
  • 11. ACD/C • Async – Do the work whenever • Caching – Don’t do any work you don’t have to • Distribution – Get as many people to do the work as you can • Consistency – We all agree on these key things
  • 12. Async • Decouple operations so you do the minimum amount of work in performance critical paths • Queue work that can be completed later to smooth out load • Speculative Execution • Scheduled Requests (Nightly processes)
  • 13. Caching • Save results of earlier work nearby where they are handy to use again later • Apply in front of anything that’s time consuming • Easiest to apply from the left to the right • Simple strategies can be really effective (EF Dump all on update)
  • 14. Why Caching? • Loading the world is impractical • Apps ask a lot of repeating questions. – Stateless applications even more so • Answers don’t change often • Authoritative information is expensive
  • 15. Distribution • Distribute requests across multiple systems • Classic web “Scale Out” approach • The less state held, the easier to distribute work. – Distributed database = hard – Distributed static content server = easy • Request routing for distribution can serve other availability purposes
  • 16. Consistency • The degree to which all parties observe the same state of the system at the same time • Scaling inevitably requires compromise – Forces one source of the truth for absolute consistency and requires extensive locking to ensure parties agree – The real world doesn’t require the consistency we tend to demand of our systems
  • 17. Consistency Challenges • Singleton Data Structures (Order numbers..) • State held between the endpoints of a process • Consistent results of queries across partitioned datasets
  • 18. Typical Application Session State Transaction Isolation SSL Session Reader/Writer Locks Log Contention Singleton Data Structures Memory Allocation/GC Network Sockets Request Queue Client Server (Web (Web Storage Browser) Server) (Database)
  • 19. Caching 100% 50% 10% 1% Client Server (Web (Web Storage Browser) Server) (Database)
  • 20. Distribution Session State and Identity need to be factored out Partition (Sticky Session) First, then stateless nodes Client Server (Web (Web Client Browser) Server) (Web Client Storage Browser) (Web (Database) Client Server Browser) (Web (Web Browser) Server)
  • 21. Partitioned Storage Zones Server Client (Web Server (Web Server) (Web Storage Client (Database) Browser) Server) (Web Client Browser) (Web Client Server Browser) (Web (Web Browser) Server Server) Storage (Web Server) (Database)
  • 22. Partitioned Storage Intra-Zone Client Server Orders (Web Customer B (Web Server Client Browser) Server) (Web (Web Server Client Server) Browser) (Web (Web Server Client Server) Browser) (Web Products (Web Server) Browser) Inventory
  • 23. Asynchronous Processing Server Orders (Web Order Server Server) Queue (Web Server Server) (Web Server Server) (Web Products Server) Order Processing Server Inventory
  • 24. Fallacies of Distributed Computing • The network is reliable • Latency is zero • Bandwidth is infinite • The network is secure • Topology doesn’t change • There is one administrator • Transport cost is zero • The network is homogeneous
  • 25. Fresh Problems: Partial Failures Client Server (Web (Web Client Browser) Server) (Web Client Storage Browser) (Web (Database) Client Server Browser) (Web (Web Browser) Server)
  • 26. Fresh Problems: Partial Failures 1. Break system into individual failure zones 2. Monitor each instance of each zone for problems 3. Route around bad instances
  • 28. Fresh Problems: Upgrades Server Client (Web Server (Web Server) (Web Storage Client (Database) Browser) Server) (Web Client Browser) (Web Client Server Browser) (Web (Web Browser) Server Server) Storage (Web Server) (Database)
  • 29. Fresh Problems: Upgrades 1. Break system into individual upgrade zones 2. Upgrade each zone – Drain & Stop, Upgrade, Verify. 3. Cut traffic over to updated zones
  • 30. Design for Software Update From the Start • Don’t forget Data Schemas
  • 31. Bringing Home the Bacon Testing Testing Testing
  • 32. Critical Lessons Learned • ACD/C • Clear Consistency Strategy • Build in monitoring and management
  • 33. Additional Information: Websites – www.GibraltarSoftware.com – www.eSymmetrix.com Follow Up – Kendall.Miller@eSymmetrix.com – Twitter: kendallmiller

Editor's Notes

  1. What level of scaling are we talking about?Scaling is the ability to cope and perform under an increasing workload.
  2. This is VISITORS per DAYMicrosoft.com: 60M Twitter.com: 35MAmazon.com: 15MTarget.com: 2MDevExpress.com & Telerik.com: 25KHanselman.com: 12KGibraltar Software: 1K
  3. This is VISITORS per DAYMicrosoft.com: 60M Twitter.com: 35MAmazon.com: 15MTarget.com: 2MDevExpress.com & Telerik.com: 25KHanselman.com: 12KGibraltar Software: 1K
  4. THIS IS NOT ABOUT ASYNC FOR FASTER PERCEIVED PERFORMANCE
  5. Improve response under loadDo only the work you have to Up to 95% of the work on the typical site can be pulled from cache
  6. Add reverse proxy (Load Balancer)Add additional middle tier serversSession state and identity need to be factored outPartition (“Sticky session”) first, then true load balancing with no state in center
  7. Break down traffic by easy to determine characteristic: Customer, product category, etc.Add storage regions that are self-consistentCan vary exact mix of what data is in each container and how you partitionTypically some parts may be shared like IdentityCross-zone aggregation is slowCross-zone coherency strategy
  8. Middle tier routes storage requests based on easy to determine characteristicConsistency strategy complexity (reports may reflect delayed data, different parties may not see the same view of the world)
  9. Separate long running, dangerous, or serialized tasks from general workWorkflow consistency strategy requiredComplications with deployment and versioningDeferred failure scenarios.
  10. Add reverse proxy (Load Balancer)Add additional middle tier serversSession state and identity need to be factored outPartition (“Sticky session”) first, then true load balancing with no state in center
  11. Break down traffic by easy to determine characteristic: Customer, product category, etc.Add storage regions that are self-consistentCan vary exact mix of what data is in each container and how you partitionTypically some parts may be shared like IdentityCross-zone aggregation is slowCross-zone coherency strategy