08 10 12 Meebo Ajaxworld Preso

560 views

Published on

Published in: Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
560
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

08 10 12 Meebo Ajaxworld Preso

  1. 1. scaling the synchronous web confidential
  2. 2. scaling the synchronous web October 10th, 2008 Elaine Wherry Co-Founder, VP Products confidential
  3. 3. + www
  4. 4. 2 3 4 5 6 7
  5. 5. traditional versus nontraditional...
  6. 6. asynchronous versus synchronous...
  7. 7. asynchronous versus synchronous... page views versus persistence... content versus application... database versus memory...
  8. 8. simpler is better know your bottlenecks quick fix or homerun useful abstractions
  9. 9. #1: simpler is better
  10. 10. gaim 1.5.0 ui & core & services protocol plugins yahoo oscar (aim) jabber msn
  11. 11. meebo network layer gaim 1.5.0 core & services protocol plugins yahoo oscar (aim) jabber msn yahoo
  12. 12. confidential
  13. 13. #1: simpler is better Don’t try to solve a scaling problem you don’t have (yet) Build it as quickly and as inexpensively as possible You want to save time to iterate upon other ideas in case this one doesn’t work Setting yourself up for success – easier to optimize something you understand
  14. 14. #2 know your bottlenecks confidential
  15. 15. tools strace gdb oprofile httpanalyzer monitoring
  16. 16. #2: know your bottlenecks your type of app determines the type of scaling don’t prematurely optimize know system at different levels: oprofile, valgrind, gdb know your bottlenecks: memory, cpu, bandwidth, storage, disk i/o confidential
  17. 17. #3: quick fix or homerun! confidential
  18. 18. kill –9 <pid>
  19. 19. confidential
  20. 20. confidential
  21. 21. cgi fastcgi mod_meebo
  22. 22. #3: quick fix or homerun users just want it to work (now) use the time the quick fix affords you wisely aim for small or big, avoid the middle fix the root issue
  23. 23. #4: useful abstractions
  24. 24. ui meebo dlg IMDlg BuddyListDlg button menu EventMgr NetworkMgr element ajax util.js
  25. 25. Firefox iPhone iPhone meeboApp meeboApp PubSub ui meebo dlg Buddy BuddyList Account button menu EventMgr NetworkMgr element ajax util
  26. 26. #4: useful abstractions keep it simple, flexible, so you can adapt quickly to changes and scale with needs abstractions allow you to reuse existing components to scale to new challenges it’s hard to know where the useful abstractions are when you start a project
  27. 27. simpler is better know your bottlenecks quick fix or homerun useful abstractions
  28. 28. today 3 years old 45 people (2 dogs) 35 million uniques per month 350 years worth of usage per day 200 million messages per day 54,000 kiss emoticons each day :-* 2.5 hour session length
  29. 29. thank you confidential
  30. 30. http://flickr.com/photos/23327394@N05/2247502690/sizes/o/ (synchronized swimming) http://www.flickr.com/photos/exlibris/1031926094/ (traditional wedding) http://www.flickr.com/photos/callmemurphy/15877783/ (elvis) http://www.tadgear.com/edged%20tools/tad_gear_titanium_folding_spork.htm (spork) http://flickr.com/photos/deeleea/527574056/sizes/o/ (cat bottleneck) http://flickr.com/photos/pinelife/2580999964/sizes/l/ (quick fix) http://petitinvention.files.wordpress.com/2008/04/stinky_trash-petitinvention.jpg (trash icon) http://technet.microsoft.com/en-us/library/cc722911.aspx (windows dlg) http://flickr.com/photos/simonkimber/1096654635/ (traffic light tree) http://www.flickr.com/photos/jumblejet/2685719879/sizes/l/ (elephant veggie art)

×