SlideShare una empresa de Scribd logo
1 de 106
Performance Testing & Instrumenting
       the KGB SMS Service
        for the Super Bowl

              J. Nathan Matias




     Cambridge Geek Night, 3 August 2010
    Cambridge Union Society, Cambridge UK
Acquisition
Launching in
Acquisition
              New Markets
Launching in   Super Bowl
Acquisition
              New Markets      TV Ad
Emberlight
KGB SMS Answers
To: 118118
Text:
Wot is the
wether 4cast
4 london
tonite
To: 118118     118118:
Text:          Weather
Wot is the     forecast for
wether 4cast   London …
4 london
tonite
MX       Rails
      Telecom   Server



Customers
MX       Rails        Rails         Rails
      Telecom   Server       Server        Server



Customers        Databases
                                      Specialized
                                       Servers
Agents

                Firefox     Firefox     Firefox       Firefox     Firefox

                                       Javascript




                             http: Aethernet, EngineYard


        MX                 Rails        Rails             Rails
      Telecom             Server       Server            Server



Customers                  Databases
                                                    Specialized
                                                     Servers
Agents

                Firefox     Firefox     Firefox       Firefox     Firefox

                                       Javascript




                             http: Aethernet, EngineYard


        MX                 Rails        Rails             Rails
      Telecom             Server       Server            Server



Customers                  Databases
                                                    Specialized
                                                     Servers
Agents

                Firefox     Firefox     Firefox       Firefox     Firefox

                                       Javascript




                             http: Aethernet, EngineYard

                                                                              Firefox
        MX                 Rails        Rails             Rails
      Telecom             Server       Server            Server
                                                                              Firefox



Customers                  Databases
                                                    Specialized
                                                                             Business
                                                     Servers                Reporting
Agents

                Firefox    Firefox     Firefox       Firefox     Firefox

                                      Javascript




                             http: Aethernet, EngineYard

                                                                             Firefox
        MX                 Rails   Rails   Rails
      Telecom              7 web applications
                          Server  Server  Server
                                                                             Firefox



Customers                 Databases
                                                   Specialized
                                                                            Business
                                                    Servers                Reporting
Agents

                Firefox    Firefox     Firefox       Firefox     Firefox

                                      Javascript



                            over a thousand
                           controller actions

                             http: Aethernet, EngineYard

                                                                             Firefox
        MX                 Rails   Rails   Rails
      Telecom              7 web applications
                          Server  Server  Server
                                                                             Firefox



Customers                 Databases
                                                   Specialized
                                                                            Business
                                                    Servers                Reporting
Agents

                Firefox    Firefox     Firefox     Firefox   Firefox

                                      Javascript



                            over a thousand
                           controller actions

                             http: Aethernet, EngineYard

                                                                         Firefox
        MX                 Rails   Rails   Rails
      Telecom              7 web applications
                          Server  Server  Server
                                                                         Firefox



Customers                  over a thousand
                          Databases
                                      Specialized
                                                                        Business
                                 models Servers                        Reporting
Agents

                  Firefox    Firefox     Firefox     Firefox   Firefox

                                        Javascript



                              over a thousand
                             controller actions

                               http: Aethernet, EngineYard

                                                                           Firefox
          MX                 Rails   Rails   Rails
        Telecom              7 web applications
                            Server  Server  Server
SMS network                                                                Firefox
 Scalability
Customers                    over a thousand
                            Databases
                                        Specialized
                                                                          Business
                                   models Servers                        Reporting
Agents
                            Internet + Browser
                  Firefox           Scalability
                              Firefox  Firefox Firefox       Firefox

                                        Javascript



                              over a thousand
                             controller actions

                               http: Aethernet, EngineYard

                                                                         Firefox
          MX                 Rails   Rails   Rails
        Telecom              7 web applications
                            Server  Server  Server
SMS network                                                              Firefox
 Scalability
Customers                    over a thousand
                            Databases
                                        Specialized
                                                                        Business
                                   models Servers                      Reporting
Agents
                            Internet + Browser
                  Firefox           Scalability
                              Firefox  Firefox Firefox       Firefox

                                        Javascript



                              over a thousand
                             controller actions

                               http: Aethernet, EngineYard

                                                                          Firefox
          MX                 Rails   Rails   Rails                     Complex
        Telecom              7 web applications
                            Server  Server  Server
SMS network                                                            Business
                                                                          Firefox
 Scalability                                                           Reports
Customers                    over a thousand
                            Databases
                                        Specialized
                                                                        Business
                                   models Servers                      Reporting
Testing Software
Performance Testing Services
GUI Based                   Programmable




        screenshot via
www.lynchconsulting.com.au/blog/
GUI Based                   Programmable




                      es
      Conte nt Websit




        screenshot via
www.lynchconsulting.com.au/blog/
GUI Based                   Programmable




                      es                              s
      Conte nt Websit              Web A pplication




        screenshot via
www.lynchconsulting.com.au/blog/
GUI Based



  Web      HTTP
                    serve web
Browser   Request
                     content
   A      arrives



  Web      HTTP
                    serve web                     bs  ites
Browser   Request                        ntent We
          arrives
                     content          Co
   B




                                        screenshot via
                                www.lynchconsulting.com.au/blog/
Customer   question
   A        arrives
agent
Customer   question
                       takes
   A        arrives
                      question
agent       agent
Customer   question
                       takes      checks
   A        arrives
                      question   sources
agent       agent    agent
Customer   question
                       takes      checks   answers
   A        arrives
                      question   sources   question
agent       agent    agent
Customer   question
                       takes      checks   answers
   A        arrives
                      question   sources   question


Customer   followup
   A       question
agent       agent    agent
Customer   question
                       takes      checks   answers
   A        arrives
                      question   sources   question


                       agent 2
Customer   followup
                        takes
   A       question
                      question
agent       agent    agent
Customer   question
                       takes      checks   answers
   A        arrives
                      question   sources   question


                       agent 2   agent 2
Customer   followup
                        takes    checks
   A       question
                      question   history
agent       agent    agent
Customer   question
                       takes      checks   answers
   A        arrives
                      question   sources   question


                       agent 2   agent 2    agent 2
Customer   followup
                        takes    checks     attaches
   A       question
                      question   history   conversation
agent       agent    agent
Customer   question
                        takes      checks   answers
   A        arrives
                       question   sources   question


                        agent 2   agent 2    agent 2
Customer   followup
                         takes    checks     attaches
   A       question
                       question   history   conversation




            second
Customer
             half of
   A
           question
agent       agent    agent
Customer   question
                        takes      checks   answers
   A        arrives
                       question   sources   question


                        agent 2   agent 2    agent 2
Customer   followup
                         takes    checks     attaches
   A       question
                       question   history   conversation




            second      agent 3
Customer
             half of     takes
   A
           question    question
agent       agent    agent
Customer   question
                        takes      checks   answers
   A        arrives
                       question   sources   question


                        agent 2   agent 2    agent 2
Customer   followup
                         takes    checks     attaches
   A       question
                       question   history   conversation


                                             agent 4
                                              takes
                                            conversation




            second      agent 3
Customer
             half of     takes
   A
           question    question
agent       agent     agent
Customer   question
                        takes      checks    answers
   A        arrives
                       question   sources    question


                        agent 2   agent 2     agent 2
Customer   followup
                         takes    checks      attaches
   A       question
                       question   history    conversation


                                              agent 4
                                               takes
                                             conversation




            second      agent 3    agent 3
Customer
             half of     takes    attaches
   A
           question    question   question
agent       agent     agent
Customer   question
                        takes      checks    answers
   A        arrives
                       question   sources    question


                        agent 2   agent 2     agent 2
Customer   followup
                         takes    checks      attaches
   A       question
                       question   history    conversation


                                              agent 4       agent 4
                                               takes        receives
                                             conversation   2nd half



            second      agent 3    agent 3
Customer
             half of     takes    attaches
   A
           question    question   question
agent       agent     agent
Customer   question
                        takes      checks    answers
   A        arrives
                       question   sources    question


                        agent 2   agent 2     agent 2
Customer   followup
                         takes    checks      attaches
   A       question
                       question   history    conversation


                                              agent 4        agent 4
                                               takes         receives
                                             conversation    2nd half

                                                             agent 4
            second      agent 3    agent 3                   answers
Customer                                                    conversation
             half of     takes    attaches
   A
           question    question   question
Collaborative systems require
programmable performance testing




                          ns
         Web Applicatio
Amazon
                  EC2
Grinder   Grinder    Grinder   Grinder




          Replica Cluster
Amazon
                EC2
Agents   Agents     Agents   SMS!




         Replica Cluster
coordinated simulation
              Amazon
                EC2
Agents   Agents     Agents   SMS!




         Replica Cluster
coordinated simulation
                                       e
                             Unreliabl
              Amazon          reports!
                EC2
Agents   Agents     Agents     SMS!




         Replica Cluster
coordinated simulation
                                       e
                             Unreliabl
              Amazon          reports!
                EC2
Agents   Agents     Agents     SMS!




         Replica Cluster

                 Real Pe
                         rforma
                     Metrics nce
coordinated simulation
                                            e
                                  Unreliabl
                   Amazon          reports!
                     EC2
Agents        Agents     Agents     SMS!




              Replica Cluster

                      Real Pe
                              rforma
   Business               Metrics nce
   Reports!
Launching in
Acquisition
              New Markets
Engine Yard
kgb Clusters


                    multiple
                  virtual slices
                     multiple
               application servers
   Database          per slice
Engine Yard
kgb Clusters


  Load Balancer
                       multiple
                     virtual slices
      App               multiple
                  application servers
    Database            per slice
Engine Yard
           kgb Clusters

             Load Balancer
                                           physical
                                        cluster node
 App            App           App


Database      Database       Database
Engine Yard
                       kgb Clusters

                         Load Balancer
Caching                                                physical
                                                    cluster node
  URL        App            App           App
Rewriting
 (XSS)

            Database      Database       Database
Load Balancer




App   App              App             App    App        App


            Database                         Database   Database
View
           Queue
                    Business
                    Reports


 receive                         take      send
question                       question   answer


              unexpected behaviour
!
                               Pa inful


           View
           Queue
                    Business
                    Reports!


 receive                         take        send
question                       question     answer


              unexpected behaviour
Launching in   Super Bowl
Acquisition
              New Markets      TV Ad
Should we run the ad?
Should we run the ad?

 How should we try
 to survive the ad?
Should we run the ad?

 How should we try
 to survive the ad?

     Optimize!
Instrumentation
Rails:
Rails:


Database:
The kgb Wizards
         Super Bowl Team


Paul Butcher          Matt Nodder
Craig Emery           Frederick Cheung
Matthew Rudy Jacobs   Henry Addison
Gary Swanson          Ben Symons
Robert Heaney         Tim Parish
                      J. Nathan Matias
Partners
in Optimization
Lessons



              Launching in   Super Bowl
Acquisition
              New Markets      TV Ad
NewRelic Up Front
Performance Testing
   in Agile Teams
when to shield the tester
when to expose the tester
Plugs
paul@touchtype-online.com
Emberlight
matt.nodder@kgb.com
Stuff to read
• my RailsInside Article
• Performance Testing for Web Applications (MSDN)
 (Meier, Farre et al)(http://perftestingguide.codeplex.com/)
• Improving .NET Application Performance &
 Scalability (Meier, Vasireddy, et al)
• Statistical Principles for the Performance Tester (Scott Barber)
• Lessons from Giant Scale Services (Eric Brewer)
• MySQL Performance Blog (Percona)
• NewRelic Blog (New Relic)
• Using the MySQL Query Profiler (mysql)

Más contenido relacionado

Similar a Performance Testing and Instrumenting the KGB SMS Service for the Super Bowl

Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworksukdpe
 
Building a multi-tenanted Cloud-native AppServer
Building a multi-tenanted Cloud-native AppServerBuilding a multi-tenanted Cloud-native AppServer
Building a multi-tenanted Cloud-native AppServerAfkham Azeez
 
Lcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaLcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaJUG Genova
 
Mobile TV Solution (powered by XManager)
Mobile TV Solution (powered by XManager)Mobile TV Solution (powered by XManager)
Mobile TV Solution (powered by XManager)Interact
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End TestingErika Barron
 
Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009
Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009
Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009Manuela Moroncini
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformDavid Chou
 
SharePoint 2010 Service Apps
SharePoint 2010  Service AppsSharePoint 2010  Service Apps
SharePoint 2010 Service AppsJason Gallicchio
 
VMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric
 
Windows Azure platform overview
Windows Azure platform overviewWindows Azure platform overview
Windows Azure platform overviewFrédéric Harper
 
Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram Chinta
 
Shreeraj-Hacking_Web_2
Shreeraj-Hacking_Web_2Shreeraj-Hacking_Web_2
Shreeraj-Hacking_Web_2guest66dc5f
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise ArchitecturesBIOVIA
 
Web Sphere Revolution
Web Sphere RevolutionWeb Sphere Revolution
Web Sphere Revolutionict.recruiter
 
Windows Azure and the Hybrid Cloud
Windows Azure and the Hybrid CloudWindows Azure and the Hybrid Cloud
Windows Azure and the Hybrid CloudWindows Azure
 
Building reliable systems from unreliable components
Building reliable systems from unreliable componentsBuilding reliable systems from unreliable components
Building reliable systems from unreliable componentsArnon Rotem-Gal-Oz
 
Jeremy Vickers Liquidity Hub
Jeremy Vickers Liquidity HubJeremy Vickers Liquidity Hub
Jeremy Vickers Liquidity Hubdeimos
 

Similar a Performance Testing and Instrumenting the KGB SMS Service for the Super Bowl (20)

Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
 
Building a multi-tenanted Cloud-native AppServer
Building a multi-tenanted Cloud-native AppServerBuilding a multi-tenanted Cloud-native AppServer
Building a multi-tenanted Cloud-native AppServer
 
Lcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaLcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu Creanga
 
Mobile TV Solution (powered by XManager)
Mobile TV Solution (powered by XManager)Mobile TV Solution (powered by XManager)
Mobile TV Solution (powered by XManager)
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End Testing
 
Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009
Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009
Best practice, Paolo Cambarau - IBM, Cloud Computing, Milano 2 luglio 2009
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services Platform
 
SharePoint 2010 Service Apps
SharePoint 2010  Service AppsSharePoint 2010  Service Apps
SharePoint 2010 Service Apps
 
VMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al Sargent
 
PHP in the Cloud
PHP in the CloudPHP in the Cloud
PHP in the Cloud
 
Windows Azure platform overview
Windows Azure platform overviewWindows Azure platform overview
Windows Azure platform overview
 
Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1
 
Shreeraj-Hacking_Web_2
Shreeraj-Hacking_Web_2Shreeraj-Hacking_Web_2
Shreeraj-Hacking_Web_2
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
 
Web Sphere Revolution
Web Sphere RevolutionWeb Sphere Revolution
Web Sphere Revolution
 
Windows Azure and the Hybrid Cloud
Windows Azure and the Hybrid CloudWindows Azure and the Hybrid Cloud
Windows Azure and the Hybrid Cloud
 
Ria Enterprise
Ria EnterpriseRia Enterprise
Ria Enterprise
 
Service Oriented Applications
Service Oriented ApplicationsService Oriented Applications
Service Oriented Applications
 
Building reliable systems from unreliable components
Building reliable systems from unreliable componentsBuilding reliable systems from unreliable components
Building reliable systems from unreliable components
 
Jeremy Vickers Liquidity Hub
Jeremy Vickers Liquidity HubJeremy Vickers Liquidity Hub
Jeremy Vickers Liquidity Hub
 

Más de natematias

Artificial Intelligence in Christian Thought and Practice
Artificial Intelligence in Christian Thought and PracticeArtificial Intelligence in Christian Thought and Practice
Artificial Intelligence in Christian Thought and Practicenatematias
 
Authoritarian and Democratic Data Science in an Experimenting Society
Authoritarian and Democratic Data Science in an Experimenting SocietyAuthoritarian and Democratic Data Science in an Experimenting Society
Authoritarian and Democratic Data Science in an Experimenting Societynatematias
 
Online Harassment Workshop Opening Talk
Online Harassment Workshop Opening TalkOnline Harassment Workshop Opening Talk
Online Harassment Workshop Opening Talknatematias
 
Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015
Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015
Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015natematias
 
Promising and Problematic Projects with Gender Data
Promising and Problematic Projects with Gender DataPromising and Problematic Projects with Gender Data
Promising and Problematic Projects with Gender Datanatematias
 
Crowdsourcing Gender Diversity
Crowdsourcing Gender DiversityCrowdsourcing Gender Diversity
Crowdsourcing Gender Diversitynatematias
 
Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...
Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...
Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...natematias
 
Networked Tactics for Gender Representation In The News
Networked Tactics for Gender Representation In The NewsNetworked Tactics for Gender Representation In The News
Networked Tactics for Gender Representation In The Newsnatematias
 
PhoneGap, Backbone & Javascript
PhoneGap, Backbone & JavascriptPhoneGap, Backbone & Javascript
PhoneGap, Backbone & Javascriptnatematias
 
Edit Prose like a Pro, by Stephanie Gayle
Edit Prose like a Pro, by Stephanie GayleEdit Prose like a Pro, by Stephanie Gayle
Edit Prose like a Pro, by Stephanie Gaylenatematias
 
Research Methods 101, by Elliott Hedman
Research Methods 101, by Elliott HedmanResearch Methods 101, by Elliott Hedman
Research Methods 101, by Elliott Hedmannatematias
 
Ah.hypermedia gaf.poster
Ah.hypermedia gaf.posterAh.hypermedia gaf.poster
Ah.hypermedia gaf.posternatematias
 
Emily troscianko presentation
Emily troscianko presentationEmily troscianko presentation
Emily troscianko presentationnatematias
 
Moral Choice in Interactive Fiction
Moral Choice in Interactive FictionMoral Choice in Interactive Fiction
Moral Choice in Interactive Fictionnatematias
 
Paul de Bra's UnKeynote at Web Art Science London
Paul de Bra's UnKeynote at Web Art Science LondonPaul de Bra's UnKeynote at Web Art Science London
Paul de Bra's UnKeynote at Web Art Science Londonnatematias
 
Operational Media: Functional Design Trends Online
Operational Media: Functional Design Trends OnlineOperational Media: Functional Design Trends Online
Operational Media: Functional Design Trends Onlinenatematias
 
Timelines for Case-Work Collaboration with Citizens
Timelines for Case-Work Collaboration with CitizensTimelines for Case-Work Collaboration with Citizens
Timelines for Case-Work Collaboration with Citizensnatematias
 
Comparing Spatial Hypertext Collections
Comparing Spatial Hypertext CollectionsComparing Spatial Hypertext Collections
Comparing Spatial Hypertext Collectionsnatematias
 

Más de natematias (19)

Artificial Intelligence in Christian Thought and Practice
Artificial Intelligence in Christian Thought and PracticeArtificial Intelligence in Christian Thought and Practice
Artificial Intelligence in Christian Thought and Practice
 
Authoritarian and Democratic Data Science in an Experimenting Society
Authoritarian and Democratic Data Science in an Experimenting SocietyAuthoritarian and Democratic Data Science in an Experimenting Society
Authoritarian and Democratic Data Science in an Experimenting Society
 
Online Harassment Workshop Opening Talk
Online Harassment Workshop Opening TalkOnline Harassment Workshop Opening Talk
Online Harassment Workshop Opening Talk
 
Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015
Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015
Gratitude: Sermon at Sunday Assembly Boston, October 18, 2015
 
Promising and Problematic Projects with Gender Data
Promising and Problematic Projects with Gender DataPromising and Problematic Projects with Gender Data
Promising and Problematic Projects with Gender Data
 
Crowdsourcing Gender Diversity
Crowdsourcing Gender DiversityCrowdsourcing Gender Diversity
Crowdsourcing Gender Diversity
 
Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...
Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...
Oliver Hauser on the Behavioural Insights Team, a talk at the Berkman Center ...
 
Networked Tactics for Gender Representation In The News
Networked Tactics for Gender Representation In The NewsNetworked Tactics for Gender Representation In The News
Networked Tactics for Gender Representation In The News
 
PhoneGap, Backbone & Javascript
PhoneGap, Backbone & JavascriptPhoneGap, Backbone & Javascript
PhoneGap, Backbone & Javascript
 
Data forager
Data foragerData forager
Data forager
 
Edit Prose like a Pro, by Stephanie Gayle
Edit Prose like a Pro, by Stephanie GayleEdit Prose like a Pro, by Stephanie Gayle
Edit Prose like a Pro, by Stephanie Gayle
 
Research Methods 101, by Elliott Hedman
Research Methods 101, by Elliott HedmanResearch Methods 101, by Elliott Hedman
Research Methods 101, by Elliott Hedman
 
Ah.hypermedia gaf.poster
Ah.hypermedia gaf.posterAh.hypermedia gaf.poster
Ah.hypermedia gaf.poster
 
Emily troscianko presentation
Emily troscianko presentationEmily troscianko presentation
Emily troscianko presentation
 
Moral Choice in Interactive Fiction
Moral Choice in Interactive FictionMoral Choice in Interactive Fiction
Moral Choice in Interactive Fiction
 
Paul de Bra's UnKeynote at Web Art Science London
Paul de Bra's UnKeynote at Web Art Science LondonPaul de Bra's UnKeynote at Web Art Science London
Paul de Bra's UnKeynote at Web Art Science London
 
Operational Media: Functional Design Trends Online
Operational Media: Functional Design Trends OnlineOperational Media: Functional Design Trends Online
Operational Media: Functional Design Trends Online
 
Timelines for Case-Work Collaboration with Citizens
Timelines for Case-Work Collaboration with CitizensTimelines for Case-Work Collaboration with Citizens
Timelines for Case-Work Collaboration with Citizens
 
Comparing Spatial Hypertext Collections
Comparing Spatial Hypertext CollectionsComparing Spatial Hypertext Collections
Comparing Spatial Hypertext Collections
 

Performance Testing and Instrumenting the KGB SMS Service for the Super Bowl

  • 1.
  • 2. Performance Testing & Instrumenting the KGB SMS Service for the Super Bowl J. Nathan Matias Cambridge Geek Night, 3 August 2010 Cambridge Union Society, Cambridge UK
  • 3.
  • 4.
  • 5.
  • 8. Launching in Super Bowl Acquisition New Markets TV Ad
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 16.
  • 17.
  • 19. To: 118118 Text: Wot is the wether 4cast 4 london tonite
  • 20. To: 118118 118118: Text: Weather Wot is the forecast for wether 4cast London … 4 london tonite
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. MX Rails Telecom Server Customers
  • 27. MX Rails Rails Rails Telecom Server Server Server Customers Databases Specialized Servers
  • 28. Agents Firefox Firefox Firefox Firefox Firefox Javascript http: Aethernet, EngineYard MX Rails Rails Rails Telecom Server Server Server Customers Databases Specialized Servers
  • 29. Agents Firefox Firefox Firefox Firefox Firefox Javascript http: Aethernet, EngineYard MX Rails Rails Rails Telecom Server Server Server Customers Databases Specialized Servers
  • 30. Agents Firefox Firefox Firefox Firefox Firefox Javascript http: Aethernet, EngineYard Firefox MX Rails Rails Rails Telecom Server Server Server Firefox Customers Databases Specialized Business Servers Reporting
  • 31. Agents Firefox Firefox Firefox Firefox Firefox Javascript http: Aethernet, EngineYard Firefox MX Rails Rails Rails Telecom 7 web applications Server Server Server Firefox Customers Databases Specialized Business Servers Reporting
  • 32. Agents Firefox Firefox Firefox Firefox Firefox Javascript over a thousand controller actions http: Aethernet, EngineYard Firefox MX Rails Rails Rails Telecom 7 web applications Server Server Server Firefox Customers Databases Specialized Business Servers Reporting
  • 33. Agents Firefox Firefox Firefox Firefox Firefox Javascript over a thousand controller actions http: Aethernet, EngineYard Firefox MX Rails Rails Rails Telecom 7 web applications Server Server Server Firefox Customers over a thousand Databases Specialized Business models Servers Reporting
  • 34. Agents Firefox Firefox Firefox Firefox Firefox Javascript over a thousand controller actions http: Aethernet, EngineYard Firefox MX Rails Rails Rails Telecom 7 web applications Server Server Server SMS network Firefox Scalability Customers over a thousand Databases Specialized Business models Servers Reporting
  • 35. Agents Internet + Browser Firefox Scalability Firefox Firefox Firefox Firefox Javascript over a thousand controller actions http: Aethernet, EngineYard Firefox MX Rails Rails Rails Telecom 7 web applications Server Server Server SMS network Firefox Scalability Customers over a thousand Databases Specialized Business models Servers Reporting
  • 36. Agents Internet + Browser Firefox Scalability Firefox Firefox Firefox Firefox Javascript over a thousand controller actions http: Aethernet, EngineYard Firefox MX Rails Rails Rails Complex Telecom 7 web applications Server Server Server SMS network Business Firefox Scalability Reports Customers over a thousand Databases Specialized Business models Servers Reporting
  • 37.
  • 38.
  • 39.
  • 42. GUI Based Programmable screenshot via www.lynchconsulting.com.au/blog/
  • 43. GUI Based Programmable es Conte nt Websit screenshot via www.lynchconsulting.com.au/blog/
  • 44. GUI Based Programmable es s Conte nt Websit Web A pplication screenshot via www.lynchconsulting.com.au/blog/
  • 45. GUI Based Web HTTP serve web Browser Request content A arrives Web HTTP serve web bs ites Browser Request ntent We arrives content Co B screenshot via www.lynchconsulting.com.au/blog/
  • 46. Customer question A arrives
  • 47. agent Customer question takes A arrives question
  • 48. agent agent Customer question takes checks A arrives question sources
  • 49. agent agent agent Customer question takes checks answers A arrives question sources question
  • 50. agent agent agent Customer question takes checks answers A arrives question sources question Customer followup A question
  • 51. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 Customer followup takes A question question
  • 52. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 Customer followup takes checks A question question history
  • 53. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 agent 2 Customer followup takes checks attaches A question question history conversation
  • 54. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 agent 2 Customer followup takes checks attaches A question question history conversation second Customer half of A question
  • 55. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 agent 2 Customer followup takes checks attaches A question question history conversation second agent 3 Customer half of takes A question question
  • 56. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 agent 2 Customer followup takes checks attaches A question question history conversation agent 4 takes conversation second agent 3 Customer half of takes A question question
  • 57. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 agent 2 Customer followup takes checks attaches A question question history conversation agent 4 takes conversation second agent 3 agent 3 Customer half of takes attaches A question question question
  • 58. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 agent 2 Customer followup takes checks attaches A question question history conversation agent 4 agent 4 takes receives conversation 2nd half second agent 3 agent 3 Customer half of takes attaches A question question question
  • 59. agent agent agent Customer question takes checks answers A arrives question sources question agent 2 agent 2 agent 2 Customer followup takes checks attaches A question question history conversation agent 4 agent 4 takes receives conversation 2nd half agent 4 second agent 3 agent 3 answers Customer conversation half of takes attaches A question question question
  • 60. Collaborative systems require programmable performance testing ns Web Applicatio
  • 61. Amazon EC2 Grinder Grinder Grinder Grinder Replica Cluster
  • 62. Amazon EC2 Agents Agents Agents SMS! Replica Cluster
  • 63. coordinated simulation Amazon EC2 Agents Agents Agents SMS! Replica Cluster
  • 64. coordinated simulation e Unreliabl Amazon reports! EC2 Agents Agents Agents SMS! Replica Cluster
  • 65. coordinated simulation e Unreliabl Amazon reports! EC2 Agents Agents Agents SMS! Replica Cluster Real Pe rforma Metrics nce
  • 66. coordinated simulation e Unreliabl Amazon reports! EC2 Agents Agents Agents SMS! Replica Cluster Real Pe rforma Business Metrics nce Reports!
  • 68. Engine Yard kgb Clusters multiple virtual slices multiple application servers Database per slice
  • 69. Engine Yard kgb Clusters Load Balancer multiple virtual slices App multiple application servers Database per slice
  • 70. Engine Yard kgb Clusters Load Balancer physical cluster node App App App Database Database Database
  • 71. Engine Yard kgb Clusters Load Balancer Caching physical cluster node URL App App App Rewriting (XSS) Database Database Database
  • 72. Load Balancer App App App App App App Database Database Database
  • 73. View Queue Business Reports receive take send question question answer unexpected behaviour
  • 74. ! Pa inful View Queue Business Reports! receive take send question question answer unexpected behaviour
  • 75. Launching in Super Bowl Acquisition New Markets TV Ad
  • 76.
  • 77.
  • 78.
  • 79.
  • 80. Should we run the ad?
  • 81. Should we run the ad? How should we try to survive the ad?
  • 82. Should we run the ad? How should we try to survive the ad? Optimize!
  • 83.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93. The kgb Wizards Super Bowl Team Paul Butcher Matt Nodder Craig Emery Frederick Cheung Matthew Rudy Jacobs Henry Addison Gary Swanson Ben Symons Robert Heaney Tim Parish J. Nathan Matias
  • 95. Lessons Launching in Super Bowl Acquisition New Markets TV Ad
  • 97. Performance Testing in Agile Teams
  • 98. when to shield the tester when to expose the tester
  • 99. Plugs
  • 101.
  • 103.
  • 104.
  • 106. Stuff to read • my RailsInside Article • Performance Testing for Web Applications (MSDN) (Meier, Farre et al)(http://perftestingguide.codeplex.com/) • Improving .NET Application Performance & Scalability (Meier, Vasireddy, et al) • Statistical Principles for the Performance Tester (Scott Barber) • Lessons from Giant Scale Services (Eric Brewer) • MySQL Performance Blog (Percona) • NewRelic Blog (New Relic) • Using the MySQL Query Profiler (mysql)