SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Scaling Quizlet
                        Andrew Sutherland
                             Founder



Friday, April 20, 12
Quizlet.com
                       We provide educational tools for millions of kids.




Friday, April 20, 12
Traffic
                       • 70M pageviews/mo

                       • 7.5M uniques/mo

                       • Quantcast US Rank: #385

                       • 99.97% uptime this year

Friday, April 20, 12
Traffic Pattern




                  6x growth in 4 weeks, every year
Friday, April 20, 12
Data

                 • 160 GB in MySQL

                 • 1.1B rows in `answers` table

                 • One big 48GB master does it all
                   (are we crazy?)

Friday, April 20, 12
Architecture
                       • 2 Load Balancers

                       • 3 Web Servers

                       • 2 Database machines

                       • ~15 machines doing services

Friday, April 20, 12
Throughput
           Page requests:
           - 750 rps peak
           - 300 rps avg

           Memcached:         MySQL:
           - 2,500 qps peak   - 1,100 qps peak
           - 1,000 qps avg    - 465 qps avg

Friday, April 20, 12
Biggest single win
                            (2010)
          Removing joins.

          Putting all ID-based lookups in
          memcached.

          3x’d our performance overnight,
          prevented complicated architecture
Friday, April 20, 12
Watching syscalls with
                              DTrace
               dtrace -n 'syscall::open:entry { printf("%s
                  %s",execname,copyinstr(arg0)); }'




         Found PHP opening files because of
         require_once(). Switched to require().


Friday, April 20, 12
Need better visibility
                            into apps
                                        Site got
                                        2x faster
                                        here



Friday, April 20, 12
AVERAGES
                         SUCK
Friday, April 20, 12
Enter New Relic
                         (live demo)



Friday, April 20, 12
New Relic isn’t enough.




Friday, April 20, 12
Check out our super-crappy,
                 super-awesome Inline I/O viewer




Friday, April 20, 12
And our super-crappy,
                 super-awesome App log viewer




Friday, April 20, 12
Our log viewer


                       Check out our super-crappy,
                       super-awesome Log Viewer




Friday, April 20, 12
YOUR LOGS
                    ARE
                RELATIONAL
Friday, April 20, 12
Log lookups by

                   • User ID
                   • IP address
                   • Type
                   • Frequency
                   • Type+Frequency
                   • Response times

Friday, April 20, 12
Scalable diagnosis of
                         user issues with
                            feedback
                             (demo)


Friday, April 20, 12
The Future


                       We built a game in Node.

                       It rocks.



Friday, April 20, 12
Future


                       We built a game in Node.

                       It rocks.



Friday, April 20, 12
Future


                       We built a game in Node.

                       It rocks.



Friday, April 20, 12
New Scaling Story

       Single user might have 5 messages
       with the server in 1 second.

       Connection lasts 30 minutes,
       not 100ms.


Friday, April 20, 12
Scaling node


             We’re exploring this now.
             And need help.




Friday, April 20, 12
Random Tips




Friday, April 20, 12
Show Me What’s Wrong

                         Second coolest website ever.


                       http://showmewhatswrong.com/



Friday, April 20, 12
Poor man’s SMS alerts
                       Setup GMail filter for SMS
                       1. Add filter for name+sms@hotstartup.com

                       2. Forward to 4155551234@vtext.com (VZW)

                       3. Your app can now text you anytime, for free.




Friday, April 20, 12
Ambient Traffic
                               Awareness
                       Get the New Relic Menu Bar
                       Always know about how much traffic you have.




                               (Available in Mac App Store)

Friday, April 20, 12
Use Vogue!

                       Never refresh for CSS again!

                                 Vogue
                        github.com/quizlet/vogue




Friday, April 20, 12
Thanks!
                       Follow:
                       @asuth
                       @quizlet



Friday, April 20, 12

Más contenido relacionado

Similar a Scaling Quizlet

Unite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevensonUnite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevenson
Atlassian
 
Unite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevensonUnite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevenson
Atlassian
 
London unite-zen
London unite-zenLondon unite-zen
London unite-zen
Atlassian
 
Django Don't Do This - DjangoToronto - January, 2012
Django Don't Do This - DjangoToronto - January, 2012Django Don't Do This - DjangoToronto - January, 2012
Django Don't Do This - DjangoToronto - January, 2012
Ash Christopher
 
Unite keynote all - mike's edit (don't edit!)
Unite keynote   all - mike's edit (don't edit!)Unite keynote   all - mike's edit (don't edit!)
Unite keynote all - mike's edit (don't edit!)
Atlassian
 
Alm works atlassian unite london
Alm works   atlassian unite londonAlm works   atlassian unite london
Alm works atlassian unite london
Atlassian
 
mistaeks i’ve made developing software products
mistaeks i’ve made developing software productsmistaeks i’ve made developing software products
mistaeks i’ve made developing software products
Phil Calçado
 
Eclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
Eclipse con 2012 - Frictionless operations with Puppet - Luke KaniesEclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
Eclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
Puppet
 
Eclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke KaniesEclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke Kanies
Puppet
 
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_MinskGetting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Wooga
 

Similar a Scaling Quizlet (20)

Migrando do App Engine para o Heroku
Migrando do App Engine para o HerokuMigrando do App Engine para o Heroku
Migrando do App Engine para o Heroku
 
Unite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevensonUnite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevenson
 
Unite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevensonUnite dvcs deck-uk-john stevenson
Unite dvcs deck-uk-john stevenson
 
Watson and Open Source Tools
Watson and Open Source ToolsWatson and Open Source Tools
Watson and Open Source Tools
 
London unite-zen
London unite-zenLondon unite-zen
London unite-zen
 
Socket io - JSZurich
Socket io - JSZurichSocket io - JSZurich
Socket io - JSZurich
 
Django Don't Do This - DjangoToronto - January, 2012
Django Don't Do This - DjangoToronto - January, 2012Django Don't Do This - DjangoToronto - January, 2012
Django Don't Do This - DjangoToronto - January, 2012
 
Unite keynote all - mike's edit (don't edit!)
Unite keynote   all - mike's edit (don't edit!)Unite keynote   all - mike's edit (don't edit!)
Unite keynote all - mike's edit (don't edit!)
 
Treating Infrastructure as Garbage
Treating Infrastructure as GarbageTreating Infrastructure as Garbage
Treating Infrastructure as Garbage
 
Fast Mobile UIs
Fast Mobile UIsFast Mobile UIs
Fast Mobile UIs
 
Alm works atlassian unite london
Alm works   atlassian unite londonAlm works   atlassian unite london
Alm works atlassian unite london
 
mistaeks i’ve made developing software products
mistaeks i’ve made developing software productsmistaeks i’ve made developing software products
mistaeks i’ve made developing software products
 
Front end performance improvements
Front end performance improvementsFront end performance improvements
Front end performance improvements
 
Building scalablewebapps
Building scalablewebappsBuilding scalablewebapps
Building scalablewebapps
 
Eclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
Eclipse con 2012 - Frictionless operations with Puppet - Luke KaniesEclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
Eclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
 
Scaling the Cloud - Cloud Security
Scaling the Cloud - Cloud SecurityScaling the Cloud - Cloud Security
Scaling the Cloud - Cloud Security
 
April JavaScript Tools
April JavaScript ToolsApril JavaScript Tools
April JavaScript Tools
 
Eclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke KaniesEclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke Kanies
 
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_MinskGetting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
 
Getting the Most out of Your Tools
Getting the Most out of Your ToolsGetting the Most out of Your Tools
Getting the Most out of Your Tools
 

Más de Quizlet (8)

Quizlet find:copy
Quizlet find:copyQuizlet find:copy
Quizlet find:copy
 
Quizlet.create set
Quizlet.create setQuizlet.create set
Quizlet.create set
 
Quizlet.sign up
Quizlet.sign upQuizlet.sign up
Quizlet.sign up
 
Quizlet In Class
Quizlet In ClassQuizlet In Class
Quizlet In Class
 
Quizlet Outside Class
Quizlet Outside ClassQuizlet Outside Class
Quizlet Outside Class
 
Conjugate with Quizlet
Conjugate with QuizletConjugate with Quizlet
Conjugate with Quizlet
 
Student Progress with Quizlet
Student Progress with QuizletStudent Progress with Quizlet
Student Progress with Quizlet
 
Teachers' Guide to Quizlet
Teachers' Guide to QuizletTeachers' Guide to Quizlet
Teachers' Guide to Quizlet
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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...
 
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...
 

Scaling Quizlet

  • 1. Scaling Quizlet Andrew Sutherland Founder Friday, April 20, 12
  • 2. Quizlet.com We provide educational tools for millions of kids. Friday, April 20, 12
  • 3. Traffic • 70M pageviews/mo • 7.5M uniques/mo • Quantcast US Rank: #385 • 99.97% uptime this year Friday, April 20, 12
  • 4. Traffic Pattern 6x growth in 4 weeks, every year Friday, April 20, 12
  • 5. Data • 160 GB in MySQL • 1.1B rows in `answers` table • One big 48GB master does it all (are we crazy?) Friday, April 20, 12
  • 6. Architecture • 2 Load Balancers • 3 Web Servers • 2 Database machines • ~15 machines doing services Friday, April 20, 12
  • 7. Throughput Page requests: - 750 rps peak - 300 rps avg Memcached: MySQL: - 2,500 qps peak - 1,100 qps peak - 1,000 qps avg - 465 qps avg Friday, April 20, 12
  • 8. Biggest single win (2010) Removing joins. Putting all ID-based lookups in memcached. 3x’d our performance overnight, prevented complicated architecture Friday, April 20, 12
  • 9. Watching syscalls with DTrace dtrace -n 'syscall::open:entry { printf("%s %s",execname,copyinstr(arg0)); }' Found PHP opening files because of require_once(). Switched to require(). Friday, April 20, 12
  • 10. Need better visibility into apps Site got 2x faster here Friday, April 20, 12
  • 11. AVERAGES SUCK Friday, April 20, 12
  • 12. Enter New Relic (live demo) Friday, April 20, 12
  • 13. New Relic isn’t enough. Friday, April 20, 12
  • 14. Check out our super-crappy, super-awesome Inline I/O viewer Friday, April 20, 12
  • 15. And our super-crappy, super-awesome App log viewer Friday, April 20, 12
  • 16. Our log viewer Check out our super-crappy, super-awesome Log Viewer Friday, April 20, 12
  • 17. YOUR LOGS ARE RELATIONAL Friday, April 20, 12
  • 18. Log lookups by • User ID • IP address • Type • Frequency • Type+Frequency • Response times Friday, April 20, 12
  • 19. Scalable diagnosis of user issues with feedback (demo) Friday, April 20, 12
  • 20. The Future We built a game in Node. It rocks. Friday, April 20, 12
  • 21. Future We built a game in Node. It rocks. Friday, April 20, 12
  • 22. Future We built a game in Node. It rocks. Friday, April 20, 12
  • 23. New Scaling Story Single user might have 5 messages with the server in 1 second. Connection lasts 30 minutes, not 100ms. Friday, April 20, 12
  • 24. Scaling node We’re exploring this now. And need help. Friday, April 20, 12
  • 26. Show Me What’s Wrong Second coolest website ever. http://showmewhatswrong.com/ Friday, April 20, 12
  • 27. Poor man’s SMS alerts Setup GMail filter for SMS 1. Add filter for name+sms@hotstartup.com 2. Forward to 4155551234@vtext.com (VZW) 3. Your app can now text you anytime, for free. Friday, April 20, 12
  • 28. Ambient Traffic Awareness Get the New Relic Menu Bar Always know about how much traffic you have. (Available in Mac App Store) Friday, April 20, 12
  • 29. Use Vogue! Never refresh for CSS again! Vogue github.com/quizlet/vogue Friday, April 20, 12
  • 30. Thanks! Follow: @asuth @quizlet Friday, April 20, 12