Vaadin scalability-slides
Upcoming SlideShare
Loading in...5
×
 

Vaadin scalability-slides

on

  • 17,032 views

Joonas Lehtinen,

Joonas Lehtinen,

Lisätietoa aamiaistilaisuudesta jossa nämä kalvot on esitetty sekä esitysten videot löytyvät osoitteesta http://www.codento.com/fi/events/2010-06.html

Statistics

Views

Total Views
17,032
Views on SlideShare
14,630
Embed Views
2,402

Actions

Likes
22
Downloads
307
Comments
1

9 Embeds 2,402

https://vaadin.com 1286
http://vaadin.com 991
http://www.codento.com 76
http://www.techgig.com 23
http://www.pearltrees.com 16
http://static.slidesharecdn.com 5
http://www.slideshare.net 2
http://twitter.com 2
http://translate.googleusercontent.com 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Vaadin scalability-slides Vaadin scalability-slides Presentation Transcript

  • Server-side RIA Scalability Joonas Lehtinen, PhD Vaadin Ltd, CEO
  • healthcare portal, 100 kloc of perl, .. 89 19
  • web 1.0, netscape, ie5, ie6, ...
  • thinking of object oriented design, desktop, Java, U and I ...
  • desktop programming paradigm for web!
  • founded millstone ajax google web toolkit 00 08 02 05 20 20 20 20
  • re-named to 09 20
  • Vaadin is a UI framework for desktop-like web apps
  • java html
  • 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 ♲
  • BUT
  • Does Server- side RIA Scale?
  • Server-side RIA?
  • “Web 1.0” Client 5 Server HTML Page DOM over HttpResponse View 4 3 Model Parameters over HttpRequest Controller 2 DB 1
  • 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 2
  • 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 2
  • Scale?
  • 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 traffic
  • Answer Depends on your application
  • Big enough application to prove the point?
  • Movie ticket reservation system
  • Think BIG
  • 238 countries
  • 6 671 theaters
  • 70 578 rooms
  • 21 141 641 seats
  • 3 movies per night
  • up to 320 million tickets per month
  • up to 35 billion € per year
  • which exceeds total global box office sales of 30 billion USD in 2009 estimated by MPAA
  • assume • 70% fill rate • 2 tickets per sales transaction we should be able to handle 2 593 transactions per minute on average - 24/7
  • unfi nis pro hed jec t
  • unfi nis pro hed jec t
  • unfi nis pro hed jec t
  • How it’s made?
  • Vaadin Framework User Interface Logic Business Logic MySQL DB
  • Business Logic paid tickets reservations countries cities theaters shows ... MySQL DB
  • Business Logic reservations cities, ... paid Ehcache tickets cities, ... MySQL DB
  • Vaadin Framework User Interface Logic Business Logic Ehcache MySQL DB
  • Apache Tomcat Vaadin Framework User Interface Logic Business Logic Ehcache MySQL DB
  • Tomcat Tomcat Tomcat Vaadin Vaadin Vaadin UI UI UI Logic Logic Logic Ehcache Ehcache Ehcache MySQL DB
  • 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 EC2-Large • $0.34 / hour EBS EBS
  • Benchmarking
  • ELB Test 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 EC2-Large • $0.34 / hour EBS EBS
  • JVM Custom Test App HTMLUnit Rhino DOM ELB
  • Custom Test App #100 ELB
  • EC2-XL (7GB, 8 cores) Custom Test App #100 Custom Test App #100 ELB
  • EC2-XL (7GB, 8 cores) EC2-XL Custom Test App #100 Custom Test App #100 ELB
  • Results in o rk s w res ro g p
  • 10 XL Test Servers 1 Large Tomcat 1 MySQL (UI Only Test)
  • 10 XL Test Servers 1 Large Tomcat 1 MySQL (UI Only Test)
  • 1 XL Test Servers 2 JVMs (200 threads) 1 Large Tomcat 1 MySQL (UI Only Test)
  • start setup ajax finished
  • 10 XL Test Servers (2000 clients) 1 Large Tomcat 1 MySQL (UI Only Test) JVM GC Pause
  • HTTP-level Benchmark in o rk s w res ro g p
  • ELB Test 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 EC2-Large • $0.34 / hour EBS EBS
  • test Apache JMeter recording ELB
  • test Apache JMeter recording ELB
  • One Tomcat Scenarios per minute Average ajax response (ms) 2000 150 1600 120 1200 90 800 60 400 30 0 0 Sales / Minute Avg response (ms) 100 500 1500 2000 3000 Concurrent simulated users users
  • Server load Tomcat JMeter
  • Server load 3000 simulated concurrent users Tomcat
  • Guesstimates
  • assume • 2 593 sales transactions per minute • 50% of the visitors buy tickets • session takes 5 minutes in average we should be able to handle 25 930 concurrent users on average - 24/7
  • Resource requirements?
  • measured session size 188kb tomcat memory req. ~6-8GB
  • network traffic / session ~200kb 1GB / minute 500 TB / year
  • Expected hosting costs?
  • Servers 2 x MySQL Server (EC2-Large) $2984 / year (reserved instance) 10 x Tomcat Server (EC2-Large) $14920 / year (reserved instance) Elastic Block Store (4 x 50GB) $240 / year Total $18144 / year
  • Network 500TB traffic $55000 / year Elastic Load Balancing $4216 / year Total $59216 / year
  • Total hosting costs Total hosting costs: $77360 / year $20 per million tickets sold Hosting costs are 0.00016% of the QuickTickets sales
  • Questions Comments joon as@vaadin.com +358-40-5035001 sky pe://joonaslehtinen