javacro'14 - vaadin scalability myth – gordan ivanović

Post on 28-Nov-2014

1.081 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Vaadin is a framework for building rich web applications. Vaadin features server-side architecture where all of the business logic is located on server and only presentation layer is located on client side. Server-side architecture can be advantage since session state is stored on server. Statefulness can also be a disadvantage since server is frequently contacted. Obviously, the big mystery is scalability which is the main „pros and cons“ Vaadin battle. The question is, is Vaadin capable of satisfying the needs of an application that requires thousand of concurrent active users.

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