Nel programma tecnico del Javaday Roma III, Serafina Rocca e Simone Federici, sono stati relatori dello speech “Prevedere il comportamento delle applicazioni Web in produzione”.
Nell’intervento è stato presentato il metodo di certificazione, basato sulle discipline SPE/APM e ideato da K-Tech (http://www.k-tech.it), per prevedere e controllare le performance dei sistemi in produzione.
Prevedere il comportamento delle applicazioni Web in produzione
1. Università degli studi Roma Tre
Sabato 24 Gennaio 2009
Prevedere il comportamento
delle applicazioni Web
in produzione
Serafina Rocca Simone Federici
SPE Engineer APM Specialist
s.rocca@k-tech.it s.federici@k-tech.it
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
2. K-Tech all'università Roma3
Il ciclo di seminari K-Tech a Roma3 su APM
Il 12 marzo 2009
● APM: WWWWW
(What, Why, Where, Who, When)
● Una notte in ufficio: ore 08:00 a.m. risolto!
● APM: Metodologia e strumenti
● Performance (anti)patterns in enterprise architectures
● Troubleshooting methodologies in distributed systems
● Agile APM, an heretic's approach to SPE
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
3. Obiettiv0
Presentare il metodo di certificazione, basato sulle
discipline SPE/APM e ideato da K-Tech, per
prevedere e controllare le performance dei
sistemi in produzione.
Il metodo può essere applicato sia con l'ausilio di
software di monitoraggio e di stress test
commerciali, sia con software open source.
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
4. Target e Motivazioni del Talk
Il target:
● I Manager delle Operation
● Gli Architetti
● I Responsabili delle linee di Business (LOB Owner)
● Aspiranti Software Performance Engineers
Le motivazioni:
● Condividere la nostra esperienza in un contesto di
professionisti e accademici.
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
5. Che cosa si intende per performance?
Le possiamo misurare?
Una Ferrari che si spegne a ogni semaforo, ha
buone peformance?
E se l'aspettativa del cliente è il basso consumo di
carburante?
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
6. Ruoli e Strumenti
● Analista: studia i pattern di utilizzo del sistema
utilizzando strumenti statistici, file di log, etc.
● SPE Engineer: ha la conoscenza di cosa fare
durante la certificazione
● APM Specialist: conosce il metodo e gli
strumenti per il monitoraggio
● DBA, System Administrator, Architect
Ogni figura ha il proprio set di strumenti
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
7. Architettura
ambiente di produzione
Web Servers AS Frontends AS Backends
Load balancer
Internet
Sistema distribuito
Sistema Complesso
Scalabilità
Alta Affidabilità Databases/Storage/EIS
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
8. Monitoraggio Produzione:
approccio 'System Thinking'
Web Servers AS Frontends AS Backends
Load balancer
Internet
I dati di performance
presi dalle transazioni
Databases/Storage/EIS
degli utenti reali
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
9. Monitoraggio:
Ambiente di Test
Web Servers AS Frontends AS Backends
Load balancer
Cluster di client per I dati di performance
gli stress test presi nella fase di test
Databases/Storage/EIS
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
10. Necessità del cliente
● Servizi online con alta visibilità (siti istituzionali..)
● Servizi online critici per il business ( e-banking, e-
commerce..)
● Servizi interni (email, LDAP, intranet, …)
● Dimensionamento ottimale delle architetture
● Rispetto SLA / Requisiti non funzionali
– tempi di risposta medi (On line)
– 'finestre' temporali (Batch)
– 99.9999% di affidabilità
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
11. SPE
Cos'è il Software Performance Engineering?
Già dalla fase di disegno del software, si da una forte
importanza alla progettazione, implementazione dei
requisiti non funzionali, o meglio alle performance.
Ci da le basi teoriche e gli strumenti per identificare i
classici problemi architetturali.
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
12. Processo APM
Sysadmin
Service
Desk
DBA
Processo
Manager di Sviluppo
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
13. Processo APM
Analisi
In produzione
Configurazione/tuning
Presentazione dei risultati applicazioni di Monitoring
Analisi dei dati Stress Test
in ambiente di test Load Test
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
14. Processo di Certificazione
Cliente
+ Applicazione/i
+ SPE
+ APM
+ Esperienza
+ Metodo
=
Processo di certificazione
Garantire la qualità di una applicazione
prevedendo come si comporterà sotto un carico stimato.
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
15. Definizione degli obiettivi
Espressi in funzione delle aspettative
Esempio:
– Utenti connessi
– Processi eseguiti
– Tempi di risposta
–…
Ossia tutte le possibili metriche osservabili
dall'utilizzatore del servizio/software
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
16. Analisi del sistema
Cosa?
–Dati statistici di accesso all'applicazione
–Traffico di rete
–Dati provenienti dal monitoraggio dei componenti applicativi
Perché?
–La distribuzione temporale del
carico sull'applicazione
–Funzionalità più utilizzate
–Eventi critici
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
17. Metriche da Monitorare
Tempi di risposta
Invocazioni concorrenti
Invocazioni per secondo
Invocazioni andate a buon fine
Numero di invocazioni nella stessa transazione
Risorse in uso
Latenza di rete
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
18. Fase di test
Progettazione
Identificazione degli use case critici
Creazione dei test case, schedulazioni e script di automazione
Esecuzione
Esecuzione dei test con carichi diversi
Monitoraggio e registrazione dei risultati
Validazione
Stima dell'errore
Ripetibilità dei test
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
19. Identificazione delle KPI
I principali indicatori delle performance sono da
individuare nella fase di stress test che emula
una situazione di traffico potenzialmente
pericolosa per il servizio:
Throughput dei componenti
(Servlet,Web Services,... )
Response Time (EJB, SQL,...)
Risorse Usate (CPU, Memoria, Banda ...)
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
20. Output
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
21. Validazione dei risultati
Gli esiti della certificazione devono essere
compatibili con le osservazioni registrate in
produzione
Devono essere presentati in un documento che
certifica i limiti del sistema, documenta le azioni
fatte e giustifica le conclusioni.
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
22. Risultati tipici
Batch
Identificazione dei colli di bottiglia
Determinazione del livello di parallelismo minimo
Online
Determinazione delle risorse minime necessarie
(dimensione del cluster, numero di connessione al DB)
Identificazione dei pattern problematici
Impatto disattenzione Best Practices
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
23. Generazione Mensile della
Fattura Elettronica
Scenario: Contratti da fatturare aumentano di un ordine di grandezza. Hardware maggiorato.
Come assicurare che le performance del batch permettano di rispettare la finestra di tempo a
disposizione?
Stabiliti gli obiettivi di performance KPI: fatture/ora
Punto di partenza: 16 giorni
Monitorati e individuati i colli di bottiglia:
Opencursor su Mainframe, Attività Query (commits, tempi, invocazioni), Eccessivo Log, ecc..
Aumentato il parallelismo (sino al minimo necessario).
Tempi: 2 settimane (elapsed)
Punto di arrivo: 5 ore
Successo: Previsti con precisione i tempi del batch in produzione.
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
24. National Utility
Web Site
Scenario: Picchi di carico massimo ad opera degli utenti. Sistema instabile, crash sistematici
all'aumentare dele richieste. (vedi pagina seguete)
Hardware potenziato.
Punto di partenza: 10.218 unique browser/h, 124.000 page views/h
Obiettivo: Architettura che permettesse un throughput doppio rispetto al limite attuale.
Individuata una migliore configurazione FE – BE per non dare disservizio.
Cambiamento architetturale database e Application Servers.
Aumentata la cache sul FE (cosa registrare e per quanto tempo)
Indicazione sulle modifiche da effettuare sul BE (quali moduli sono problematici)
Tempi: 3 settimane (elapsed)
Punto di arrivo: 7 gennaio, 18.000 unique browser/h e 207.000 page view/h
Successo: registrati 273 Gb di banda giornalieri (record contro i 109 precedenti)
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
25. National Utility
Web Site
Throughput: Situazione Iniziale
P a g in e V i s u a liz z a t e U te n ti
140000
124.000 page views/h 10.000 unique browser/h
12000
120000
10000
100000
8000
80000
6000
1 0 /1 2 /0 7 1 0 /1 2 /0 7
60000
4000
40000
2000
20000
0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
26. National Utility
Web Site
Throughput: Situazione Attuale
(working in progress)
P a g in e V is u a liz z a t e U te n ti
207.000 page views/h 18.000 unique browser/h
250000 18000
16000
200000 14000
12000
150000
10000
0 7 /0 1 /0 9 8000 0 7 /0 1 /0 9
100000
6000
50000 4000
2000
0 0
1 3 5 7 9 11 13 15 17 19 21 23 1 3 5 7 9 11 13 15 17 19 21 23
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
27. Tools
Monitoraggio: Test:
– Introscope Wily CA – Jmeter
– IBM Tivoli – Grinder
– Mercury Interactive – Load Runner
– Quest
– Veritas
– JXInsight
– Awstats
– Nagios
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
28. Ringraziamenti
Riferimenti
Un ringraziamento speciale a Giuseppe Galli, principale esperto di
performance in tutta EMEA
http://www.k-tech.it
http://www.javaportal.it
http://www.perfeng.com/
http://www.systems-thinking.org/
Connie U. Smith & Lloyd G. Williams (2005), Performance
Solutions: A Practical Guide to Creating Responsive, Scalable
Software (Addison-Wesley Object Technology Series)
Connie U. Smith,(1990) Performance Engineering of Software
Systems, 1st Edition
Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009
29. Simone Federici s.federici@k-tech.it K-Tech
Serafina Rocca s.rocca@k-tech.it K-Tech
Javaday Roma III Edizione – 24 gennaio 2009