E' importante avere una misura delle prestazioni di una Web Application, avere un’indicazione sui limiti e sulle potenzialità. Si propone un approccio pratico e “agile” al load & performance test tramite l’infrastruttura Amazon EC2 e il linguaggio Python. La prima per distribuire geograficamente il numero di nodi necessario a soddisfare i requisiti di test. Il secondo per le librerie Fabric e Funkload, rispettivamente per il controllo dei nodi del Cloud e per la produzione e gestione dei test.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Cloud Testing di applicazioni web con Python ed Amazon EC2, by Fabio Falcinelli, Marco Immediato
1. Cloud Testing di applicazioni web
utilizzando Python ed Amazon EC2
Fabio Falcinelli, Marco Immediato
f.falcinelli@k-tech.it , m.immediato@k-tech.it – k-tech
2. Di cosa parleremo
Come pianificare il "Load & Performance Test" di una
applicazione web in maniera semplice e veloce
Cloud Testing
simulare un carico reale
utilizzare la piattaforma cloud Amazon EC2
Sviluppare rapidamente i casi di test con Python
Fabio Falcinelli, Marco Immediato 2
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
3. Caso reale
Certificazione ambiente di produzione
Oltre 1000000 di accessi al giorno
Test end to end
Simulare accessi da diverse località geografiche
Fabio Falcinelli, Marco Immediato 3
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
4. Combinare assieme le tecnologie
Fabio Falcinelli, Marco Immediato 4
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
5. Schieramento...
4 nodi del cloud Amazon EC2
Large Instances
7.5 GB of memory, 4 EC2
Compute Units, 850 GB of
local storage, 64-bit platform
OS Ubuntu 10.04 LTS a 64bit
Fabio Falcinelli, Marco Immediato 5
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
6. Strategia di test...
Studiare il nemico prevedendone le mosse
(registrazione navigazione con funkload)
Distribuire le strategie alle truppe alleate (distribuzione
tramite il master con funkload)
Attacco! (esecuzione dei test funkload)
Fabio Falcinelli, Marco Immediato 6
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
7. ...Fuoco!
"Don't worry if it doesn't work right. If
everything did, you'd be out of a
job."
(Mosher's Law of Software
Engineering)
Fabio Falcinelli, Marco Immediato 7
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
8. Perché Amazon EC2?
Possibilità di scegliere le AMI (Amazon Machine Image) in base
alle esigenze
Caratteristiche hardware (Small, Large, Extra Large instances)
Sistema operativo (Possibilità di importare la propria VM)
Scalabilità del numero dei nodi
Possibilità di scegliere le regioni geografiche da cui avviare i test
Monitoring del consumo di risorse (CPU, Network, Storage)
Fabio Falcinelli, Marco Immediato 8
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
9. Perché Python?
Innanzitutto, ci piace :-)
Rende rapido lo sviluppo software
Dispone di due librerie che fanno proprio al caso
nostro:
Fabric
Funkload
"Good code is its own best documentation."
(Steve McConnell)
Fabio Falcinelli, Marco Immediato 9
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
10. Fabric
Consente di definire ed automatizzare script complessi su
un insieme di macchine remote
Richiede solo la possibilità di accedere in SSH sulle
macchine
Fabio Falcinelli, Marco Immediato 10
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
11. Funkload (FUNctional & LOAD)
Registrazione dei casi di test da navigazione su browser
Esecuzione automatizzata e distribuita del test e rilevazione
delle statistiche
Produzione di un report esaustivo su tutte le risorse visitate
dai test
Fabio Falcinelli, Marco Immediato 11
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
12. Cast
Fabio Falcinelli
Marco Immediato
Executive producer
K-Tech
Special guests
Amazon EC2 - http://aws.amazon.com/ec2/
Funkload - http://funkload.nuxeo.org/
Fabric - http://fabfile.org
Fabio Falcinelli, Marco Immediato 12
f.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech