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.