Questo seminario su APM (Application Performance Management) è il primo che K-Tech (http://www.k-tech.it/) ha tenuto alla Facoltà di Ingegneria dell’Università Roma TRE, nell’ambito delle attività della Consulta.
Lo scopo è presentare la disciplina dell'APM nei suoi punti principali rispondendo alle 5 'W'.Cosa: in cosa consiste. Perché: la giustificazione delle attività e a cosa serve. Dove: ambienti e scenari. Chi: gli attori e le professionalità coinvolte. Quando: posizione delle azioni nel ciclo di vita del software.
Per conoscere le iniziative di K-Tech seguiteci sul nostro sito: http://www.k-tech.it/
1. APM: W W W W W
La gestione delle performance
delle applicazioni distribuite
Consulta il nostro catalogo formazione
www.javaportal.it | www.k-tech.it corsi@k-tech.it 1
2. Mi presento
• Giuseppe Galli
• Breve CV
– Partner in K-Tech, CTO
– Esperto in APM da 4 anni
– Lavoro su soluzioni Java
nel dominio enterprise
dal 1998
• In K-Tech da 6 anni
g.galli@k-tech.it
www.javaportal.it | www.k-tech.it corsi@k-tech.it 2
3. Agenda
• Presentazione docente – azienda - seminario
• APM: le 5 ‘W’
• Scenario di esempio
• Tecniche: monitoraggio e troubleshooting
• Esempi
• Best Practices & AntiPatterns
• Strumenti
• Conclusioni e Domande
www.javaportal.it | www.k-tech.it corsi@k-tech.it 3
4. Dove il nostro
K-Tech s.r.l. know-how ci ha portato
Siamo una società che opera a 360°
sulla tecnologia Java in ambito Enterprise.
Con forti competenze in:
• Application Performance Management
• Software Performance Engineering
• Configuration Management
• Project Management
• System Administration
• OOAD
• Formazione
• Oracle – IBM – CA|Wily - ..
• Open Source
Servizi in EMEA: MCS, CRC, Business Continuity
24X7 – on site < 24h from call
Certificati ISO 9001 in “Progettazione
ed erogazione di corsi di formazione”
www.javaportal.it | www.k-tech.it corsi@k-tech.it 4
5. La formazione in Azienda
• Formazione continua interna ed esterna
– Abilitante per il Business del cliente
• Portali tecnici su Java e Oracle
– Distribuzione della conoscenza
– Approccio risoluzione problemi
www.javaportal.it | www.k-tech.it corsi@k-tech.it 5
6. I seminari a 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
www.javaportal.it | www.k-tech.it corsi@k-tech.it 6
7. Obiettivi del seminario
Presentare la disciplina
dell'Application Performance Management
nei suoi punti principali
rispondendo alle 5 W:
What, Why, Where, Who, When
www.javaportal.it | www.k-tech.it corsi@k-tech.it 7
8. Raccomandazioni
• Il seminario è a beneficio di tutti
• Ponete le domande secondo le modalità
determinate con il docente
• Ascoltate le risposte a domande non poste da voi:
potrebbero dipanare dubbi ai vostri colleghi se non
a voi stessi!
• Gli interessati a specifici
approfondimenti possono
contattarmi via email
g.galli@k-tech.it
www.javaportal.it | www.k-tech.it corsi@k-tech.it 8
9. APM - le 5 ‘W’
• La gestione delle performance delle
applicazioni distribuite
• APM
– What: in cosa consiste
– Why: giustificazione delle attività, a cosa serve
– Where: dove usarlo, ambienti e scenari
– Who: chi è coinvolto, attori e professionalità
– When: quando usarlo nel ciclo di vita del software
www.javaportal.it | www.k-tech.it corsi@k-tech.it 9
11. …APM: What
• Performance dell’applicazione:
– l’indice qualitativo della capacità del software di
eseguire i compiti per cui è stato progettato
– Velocità, Affidabilità, Uso dell’hardware etc
• Caratteristiche non funzionali del software
– Hanno impatto sulla fruibilità delle funzioni
www.javaportal.it | www.k-tech.it corsi@k-tech.it 11
12. APM: Why…
• Si adotta perché conviene al busine$$:
– Riduzione delle perdite dirette e indirette
– Riduzione dei costi diretti e indiretti
– Abilitazione del business
– Visibilità e Credibilità verso gli utenti
• ITIL (Information Technology Infrastructure Library)
– Raggiungimento degli obiettivi di qualità
– Best practices
Developed by CCTA - UK Government
www.javaportal.it | www.k-tech.it corsi@k-tech.it 12
13. …APM: Why…
• Complementare al
monitoraggio dei
sistemi che fallisce nel
monitorare
l’applicazione nei
sistemi distribuiti
• System thinking
www.javaportal.it | www.k-tech.it corsi@k-tech.it 13
14. …APM Why
Non Disponibile o Lento
• Come pensare al sistema: Disponibile, Operativo
00:00 02:00 04:00 06:00 08:00 10:00 12:00 14:00 16:00 18:00 20:00 22:00 % disponibilità
rispetto SLA
Portale 99%
J2EE Server 99%
AAA Server 99.9%
Database 99.9%
LDAP 99.9%
Network 99.999%
Funzione di Login
Disponibilità: <70%
Login “pings” Percepito come
disponibile al 90 %
www.javaportal.it | www.k-tech.it corsi@k-tech.it 14
15. APM: Where
Mappa Gestibilità/Criticità
2 1
• Ambienti: frequenti cambiamenti
complessi
– Production
– Q/A
– Test
Gestibilità
• Scenari
– Mappa
4 3
Gestibilità/Criticità
– “Fix it later” vs SPE
rari cambiamenti
semplici
Non essenziale Criticità Essenziale
(importanza per la missione aziendale)
www.javaportal.it | www.k-tech.it corsi@k-tech.it 15
16. APM: Who
• APM specialisti (triaging, isolation)
• Coinvolge tutti in azienda, a 360°:
– Manager
– Esperti e Responsabili del Business
– Tecnici ‘SME’ (DEV, DBA, SA, QA ..)
– Operatori Help Desk
• Necessita condivisione tra i diversi gruppi di:
– Strumenti
– Linguaggio
– Procedure
www.javaportal.it | www.k-tech.it corsi@k-tech.it 16
17. APM: When
• Produzione
– Monitoraggio degli SLA
– Risoluzione situazioni problematiche
• Pre-Produzione/Test
– Emulazione della produzione
– Stress test di carico
Analisi Sviluppo Integrazione Q/A PP Produzione
www.javaportal.it | www.k-tech.it corsi@k-tech.it 17
18. Esempio…
• Portale on line compagnia aerea nazionale
• Caratteristiche funzionali
– Ricerche voli (tratte, costi, orari)
– Disponibilità posti
– Acquisto biglietti
– Help Desk
– Programma fidelizzazione cliente
– Integrazione con i partner di una ‘Alliance’
– 24/7
www.javaportal.it | www.k-tech.it corsi@k-tech.it 18
19. …Esempio…
• Caratteristiche tecniche
– Ambiente distribuito
– Tecnologia
• J2EE per il FE
• Legacy per il BE
www.javaportal.it | www.k-tech.it corsi@k-tech.it 19
20. …Esempio
• What
– Monitoraggio, controllo degli SLA, troubleshooting
• Why
– Evitare problemi, 24X7, disponibile 99,998% (target)
• Where
– Zona 1: critico e con frequenti cambi
• Who
– 2 manager, 3 sviluppatori, 4 sistemisti, 2 DBA, 400 Help
Desk, milioni di utenti
• When
– problemi in produzione (blocchi)
www.javaportal.it | www.k-tech.it corsi@k-tech.it 20
21. Tecniche
• L’APM in pratica si declina su due filoni
distinti e con esigenze parzialmente opposte
– Monitoring
• Controllo real time delle applicazioni in produzione
– Incident management
• Gestione degli eventi e delle attività nel caso di
situazioni problematiche
www.javaportal.it | www.k-tech.it corsi@k-tech.it 21
22. Monitoring…
• In Produzione
– Transazioni utenti reali
– Visibilità massima, impatto minimo
• Le metriche
– Generiche e specifiche
– KPI e EI
– Visualizzare i valori (status e allarmi)
– Storico (valori di riferimento e andamenti)
• Qualità della misura
– Campionamento, emissione
www.javaportal.it | www.k-tech.it corsi@k-tech.it 22
23. ...Monitoring..
• Il server JEE JVM
come ‘Hub’, Applicazione Java Enterprise
Richiesta Servlet
centrale al
Session HTTP BE AS
EJB Connector
LDAP
Connector
sistema JSP Entity
EJB JDBC
LDAP
Risposta
Threads EJB JDBC
Pools Pools Pools
Application Server
• Connette gli utenti Memoria I/O Database
ai dati tramite
l’applicazione
www.javaportal.it | www.k-tech.it corsi@k-tech.it 23
24. …Monitoring…
• Le metriche di base:
–Response time Velocità
–Concurrent requests Carico
–Responses per interval Throughput
–Errors per interval Disponibilità
• Altri concetti utili:
–Scalability
–Capacity
–Saturation
–Bottleneck
www.javaportal.it | www.k-tech.it corsi@k-tech.it 24
25. …Monitoring…
• Response time
– Parametro critico
– Intervallo di tempo necessario per il componente
sotto misura ad eseguire la richiesta
– Può essere composto da:
• Tempo di esecuzione (execution)
• Tempo di attraversamento (transfer)
• Tempo di attesa (wait)
Queue Queue
Web Server App Server DB Server
www.javaportal.it | www.k-tech.it corsi@k-tech.it 25
26. …Monitoring…
• Load
– Esprime la pressione verso il componente sotto
misura
– Espresso in numero di richieste per intervallo d
tempo
www.javaportal.it | www.k-tech.it corsi@k-tech.it 26
27. …Monitoring…
• Throughput
– Numero di risposte per intervallo di tempo
– Diverso dal carico (‘load’)
– Punto di Saturazione
www.javaportal.it | www.k-tech.it corsi@k-tech.it 27
29. Esercizio: Setup Monitoring
• Cosa monitorare?
a)Il firewall
b)I web server
c)Gli AS
d)La rete
e)I processi
f) Le Query SQL
g)Le richieste al Mainframe
h)Tutto
www.javaportal.it | www.k-tech.it corsi@k-tech.it 29
30. Esercizio: Metric Monitoring
N secs. N secs.
X
Time (N sec) 1 2
Count=3 Count=?
Avg Resp Time (mSec) 3 Min=2 4 Min=2
Max=4 Max=5
Count=8 Count=?
Concurrent requests 3 Min=1 ? Min=?
Max=5 Max=?
Responses per interval 3 ?
Errors 0 ?
www.javaportal.it | www.k-tech.it corsi@k-tech.it 30
31. Esercizio: Metric Monitoring
N secs. N secs.
X
Time (N sec) 1 2
Count=3 Count=5
Avg Resp Time (mSec) 3 Min=2 4 Min=2
Max=4 Max=5
Count=8 Count=?
Concurrent requests 3 Min=1 ? Min=?
Max=5 Max=?
Responses per interval 3 ?
Errors 0 ?
www.javaportal.it | www.k-tech.it corsi@k-tech.it 31
32. Esercizio: Metric Monitoring
N secs. N secs.
X
Time (N sec) 1 2
Count=3 Count=5
Avg Resp Time (mSec) 3 Min=2 4 Min=2
Max=4 Max=5
Count=8 Count=9
Concurrent requests 3 Min=1 2 Min=2
Max=5 Max=4
Responses per interval 3 ?
Errors 0 ?
www.javaportal.it | www.k-tech.it corsi@k-tech.it 32
33. Esercizio: Metric Monitoring
N secs. N secs.
X
Time (N sec) 1 2
Count=3 Count=5
Avg Resp Time (mSec) 3 Min=2 4 Min=2
Max=4 Max=5
Count=8 Count=9
Concurrent requests 3 Min=1 2 Min=2
Max=5 Max=4
Responses per interval 3 5
Errors 0 1
www.javaportal.it | www.k-tech.it corsi@k-tech.it 33
34. Incident Management
• Incident
– Avviene in produzione(!#?!)
• Impatta il livello di servizio e la user experience
– Fondamentale la rapidità di reazione
• Metriche di tempi di ripristino e di soluzione (ITIL)
– La sua gestione è centrale tra l’IT e i clienti
• Tecniche e processi per minimizzarne gli effetti
• Il troubleshooting
– Nel metodo è un’azione a carico dell’IT
www.javaportal.it | www.k-tech.it corsi@k-tech.it 34
35. Troubleshooting…
• Il metodo
– indica cosa fare, quando e da chi
• 5 passi (4+1)
– Detect & Verify
– Triage
– Root Cause Identification & ‘Drill down’
– Develop a theory & Document
– Solve
www.javaportal.it | www.k-tech.it corsi@k-tech.it 35
36. …Troubleshooting…
1. Detect & Verify
2. Triage
3. Root Cause Identification
I fase: 4. Develop a theory & Document
5. Solve
– Individuare il problema
– Verificarlo
– Individuato tramite l’Help Desk
– Avviso automatico
– Lamentele utenti
www.javaportal.it | www.k-tech.it corsi@k-tech.it 36
37. …Troubleshooting…
1. Detect & Verify
2. Triage
3. Root Cause Identification
II fase: 4. Develop a theory & Document
5. Solve
– Riconoscere le priorità
– Selezionare tra i diversi avvisi
– Filtrare i segnali/dati
– Assegnare i(l) task agli esperti (SME)
www.javaportal.it | www.k-tech.it corsi@k-tech.it 37
38. …Troubleshooting…
1. Detect & Verify
2. Triage
3. Root Cause Identification
4. Develop a theory & Document
• III fase: 5. Solve
– Separare gli effetti dalle cause
– Drill down a livello di componente, o metodo
– NB: Monitoraggio
• Non intervenire qui per risolvere! Interventi Analisi
www.javaportal.it | www.k-tech.it corsi@k-tech.it 38
39. …Troubleshooting…
1. Detect & Verify
2. Triage
3. Root Cause Identification
4. Develop a theory & Document
• IV fase: 5. Solve
– Sviluppare un modello
• Semplice
• Causa ed effetto
• Comprensibile anche dai manager non tecnici
– Utilizzando i dati
• Il modello non deve contraddirsi
• Presentare confronto con valori normali
www.javaportal.it | www.k-tech.it corsi@k-tech.it 39
40. …Troubleshooting…
1. Detect & Verify
2. Triage
3. Root Cause Identification
4. Develop a theory & Document
• V fase: 5. Solve
– La risoluzione del problema originario
• E’ a carico di un gruppo specifico dell’IT
• Non fa parte dei compiti dello specialista APM
• Può far venire fuori altri problemi sommersi
Monitoraggio
– E dopo?
Interventi Analisi
www.javaportal.it | www.k-tech.it corsi@k-tech.it 40
41. …Troubleshooting
1. Detect & Verify
2. Triage
3. Root Cause Identification
4. Develop a theory & Document
• V fase: 5. Solve
– La risoluzione del problema originario
• E’ a carico di un gruppo specifico dell’IT
• Non fa parte dei compiti dello specialista APM
• Può far venire fuori altri problemi sommersi
Monitoraggio
– E dopo?
Interventi Analisi
www.javaportal.it | www.k-tech.it corsi@k-tech.it 41
42. Esempi (di fantasia ma non troppo..)
• No APM
1. Il servizio è lento e qualcuno si lamenta (100%)
2. Telefonata dall’Help Desk: “no connessione” (?)
3. Telefonata dall’Help Desk: “no login” (?)
4. Una macchina dello storage senza alimentazione (?)
• APM
1. Alcune funzioni non vanno (25% transazioni)
2. Segnalazione su allocazione Memoria JVM
www.javaportal.it | www.k-tech.it corsi@k-tech.it 42
43. Esempio 1
• Il servizio è giù
– 100% delle transazioni Che fare?
– Nessuno si lamenta
•Tecnico
a)Controllare i log dei server •Utente
•Dipendente
b)Restart dei server
•Responsabile Business
c) Connettersi al sito con il browser •
Manager
d)Meditare / Pregare / Sperare
e)Nulla, i server sono su
f) Prendi la macchina e vai in agenzia viaggi
www.javaportal.it | www.k-tech.it corsi@k-tech.it 43
44. Esempio 2
• Il servizio è lento
– 100% delle transazioni Che fare?
– Qualcuno si lamenta
•Tecnico
•Utente
a)Controllare i log dei server •Dipendente
b)Restart degli application server JEE •Responsabile Business
c) Connettersi al sito con il browser •Manager
d)Meditare / Pregare / Sperare
e)Nulla, si aspetta che il batch sul DB finisca
f) Disdici l’abbonamento e cambi fornitore
www.javaportal.it | www.k-tech.it corsi@k-tech.it 44
45. Esempio 3
• l’Help Desk: “no connessione”
– impatto %?
– chi si lamenta? Che fare?
•Tecnico
a)Controllare i log dei server •Utente
b)Restart degli application server JEE •Dipendente
•Responsabile Business
c) Connettersi al sito con il browser
•Manager
d)Meditare / Pregare / Sperare
e)Nulla, giustificando: “è colpa della rete”
www.javaportal.it | www.k-tech.it corsi@k-tech.it 45
46. Esempio 4
• l’Help Desk: “no login”
– Impatto %?
Che fare?
•Tecnico
a)Controllare i log dei server LDAP •Utente
b)Restart degli application server JEE •Dipendente
c) Connettersi al sito con il browser •Responsabile Business
d)Meditare / Pregare / Sperare •Manager
e)Nulla, giustificando: “è colpa della rete”
www.javaportal.it | www.k-tech.it corsi@k-tech.it 46
47. Esempio 5 – con APM
• Alcune funzioni non vanno
–Impatto: 25% transazioni
–Funzioni •Tecnico
•Lista dei viaggi effettuati •Utente
•Calcolo dei punti sulla fidelity card •Dipendente
•Responsabile Business
•Manager
• Detect & Verify
• Triage
• Root Cause Identification & ‘Drill down’
• Develop a theory & Document
www.javaportal.it | www.k-tech.it corsi@k-tech.it 47
48. Esempio 6 – con APM
• Segnalazione su allocazione Memoria JVM
–Impatto: potenzialmente il 25% transazioni
–Azione: …?...
•Tecnico
JVM HEAP (KB) •Utente
•Dipendente
•Responsabile Business
•Manager
•Server1
•Server2
Time (ms)
•Server3
•server4
www.javaportal.it | www.k-tech.it corsi@k-tech.it 48
50. …Troubleshooting…
• Consistent problems
– Sono sempre presenti
– Indipendenti dal traffico utente e dall’ hardware
– Non si risolvono con un restart
www.javaportal.it | www.k-tech.it corsi@k-tech.it 50
51. …Troubleshooting…
• Progressive problems
– Criticità aumenta nel tempo
– Impossibile ripristinare la situazione iniziale
– Il server deve essere riavviato
www.javaportal.it | www.k-tech.it corsi@k-tech.it 51
52. …Troubleshooting…
• Sudden problems
– Problemi improvvisi
– Non sono annunciati
– Comportamento binario, non lineare
www.javaportal.it | www.k-tech.it corsi@k-tech.it 52
53. …Troubleshooting…
• Sporadic errors
– Si presentano irregolarmente
– Riguardano specifici utenti o funzioni
– Non risultano dalle misure medie
www.javaportal.it | www.k-tech.it corsi@k-tech.it 53
54. …Troubleshooting
• Periodic problems
– Avvengono periodicamente
– Il sistema riprende a funzionare automaticamente
www.javaportal.it | www.k-tech.it corsi@k-tech.it 54
55. Best practices
• Dimensionare lo sforzo sulla base della
criticità dell’applicazione
• Condividere un glossario
• Coinvolgere il management
• Monitoring…
• Troubleshooting…
www.javaportal.it | www.k-tech.it corsi@k-tech.it 55
56. Monitoring B.P.
• Prefissare la % di risorse da dedicare al
monitoraggio
• Misurare tutto e sempre
• Definire gli indicatori ASAP (KPI, EI, QPI )
• Definire la baseline ASAP
• Osservare i valori EI rispetto alle soglie
• Registrare gli andamenti (trends), non solo i
valori assoluti
www.javaportal.it | www.k-tech.it corsi@k-tech.it 56
57. Troubleshooting B.P.
• Distinguere tra gli effetti e le cause
• Basare le affermazioni sulle evidenze
numeriche
• Utilizzare il modello più semplice possibile
• Evidenziare le criticità principali (MUI)
• Mostrare come opzionali (preferred) le
criticità minori
• Verificare sempre le differenze dopo le
modifiche
www.javaportal.it | www.k-tech.it corsi@k-tech.it 57
58. Anti Patterns
• Seguire ‘le voci’
– I problemi vanno prima identificati e verificati
• Intervenire subito dopo l’individuazione
– mai farlo senza analisi
• Aspettare un ticket aperto dagli utenti per
intervenire
– Agire invece di reagire
• Pensare di risolvere riavviando il server
www.javaportal.it | www.k-tech.it corsi@k-tech.it 58
60. Conclusioni
• L’ambito lavorativo dell’APM
– È abilitante per i sistemi
– Affrontare situazioni problematiche per
far tornare le persone a sorridere
– Necessita delle 3 ‘P’
Prodotti - Procedure – Persone
www.javaportal.it | www.k-tech.it corsi@k-tech.it 60
61. Riferimenti
• APM on wikipedia
– http://en.wikipedia.org/wiki/Application_Performance_Management
• ITIL on wikipedia (italiano)
– http://it.wikipedia.org/wiki/ITIL
• Systems thinking
– http://www.systems-thinking.org
• CA|Wily educational services
– http://www.ca.com/us/education/content.aspx?cid=176408
• Java Italian Portal
– http://www.javaportal.it/
• CAPAF
– http://www.capaf.ch/
www.javaportal.it | www.k-tech.it corsi@k-tech.it 61
63. Ringraziamenti
• Grazie alla Facoltà di Ingegneria
dell’Università Roma TRE
• Mara Marzocchi
• K-Tech people
/.*/@k-tech.it
Ing. Giuseppe Galli
K-Tech srl Consulta il nostro catalogo formazione
g.galli@k-tech.it
www.javaportal.it | www.k-tech.it corsi@k-tech.it 63