Sviluppo e visualizzazione di Performance Test su un'applicazione web implementata su un cluster Kubernetes Il tema principale della tesi è la creazione di test di carico su un'applicazione web chiamata WeaveSocks. Il sito in questione è implementato su un cluster Kubernetes. Per visualizzare e gestire i test di carico viene utilizzata un'interfaccia grafica (Grafana) che si approccia al servizio tramite la piattaforma utilizzata per creare i test (JMeter) e un database (InfluxDB). L'obiettivo è acquisire competenze in ambito di gestione delle infrastrutture, di implementazione di un cluster sfruttando le tecnologie sopra descritte, di effettuare testing efficaci che verifichino l'efficienza dello sviluppo a microservizi. Difatti l'architettura adottata è tipica di un ambiente cloud, per questo è previsto lo sviluppo a microservizi. Le principali tecnologie del progetto sono: Linux e Container, Docker, Kubernetes, JMeter, InfluxDB, VirtualBox, CentOS 7. Per garantire l'efficienza sullo studio delle tecnologie è stato sviluppato un cluster Kubernetes funzionante con un'architettura Master e Slave, utilizzando VirtualBox per creare le due macchine virtuali. Le macchine sono state opportunamente configurate con Docker e Kubernetes. Una volta verificato il funzionamento del cluster, tramite DockerHub è stata implementata al di sopra l'applicazione web: WeaveSocks. Successivamente in questa fase di sviluppo dei test, anche per l'elevato carico che comportava avere le due macchine a lavoro sul mio computer, mi sono spostata sul cluster aziendale (con sopra sempre la stessa applicazione web) tramite VPN, in modo da concentrare tutto solo sull'esecuzione dei test nel modo più efficiente possibile. Per sviluppare i test è stato utilizzato il software open source di Apache, JMeter. Partendo dai semplici load test e concludendo con la soluzione finale di un Performance Test che effettua le seguenti azioni: login, sfoglia il catalogo, visualizza un articolo, aggiunge al carrello, check-out e logout. E' stato poi creato un db "jmeter" su InfluxDB che è stato poi collegato al Test Plan come Listener. Infine, per la configurazione dell'interfaccia che ha permesso di creare una dashboard per visualizzare i risultati dei test, è stata utilizzata la piattaforma GrafanaLabs. Viene creata una dashboard con i grafici e i pannelli utili, collegando il db, ogni pannello/grafico può interagire con i risultati che vengono raccolti dal listener presente sul test e inseriti nel database. Grafana semplifica la creazione delle query giuste e la personalizzazione delle proprietà di visualizzazione in modo da poter creare la dashboard perfetta. In conclusione, la soluzione creata riporta l'efficienza dell'applicazione sviluppata a microservizi che è in grado di reggere ad un alto livello di richieste contemporaneamente e di utenti diversi (grazie alla funzione JMeter che simula gli accessi contemporaneamente o l'inserimento di un file .csv con una lista elevata di utenti). I test sono specifici per ogni azione e permettono di testare con precisione le funzionalità dell'applicazione.

INTERFACCIA WEB PER LA GESTIONE DI PERFORMANCE TEST SU UN CLUSTER KUBERNETES

LUCIDO, GABRIELLA TEODORA
2020/2021

Abstract

Sviluppo e visualizzazione di Performance Test su un'applicazione web implementata su un cluster Kubernetes Il tema principale della tesi è la creazione di test di carico su un'applicazione web chiamata WeaveSocks. Il sito in questione è implementato su un cluster Kubernetes. Per visualizzare e gestire i test di carico viene utilizzata un'interfaccia grafica (Grafana) che si approccia al servizio tramite la piattaforma utilizzata per creare i test (JMeter) e un database (InfluxDB). L'obiettivo è acquisire competenze in ambito di gestione delle infrastrutture, di implementazione di un cluster sfruttando le tecnologie sopra descritte, di effettuare testing efficaci che verifichino l'efficienza dello sviluppo a microservizi. Difatti l'architettura adottata è tipica di un ambiente cloud, per questo è previsto lo sviluppo a microservizi. Le principali tecnologie del progetto sono: Linux e Container, Docker, Kubernetes, JMeter, InfluxDB, VirtualBox, CentOS 7. Per garantire l'efficienza sullo studio delle tecnologie è stato sviluppato un cluster Kubernetes funzionante con un'architettura Master e Slave, utilizzando VirtualBox per creare le due macchine virtuali. Le macchine sono state opportunamente configurate con Docker e Kubernetes. Una volta verificato il funzionamento del cluster, tramite DockerHub è stata implementata al di sopra l'applicazione web: WeaveSocks. Successivamente in questa fase di sviluppo dei test, anche per l'elevato carico che comportava avere le due macchine a lavoro sul mio computer, mi sono spostata sul cluster aziendale (con sopra sempre la stessa applicazione web) tramite VPN, in modo da concentrare tutto solo sull'esecuzione dei test nel modo più efficiente possibile. Per sviluppare i test è stato utilizzato il software open source di Apache, JMeter. Partendo dai semplici load test e concludendo con la soluzione finale di un Performance Test che effettua le seguenti azioni: login, sfoglia il catalogo, visualizza un articolo, aggiunge al carrello, check-out e logout. E' stato poi creato un db "jmeter" su InfluxDB che è stato poi collegato al Test Plan come Listener. Infine, per la configurazione dell'interfaccia che ha permesso di creare una dashboard per visualizzare i risultati dei test, è stata utilizzata la piattaforma GrafanaLabs. Viene creata una dashboard con i grafici e i pannelli utili, collegando il db, ogni pannello/grafico può interagire con i risultati che vengono raccolti dal listener presente sul test e inseriti nel database. Grafana semplifica la creazione delle query giuste e la personalizzazione delle proprietà di visualizzazione in modo da poter creare la dashboard perfetta. In conclusione, la soluzione creata riporta l'efficienza dell'applicazione sviluppata a microservizi che è in grado di reggere ad un alto livello di richieste contemporaneamente e di utenti diversi (grazie alla funzione JMeter che simula gli accessi contemporaneamente o l'inserimento di un file .csv con una lista elevata di utenti). I test sono specifici per ogni azione e permettono di testare con precisione le funzionalità dell'applicazione.
ITA
IMPORT DA TESIONLINE
File in questo prodotto:
File Dimensione Formato  
881145_tesi_lucido_gabriella.pdf

non disponibili

Tipologia: Altro materiale allegato
Dimensione 1.35 MB
Formato Adobe PDF
1.35 MB Adobe PDF

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14240/78916