Università degli studi Tor Vergata Facoltà di Ingegneria Metodologie e strumenti per il collaudo di applicazioni Web Candidato: Luca De Francesco Relatore Chiar.mo Prof. Salvatore Tucci Correlatore 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 Web server (WS) Client Internet/Intranet Application server (AS) Database server (DBS) 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 Cliente Sviluppatori Internet Data Center
L esercizio di applicazioni Web Successo di un applicazione Web: Contesti aziendali per l erogazione delle applicazioni Web System Integrator Cliente 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 System Integrator Cliente Sviluppatori Fase di collaudo IDC 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 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. Analisi dei Risultati
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 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 Analisi dei Risultati
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 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. Esecuzione dei piani di collaudo Analisi dei Risultati
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 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. Realizzare l ambiente di collaudo Esecuzione dei piani di collaudo Analisi dei Risultati
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: esprimere un giudizio sull applicazione collaudata, oppure, guidare la specifica di ulteriori piani di collaudo. AZIONI: 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 Metriche di prestazione Log del Web server Time-taken cs(referer) Monitoraggio dei pacchetti Fattorizzazione del time-taken Load testing Modello di carico generale Metriche di prestazione Log del Web server
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 Load testing Modello di carico privo di sezioni critiche Metriche di prestazione Log del Web server
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 No load testing Modello di carico costituito da un unica richiesta critica 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 Piani correlativi Piani indagativi Metriche di prestazione Log del Web server Time-taken cs(referer) Monitoraggio dei pacchetti Fattorizzazione del time-taken Time taken GET *.asp HTML HTML ACK START query reply END Client WS AS DBS
Specificare i piani di collaudo Piani cognitivi Piani correlativi Piani indagativi Metriche di prestazione Log del Web server Time-taken default.asp *.asp;*.htm cs(referer): default.asp cs(referer) Monitoraggio dei pacchetti *.jpg; *.mid; *.avi; *.wav 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) Intranet IDC AS Pacchetti DBS 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 Internet/Intranet WS AS DBS time-taken T WS T AS T DBS
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 SQL Server 2000 WAS Master client Subnet Netsiel 10 Mbit/sec 10 Mbit/sec 10 Mbit/sec WAS Virtual client 1 WAS 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 WAS Master client Subnet Netsiel 10 Mbit/sec IIS 5.0 SQL Server 2000 Web Server: 10 Mbit/sec 10 Mbit/sec Internet Information Server 5.0 WAS Virtual client 1 WAS Virtual client 2 Monitor: Performance monitor 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 WAS Master client Subnet Netsiel 10 Mbit/sec 10 Mbit/sec IIS 5.0 SQL Server 2000 Database Server: 10 Mbit/sec SQL Server 2000 WAS Virtual client 1 WAS Virtual client 2 Performance Monitor O.S. : Microsoft Windows 2000 advanced server (Service Pack 2) Monitor: Performance Monitor Performance monitor Network monitor Network Monitor
Realizzare l ambiente di collaudo Tuning dei sistemi server e degli strumenti per il collaudo WAS Master client IIS 5.0 SQL Server 2000 Client 10 Load Mbit/secgenerator: 10 Mbit/sec Subnet Netsiel 10 Mbit/sec Master Microsoft Web Application Stress Monitor: Performance monitor Controllo request WAS Subnet WAS Virtual Client client 1 Virtual client 2 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: VBscript e tecnologia ASP Application server: Architettura COM+, ISAPI Database server : ADO 2.7, OLEDB provider Script client side : Javascript Applicazione collaudata Piano cognitivo Piani correlativi Piano indagativo
Collaudo eseguito Panorama tecnologico Script server side Application server Database server Script client side Modello di carico ricerca rfc Applicazione collaudata Piano cognitivo Piani correlativi Piano indagativo default ricerca e-books download e-books info
Collaudo eseguito Panorama tecnologico Script server side Application server Database server Script client side Modello Metriche di di prestazione carico Generatore di carico Set di metriche configurate sul performance monitor ricerca rfc WS+AS DBS Applicazione collaudata Piano cognitivo Piani correlativi Piano indagativo default Statistiche del generatore di carico ricerca e-books info download e-books Log del Web server
Collaudo eseguito Panorama tecnologico Script server side Application server Database server Script client side Modello di carico Piano #1 ricerca rfc Applicazione collaudata Piano cognitivo Piani correlativi Piano indagativo default ricerca e-books download e-books info
Collaudo eseguito Panorama tecnologico Script server side Application server Database server Script client side Modello di carico Piano #1 #2 ricerca rfc Applicazione collaudata Piano cognitivo Piani correlativi Piano indagativo default ricerca e-books download e-books info
Collaudo eseguito Panorama tecnologico Script server side Application server Database server Script client side Metriche di prestazione Generatore di carico Set di metriche configurate sul performance monitor WS+AS DBS Applicazione collaudata Piano cognitivo Piani correlativi Piano indagativo Statistiche del generatore di carico Log del Web 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 ricerca rfc Un unica richiesta!
Collaudo eseguito Panorama tecnologico Script server side Application server Database server Script client side Modello Metriche di di prestazione carico Operatore Set di metriche configurate sul performance monitor WS+AS Un unica richiesta! DBS Applicazione collaudata Piano cognitivo Piani correlativi Piano indagativo ricerca rfc Client Monitoraggio di pacchetti con il network monitor
Piano cognitivo Analisi dei risultati 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.