Metodologie e strumenti per il collaudo di applicazioni Web

Università degli studi “Tor Vergata”
Facoltà di Ingegneria
Metodologie e strumenti per il
collaudo di applicazioni Web
Candidato: Luca De Francesco
Relatore
Correlatore
Chiar.mo Prof. Salvatore Tucci
Ing. Valeria Cardellini
Anno Accademico 2001/2002
Sommario
Applicazioni Web e comprensione del contesto
aziendale di un IDC
Progetto preliminare della metodologia di
collaudo
Implementazione su un modello di piattaforma
Web Microsoft
Strumenti di automazione del collaudo
Risultati sperimentali
Conclusioni e sviluppi futuri
Applicazioni Web
Modello multi-tier
Client
Web server Application server Database server
(WS)
(AS)
(DBS)
Internet/Intranet
Fornitura di servizi Web dinamici
Componenti Web di terze parti
L’esercizio di applicazioni Web
Successo di un’applicazione Web:
Contesti aziendali per l’erogazione
delle applicazioni Web
System
Integrator
Sviluppatori
Cliente
Internet
Data
Center
L’esercizio di applicazioni Web
Successo di un’applicazione Web:
Contesti aziendali per l’erogazione
delle applicazioni Web
System
Integrator
Sviluppatori
Cliente
Fase di collaudo
Fase di
esercizio
L’esercizio di applicazioni Web
Successo di un’applicazione Web:
Contesti aziendali per l’erogazione
delle applicazioni Web
System
Integrator
Cliente
IDC
Sviluppatori
Fase di collaudo
Fase di
esercizio
L’esercizio di applicazioni Web
Successo di un’applicazione Web:
Contesti aziendali per l’erogazione
delle applicazioni Web
Servizi offerti da un Internet
Data Center:
Hosting
Housing
Service Level Agreement
Modello di carico Web
basato sull’applicazione
Load testing
Ulteriori tecniche che fanno
uso del concetto di carico
Web:
Benchmarking
Capacity Planning
Obiettivo del lavoro di tesi
Definire una metodologia di collaudo, assistita da
strumenti automatizzati, che un Internet Data
Center può utilizzare per valutare le prestazioni
di applicazioni basate su tecnologia Web
allo scopo di:
identificare i livelli di servizio erogabili
assicurare l’esercizio di applicazioni esistenti per servizi di
virtual hosting
risalire alle cause dei malfunzionamenti delle applicazioni Web
Progetto della metodologia
Collaudo basato sul load testing composto da 7 fasi
Definizione degli
obiettivi del collaudo
Comprensione dell’ambiente
Specificare i piani di collaudo
Specificare i modelli di carico
per ogni piano di collaudo
Realizzare l’ambiente
di collaudo
Esecuzione dei piani
di collaudo
Analisi dei Risultati
SCOPO: identificare metriche che
forniscano indicazioni sulle principali
aree dell’applicazione.
AZIONI: organizzare l’applicazione
per funzionalità e formalizzare dei
livelli di rischio in base a
background aziendale sulla
tipologia di applicazione
indicazioni fornite da semplici
visite alle sezioni dell’applicazione.
Progetto della metodologia
Collaudo basato sul load testing composto da 7 fasi
Definizione degli
obiettivi del collaudo
Comprensione dell’ambiente
Specificare i piani di collaudo
Specificare i modelli di carico
per ogni piano di collaudo
Realizzare l’ambiente
di collaudo
Esecuzione dei piani
di collaudo
Analisi dei Risultati
SCOPO: chiarire i dettagli
dell’applicazione legati al contesto di
esercizio e offrire al collaudo
un’adeguata verosimiglianza rispetto
alle infrastrutture di esercizio.
AZIONI: :
studiare le configurazioni hardware
e software dell’infrastruttura
comprendere gli stati di carico e i
livelli di servizio da verificare per il
rispetto dei SLA.
Progetto della metodologia
Collaudo basato sul load testing composto da 7 fasi
Definizione degli
obiettivi del collaudo
Comprensione dell’ambiente
Specificare i piani di collaudo
Specificare i modelli di carico
per ogni piano di collaudo
Realizzare l’ambiente
di collaudo
Esecuzione dei piani
di collaudo
Analisi dei Risultati
SCOPO: fornire degli scenari di collaudo
da valutare.
AZIONI: delineare, con relative metriche
di prestazione dei sistemi Web:
un piano cognitivo che identifichi le
sezioni critiche
un piano correlativo che mostri gli effetti
delle sezioni critiche rispetto alle altre
un piano indagativo che fornisca indicazioni
precise sui flussi di esecuzione tra i vari
sistemi Web
Progetto della metodologia
Collaudo basato sul load testing composto da 7 fasi
Definizione degli
obiettivi del collaudo
Comprensione dell’ambiente
Specificare i piani di collaudo
Specificare i modelli di carico
per ogni piano di collaudo
Realizzare l’ambiente
di collaudo
Esecuzione dei piani
di collaudo
Analisi dei Risultati
SCOPO: definire i parametri che
caratterizzano i differenti modelli di
carico.
AZIONI: definire un grafo che
rappresenti le funzionalità
dell’applicazione e la distribuzione
delle visite, noto come Customer
Behavior Model Graph.
Progetto della metodologia
Collaudo basato sul load testing composto da 7 fasi
Definizione degli
obiettivi del collaudo
Comprensione dell’ambiente
Specificare i piani di collaudo
Specificare i modelli di carico
per ogni piano di collaudo
Realizzare l’ambiente
di collaudo
Esecuzione dei piani
di collaudo
Analisi dei Risultati
SCOPO: rendere l’infrastruttura di
collaudo simile all’ambiente di
esercizio ed assicurare la consistenza
dei risultati.
AZIONI: realizzare quanto studiato
nella fase di “comprensione
dell’ambiente”, quindi:
installare l’applicazione Web e
tutte le sue componenti
configurare gli strumenti software
che assistono il collaudo
Progetto della metodologia
Collaudo basato sul load testing composto da 7 fasi
Definizione degli
obiettivi del collaudo
Comprensione dell’ambiente
Specificare i piani di collaudo
Specificare i modelli di carico
per ogni piano di collaudo
Realizzare l’ambiente
di collaudo
Esecuzione dei piani
di collaudo
Analisi dei Risultati
SCOPO: ottenere le metriche di
prestazione dell’applicazione.
AZIONI: avviare il load testing e
degli strumenti di rilevazione delle
metriche decise nella specifica dei
piani di collaudo.
Progetto della metodologia
Collaudo basato sul load testing composto da 7 fasi
Definizione degli
obiettivi del collaudo
Comprensione dell’ambiente
SCOPO: esprimere un giudizio
sull’applicazione collaudata, oppure,
guidare la specifica di ulteriori piani di
collaudo.
Specificare i piani di collaudo
AZIONI:
Specificare i modelli di carico
per ogni piano di collaudo
Realizzare l’ambiente
di collaudo
Esecuzione dei piani
di collaudo
Analisi dei Risultati
confrontare i risultati di differenti
piani di collaudo
utilizzare i risultati per specificare
piani di collaudo ad-hoc
evidenziare eventuali errori
dell’applicazione da correggere
Specificare i piani di collaudo
Piani cognitivi
Piani correlativi
Piani indagativi
Load testing
Modello di carico generale
Metriche di prestazione
Log del Web server
Metriche di prestazione
Log del Web server
Time-taken
cs(Referer)
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
Specificare i piani di collaudo
Piani cognitivi
Piani correlativi
Piani indagativi
Load testing
Modello di carico privo
di sezioni critiche
Metriche di prestazione
Metriche di prestazione
Log del Web server
Log del Web server
Time-taken
cs(Referer)
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
Specificare i piani di collaudo
Piani cognitivi
Piani correlativi
Piani indagativi
No load testing
Metriche di prestazione
Modello di carico costituito da
un’unica richiesta critica
Log del Web server
Fattorizzazione del time-taken
Time-taken
cs(Referer)
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
Specificare i piani di collaudo
Piani cognitivi
Piani correlativi
Piani indagativi
Metriche di prestazione
Log del Web server
Time-taken
cs(Referer)
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
Specificare i piani di collaudo
Piani cognitivi
Time taken
Piani correlativi
START
GET
*.asp
Piani indagativi
query
reply
HTML
Metriche di prestazione
HTML
Log del Web server
Time-taken
cs(Referer)
END
ACK
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
Client
WS
AS
DBS
Specificare i piani di collaudo
Piani cognitivi
Piani correlativi
Piani indagativi
Metriche di prestazione
Log del Web server
default.asp
*.asp;*.htm
default.asp
Time-taken
cs(Referer)
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
cs(Referer):
*.jpg; *.mid;
*.avi; *.wav
Specificare i piani di collaudo
Piani cognitivi
Piani correlativi
Piani indagativi
Metriche di prestazione
Log del Web server
Time-taken
cs(Referer)
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
AS
DBS
Intranet IDC
Pacchetti
Specificare i piani di collaudo
Piani cognitivi
Piani correlativi
Piani indagativi
Metriche di prestazione
Log del Web server
WS
AS
DBS
TWS
time-taken
TAS
TDBS
Internet/Intranet
Time-taken
cs(Referer)
Monitoraggio dei pacchetti
Fattorizzazione del time-taken
Specificare i modelli di carico
Customer Behavior Model Graph (CBMG)
Realizzare l’ambiente di collaudo
Tuning dei sistemi server e degli strumenti per il collaudo
IIS 5.0
Subnet Netsiel
10 Mbit/sec
10 Mbit/sec
SQL Server 2000
10 Mbit/sec
WAS
Master client
WAS
WAS
Virtual client 1 Virtual client 2
Performance
Monitor
O.S. : Microsoft Windows 2000 advanced server
(Service Pack 2)
Performance
Monitor
Network
Monitor
Realizzare l’ambiente di collaudo
Tuning dei sistemi server e degli strumenti per il collaudo
IIS 5.0
SQL Server 2000
Web Server:
Subnet Netsiel
10 Mbit/sec
10 Mbit/sec
10 Mbit/sec
Internet Information
Server 5.0
WAS
Master client
Monitor:
Performance monitor
WAS
WAS
Virtual client 1 Virtual client 2
Performance
Monitor
O.S. : Microsoft Windows 2000 advanced server
(Service Pack 2)
Performance
Monitor
Network
Monitor
Realizzare l’ambiente di collaudo
Tuning dei sistemi server e degli strumenti per il collaudo
IIS 5.0
SQL Server 2000
Database Server:
Subnet Netsiel
10 Mbit/sec
10 Mbit/sec
10 Mbit/sec
SQL Server 2000
WAS
Master client
Monitor:
WAS
WAS
Virtual client 1 Virtual client 2
Performance
Performance
Performance
monitor
Monitor
Monitor
Network monitor
O.S. : Microsoft Windows 2000 advanced server
(Service Pack 2)
Network
Monitor
Realizzare l’ambiente di collaudo
Tuning dei sistemi server e degli strumenti per il collaudo
IIS 5.0
Client
SQL Server 2000
10Load
Mbit/secgenerator:
10 Mbit/sec
Subnet Netsiel
Microsoft Web Application Stress
10 Mbit/sec
Monitor:
WAS
Master client
Performance monitor
Master
Controllo
request
Subnet
WAS
WAS
Virtual
client 1 Virtual client 2
Client
reply
Performance
Monitor
Server
O.S. : Microsoft Windows 2000 advanced server
(Service Pack 2)
Performance
Monitor
Network
Monitor
Collaudo eseguito
Panorama tecnologico
Script server side :
Application server :
Database server :
Script client side :
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
VBscript e tecnologia ASP
Architettura COM+, ISAPI
ADO 2.7, OLEDB provider
Javascript
Collaudo eseguito
Panorama tecnologico
Script server side
Application server
Database server
Script client side
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
Modello
di carico
ricerca
rfc
default
ricerca
e-books
info
download
e-books
Collaudo eseguito
Panorama tecnologico
Script server side
Application server
Database server
Script client side
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
Modello
Metriche di
di
prestazione
carico
Set di metriche
configurate sul
performance
monitor
ricerca
rfc
Generatore
di carico
default
Statistiche
del generatore di
carico
WS+AS
ricerca
e-books
DBS
download
e-books
Log del Web
info server
Collaudo eseguito
Panorama tecnologico
Script server side
Application server
Database server
Script client side
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
Modello
di carico
Piano #1
default
ricerca
rfc
ricerca
e-books
info
download
e-books
Collaudo eseguito
Panorama tecnologico
Script server side
Application server
Database server
Script client side
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
Modello
di carico
Piano #2
#1
default
ricerca
rfc
ricerca
e-books
info
download
e-books
Collaudo eseguito
Panorama tecnologico
Script server side
Application server
Database server
Script client side
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
Metriche di
prestazione
Generatore
di carico
Statistiche
del generatore di
carico
Set di metriche
configurate sul
performance
monitor
WS+AS
DBS
Log del Web
server
Collaudo eseguito
Panorama tecnologico
Script server side
Application server
Database server
Script client side
Modello
di carico
Un’unica richiesta!
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
ricerca
rfc
Collaudo eseguito
Panorama tecnologico
Script server side
Application server
Database server
Script client side
Applicazione collaudata
Piano cognitivo
Piani correlativi
Piano indagativo
Modello
Metriche di
di
prestazione
carico
Operatore
ricerca
rfc
Set di metriche
configurate sul
performance
monitor
WS+AS
Un’unica richiesta!
Client
Monitoraggio
di pacchetti con il
network monitor
DBS
Analisi dei risultati
Piano cognitivo
Utenti concorrenti = 25
Frequenza di
campionamento
= 20 sec
Piano correlativo #2
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
Invio della
richiesta.
Ricezione Header
della risposta
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
L’AS invia la
query al DBS.
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
Il DBS invia i dati
all’AS che li legge e li
elabora
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
Il WS invia l’HTML al
Client
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
Il WS termina
l’invio
dell’HTML
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
Iexplorer riceve i dati
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
Iexplorer interpreta
l’HTML ricevuto
Analisi dei risultati
Piano Indagativo:
ricerca delle rfc
Iexplorer
visualizza la pagina
Analisi dei risultati
Piano cognitivo
Piano correlativo #2
Prima
della
modifica
Piano cognitivo
Dopo la
modifica
Analisi dei risultati
Piano cognitivo
Prima
della
modifica
Dopo la
modifica
Analisi dei risultati
Piano cognitivo
Prima
della
modifica
Dopo la
modifica
Conclusioni e sviluppi futuri
La metodologia di collaudo:
fornisce un punto di riferimento nella guida alle fasi di presa in
carico di un’applicazione Web;
è indipendente dalla piattaforma e flessibile rispetto al
panorama tecnologico;
si articola secondo punti precisi e riesce a mettere il provider a
conoscenza del comportamento che un’applicazione può
assumere una volta rilasciata in esercizio.
Conclusioni e sviluppi futuri
La metodologia di collaudo potrebbe essere ulteriormente
sviluppata valutando:
l’introduzione di strumenti di load testing commerciali;
l’implementazione di uno strumento di monitoring ad-hoc, con
funzionalità di data processing post-collaudo;
l’introduzione di una piattaforma “copia” (nella topologia e
nelle policy) del segmento di esercizio;
l’adeguatezza delle sue procedure a seguito di evoluzioni del
panorama tecnologico.