Vaadin scalability-slides

3,614 views

Published on

Маштабируемость приложений. Узнайте как приложения Vaadin масштабируются при большом числе пользователей.
Joonas Lehtinen, Vaadin
Vaadin Developer Meetup, Санкт-Петербург, 24 января 2011 года

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,614
On SlideShare
0
From Embeds
0
Number of Embeds
559
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Vaadin scalability-slides

  1. 1. Server-side RIA Scalability Joonas Lehtinen, PhD Vaadin Ltd, CEOperjantaina 21. tammikuuta 2011
  2. 2. Vaadin is a UI framework for desktop-like web appsperjantaina 21. tammikuuta 2011
  3. 3. java htmlperjantaina 21. tammikuuta 2011
  4. 4. more secure code stays in server powerful open source all Java tools free Apache & libraries license Vaadin value proposition simpler forget the web cost-effective no JavaScript modular debugging extensible ♲perjantaina 21. tammikuuta 2011
  5. 5. BUTperjantaina 21. tammikuuta 2011
  6. 6. Does It Scale?perjantaina 21. tammikuuta 2011
  7. 7. Server-side RIA?perjantaina 21. tammikuuta 2011
  8. 8. “Web 1.0” Client 5 Server HTML Page DOM over HttpResponse View 4 3 Model Parameters over HttpRequest Controller 2 DB 1perjantaina 21. tammikuuta 2011
  9. 9. Client-side RIA Client 4 Server Requested data View to view as XML / JSON 5 DOM Model 3 1 Changes to model Controller encoded as parameters DB 2perjantaina 21. tammikuuta 2011
  10. 10. Server-side RIA Client 8 Server 9 7 TerminalAdapter TerminalAdapter HTML Page over HttpResponse View 6 Automated by 5 DOM the RIA framework Model Handled by the framework Parameters over HttpRequest Controller 1 4 3 DB 2perjantaina 21. tammikuuta 2011
  11. 11. Scale?perjantaina 21. tammikuuta 2011
  12. 12. Top 3 Questions Server-side memory consumption per session Server-side RIA Scalability Server-side CPU usage by the user questions interface logic Initial application download and Ajax trafficperjantaina 21. tammikuuta 2011
  13. 13. Answer Depends on your applicationperjantaina 21. tammikuuta 2011
  14. 14. Useful Answer Scales enough for most applicationsperjantaina 21. tammikuuta 2011
  15. 15. Big enough application to prove the point?perjantaina 21. tammikuuta 2011
  16. 16. Movie ticket reservation systemperjantaina 21. tammikuuta 2011
  17. 17. Think BIGperjantaina 21. tammikuuta 2011
  18. 18. 238 countriesperjantaina 21. tammikuuta 2011
  19. 19. 6 624 theatersperjantaina 21. tammikuuta 2011
  20. 20. 69 347 roomsperjantaina 21. tammikuuta 2011
  21. 21. 20.7M seatsperjantaina 21. tammikuuta 2011
  22. 22. 3 movies per nightperjantaina 21. tammikuuta 2011
  23. 23. up to 1.9 billion tickets per monthperjantaina 21. tammikuuta 2011
  24. 24. up to 224 billion € per year [ assuming 10€ / ticket ]perjantaina 21. tammikuuta 2011
  25. 25. which is 10X total global box office sales of 30 billion USD in 2009 estimated by MPAAperjantaina 21. tammikuuta 2011
  26. 26. assume • 10% fill rate to reach global sales in 2009 • 2 tickets per sales transaction we should be able to handle 2140 sales transactions per minute on average - 24/7 (assuming uniform load)perjantaina 21. tammikuuta 2011
  27. 27. How it’s made?perjantaina 21. tammikuuta 2011
  28. 28. Vaadin Framework User Interface Logic Business Logic MySQL DBperjantaina 21. tammikuuta 2011
  29. 29. Business Logic paid tickets reservations countries cities theaters shows ... MySQL DBperjantaina 21. tammikuuta 2011
  30. 30. Business Logic reservations cities, ... paid Memcached tickets cities, ... MySQL DBperjantaina 21. tammikuuta 2011
  31. 31. Tomcat Tomcat Tomcat Vaadin Vaadin Vaadin UI UI UI Logic Logic Logic Cache Cache Cache MySQL DBperjantaina 21. tammikuuta 2011
  32. 32. ELB Tomcat Tomcat Tomcat EC2-Large EC2-Large EC2-Large • 7.5GB mem • 7.5GB mem • 7.5GB mem • 2 CPU cores • 2 CPU cores • 2 CPU cores • $0.34 / hour • $0.34 / hour • $0.34 / hour MySQL RDS-Large • $0.44 / hourperjantaina 21. tammikuuta 2011
  33. 33. Benchmarkperjantaina 21. tammikuuta 2011
  34. 34. test Apache JMeter recording ELBperjantaina 21. tammikuuta 2011
  35. 35. Apache JMeter t tperjantaina 21. tammikuuta 2011 t Apache JMeter Apache JMeter t ELB Apache JMeter Apache JMeter Apache JMeter Apache JMeter Apache JMeter 2000 threads per server 14 JMeter servers (EC2-Large)
  36. 36. Apache JMeter t tperjantaina 21. tammikuuta 2011 t Apache JMeter Apache JMeter t Apache JMeter Apache JMeter Apache JMeter Apache JMeter Apache JMeter 2000 threads per server 14 JMeter servers (EC2-Large)
  37. 37. One Tomcat Server Scenarios per minute Average ajax response (ms) 3000 150 2400 120 1800 90 1200 60 600 30 0 0 Sales / Minute Avg response (ms) 2000 3000 4000 5000 6000 Concurrent simulated users usersperjantaina 21. tammikuuta 2011
  38. 38. One Tomcat Server Scenarios per minute Average ajax response (ms) 3000 150 2400 120 2140 GOAL all tickets in 2009 1800 90 1200 60 600 30 0 0 Sales / Minute Avg response (ms) 2000 3000 4000 5000 6000 Concurrent simulated users usersperjantaina 21. tammikuuta 2011
  39. 39. Goal of selling all tickets in the world reached with only one server!perjantaina 21. tammikuuta 2011
  40. 40. What happens with multiple servers?perjantaina 21. tammikuuta 2011
  41. 41. Three Tomcat Servers Scenarios per minute Average ajax response (ms) 6000 400 4800 320 3 servers 3 servers 3600 240 2400 160 1200 80 0 0 1 Sales / Minute server 1 server Avg response (ms) 2000 3000 4000 5000 6000 18000 Concurrent simulated users usersperjantaina 21. tammikuuta 2011
  42. 42. 3x servers 2.6 x transactionsperjantaina 21. tammikuuta 2011
  43. 43. What if we overload the server?perjantaina 21. tammikuuta 2011
  44. 44. Three Tomcat Servers Scenarios per minute Average ajax response (ms) 6000 2000 4800 1600 3 servers 2 servers 3600 1200 3 servers 2 servers 2400 800 1200 400 0 0 1 server Sales / Minute 1 Avg response (ms) server 2000 3000 4000 5000 6000 18000 28000 Concurrent simulated users usersperjantaina 21. tammikuuta 2011
  45. 45. Too many users 98% of the transactions per server 5 x latencyperjantaina 21. tammikuuta 2011
  46. 46. Optimizationsperjantaina 21. tammikuuta 2011
  47. 47. 1. Profile memoryperjantaina 21. tammikuuta 2011
  48. 48. 2. Explicit session clear in the endperjantaina 21. tammikuuta 2011
  49. 49. 3. Minimize database useperjantaina 21. tammikuuta 2011
  50. 50. 4. Move static resources to AWS CloudFrontperjantaina 21. tammikuuta 2011
  51. 51. Expected hosting costs?perjantaina 21. tammikuuta 2011
  52. 52. Servers 1 x MySQL Server (RDS-Large) $910 / year (reserved instance) 3 x Tomcat Server (EC2-Large) $2730 / year total (reserved instance) Total $3640 / yearperjantaina 21. tammikuuta 2011
  53. 53. Network 1050TB traffic $86000 / year Elastic Load Balancing $8819 / year Total $94819 / yearperjantaina 21. tammikuuta 2011
  54. 54. Total hosting costs Total hosting costs: $100.000 / year $87 per million sales transactions Hosting costs are 0.00043% of the ticket sales revenues salesperjantaina 21. tammikuuta 2011
  55. 55. Questions Comments joon as@vaadin.com +358-40-5035001 sky pe://joonaslehtinenperjantaina 21. tammikuuta 2011

×