javacro'14 - vaadin scalability myth – gordan ivanović
Post on 28-Nov-2014
1.081 Views
Preview:
DESCRIPTION
TRANSCRIPT
Mit o Vaadin
skalabilnosti
Gordan Ivanović
IGEA – IN2 Grupa
Sadržaj
O Vaadinu
Motivacija testiranja
Što smo i kako testirali
Rezultati
Zaključak
12.05.2014. IGEA – IN2 Group 2
Ukratko o Vaadinu
Framework za razvoj rich web aplikacija
Server-side i client-side
Orijentiran na server-side
12.05.2014. IGEA – IN2 Group 3
Prednosti
Kratka krivulja učenja
Čist kod
Lagan za održavanje
Server-side orijentiran
Nema borbe s mnogobrojnim klijentskim tehnologijama
Bolji fokus na implementaciju poslovnih procesa
Proširiv
Dobro se integrira s drugim tehnologijama
…
12.05.2014. IGEA – IN2 Group 4
Mane
Server-side orijentiran
Client-side razvoj
Velika količina generiranog HTML koda
Performanse??
Skalabilnost??
12.05.2014. IGEA – IN2 Group 5
Testiranje Vaadin tima
Web aplikacija za kupovinu kino karata (QuickTickets)
Vaadin 6
Vaadin zadovoljio (premašio?) očekivanja
Može podnijeti veliko opterećenje
Jedan server može podnijeti kupovinu kino karata za cijeli SAD i
Kanadu (Vaadin polu-šala)
12.05.2014. IGEA – IN2 Group 6
Motivacija za novo testiranje
Vaadin 7
Aplikacija za kupovinu kino karata je relativno light-
weight po pitanju količine interakcije usera/klijenta s
aplikacijom/serverom
Testiran samo jedan scenarij
Još uvijek skalabilnost glavni razlog za nekorištenje
Vaadina
Jedno od rijetkih (jedino?) istraživanje Vaadin
skalabilnosti dostupno na webu
Postoje usporedbe s drugim tehnologijama – nije cilj ovog
testiranja
12.05.2014. IGEA – IN2 Group 7
Što testiramo
Implementirali smo jednostavan use-case
Javni adresar stanovnika po državama i kontinentima
Cilj nije bio stvoriti potpuno realan use-case po pitanju
tržišne potražnje već simulirati kompliciraniju (enterprise)
web aplikaciju
Veći broj raznolikih AJAX requestova
Veće opterećenje na server
Veće opterećenje na bazu
Teže skalirati
12.05.2014. IGEA – IN2 Group 8
Implementacija i izvedba
Vaadin aplikacija u integraciji sa Springom
Dvije verzije aplikacije:
a) Sve komponente su immediate
b) Nijedna komponenta nije immediate
Nismo koristili cacheiranje
Amazon Cloud
2 large instance za aplikacijske servere
2 large instance za JMeter
1 large instanca za bazu (Postgresql)
12.05.2014. IGEA – IN2 Group 9
Implementacija i izvedba - JMeter
JMeter
Četiri korisnička scenarija
Svaki snimljen posebno za pojedinu verziju aplikacije
U scenarijima implementirana kašnjenja– trajanje scenarija cca 3
minute
Na svakoj instanci pokrenuta 3 scenarija koja su gađala isti
server
12.05.2014. IGEA – IN2 Group 10
Implementacija i izvedba – JMeter
scenariji
Tri scenarija koja simuliraju kompliciranije(realnije)
slučajeve korištenja
Pretraživanje + unos jedne osobe u bazu + unos jedne adrese u
bazu + minimalno grešaka pri unosima
Pretraživanje + unos jedne osobe u bazu + unos jedne adrese u
bazu + puno grešaka pri unosima
Pretraživanje + unos tri adrese u bazu + malo grešaka pri unosu
12.05.2014. IGEA – IN2 Group 11
Implementacija i izvedba – JMeter
scenariji
„Dodatni” scenarij - samo unošenje podataka u polja bez
perzistiranja u bazu
Odlazaka na bazu ima za potrebe punjenja padajućih izbornika
Nije puštan u kombinaciji s ostalima već sam za sebe
Prema broju odlazaka na bazu sličan Vaadin testu skalabilnosti
Razlozi ovog testiranja:
Istraživanje utjecaja baze na rezultate prvih testova
Veći fokus na client-server komunikaciju nego na cijelu aplikaciju
12.05.2014. IGEA – IN2 Group 12
Rezultati – kombinacija 3 immediate
scenarija
12.05.2014. IGEA – IN2 Group 13
Broj
korisnika
Pristiglo Ajax
requesta u
minuti
Obrađeno
average/peek Ajax
Request po minuti
Broj
servera
Median
(ms)
540 22860 9336/13441 1 13
1080 45720 10536/14285 1 208
1080 45720 10626/14421 2 38
2160 91440 13212/20641 2 59
4320 182880 11562/24441 2 1126
- Zadnje mjerenje pokazalo je loš odziv i povećan broj
grešaka > 1%
Rezultati – kombinacija 3
non-immediate scenarija
12.05.2014. IGEA – IN2 Group 14
Broj
korisnika
Pristiglo Ajax
requesta u
minuti
Obrađeno
average/peek Ajax
Request po minuti
Broj
servera
Median
(ms)
540 11520 5550/8643 1 21
1080 23040 8951/13548 1 33
2160 46080 8817/15206 1 317
2160 46080 10026/16680 2 175
4320 92160 13442/22631 2 265
- U zadnjem mjerenju prihvatljivo vrijeme odziva i prihvatljiv
broj grešaka < 1%
Rezultati – dodatni scenarij
12.05.2014. IGEA – IN2 Group 15
Broj korisnika: 4800
Broj pristiglih zahtjeva u minuti: 110400
Prosječno obrađeno zahtjeva u minuti: 24006
Peek obrađeno zahtjeva u minuti: 35014
2 servera uz median vrijeme odziva 117ms
Zaključak
Obrada zadovoljavajućeg broja AJAX requesta u minuti
Kombinacija (kompliciranih) korisničkih scenarija i broja
korisnika daje zadovoljavajuće rezultate isto kao i
kontrolni scenarij
Najveći problem kod (pre)velikog broja korisnika
predstavlja vrijeme odziva i broj odbijenih zahtijeva
Činjenica da je u testovima baza u pojedinim trenutcima
postala usko grlo pokazuje da Vaadin dobro podnio
povećano opterećenje
Testiranje je pokazalo da bi Vaadin zadovoljio potrebe
jedne bogatije aplikacije s prosječnim brojem (korisnika u
peek periodima korištenja)
12.05.2014. IGEA – IN2 Group 16
IGEA – IN2 Grupa
top related