SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Ähnlich wie Javaday Performance 2009

Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell CodeJOULEHUB GMBH
 
Testing webinar: Testing Automation, Best Practices e strumenti Open a supporto
Testing webinar: Testing Automation, Best Practices e strumenti Open a supportoTesting webinar: Testing Automation, Best Practices e strumenti Open a supporto
Testing webinar: Testing Automation, Best Practices e strumenti Open a supportoEmerasoft, solutions to collaborate
 
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...IBM Italia Web Team
 
Troubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determinationTroubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determinationK-Tech Formazione
 
Agile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEAgile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEK-Tech Formazione
 
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
Ibm elm  smart collaboration del tuo team di sys e sw engineering   19 novembreIbm elm  smart collaboration del tuo team di sys e sw engineering   19 novembre
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembreProfesia Srl, Lynx Group
 
BPM e Cloud: la partnership ideale
BPM e Cloud: la partnership idealeBPM e Cloud: la partnership ideale
BPM e Cloud: la partnership idealeemanuelemolteni
 
iVision Software 2.3
iVision Software 2.3iVision Software 2.3
iVision Software 2.3ivisionweb
 
Presentazione Web Site
Presentazione Web SitePresentazione Web Site
Presentazione Web SiteWeb Site srl
 
B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Srl
 
Dtq4_ita
Dtq4_itaDtq4_ita
Dtq4_itaDTQ4
 
Btech.Net Rel.2.0
Btech.Net Rel.2.0Btech.Net Rel.2.0
Btech.Net Rel.2.0daloisio
 
Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...
Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...
Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...Davide Gallitelli
 
riskart technical presentation
riskart technical presentationriskart technical presentation
riskart technical presentationframar
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20minFabrizio Straccia
 
Test e scrum un caso reale v3.2
Test e scrum   un caso reale v3.2Test e scrum   un caso reale v3.2
Test e scrum un caso reale v3.2Ivan Fioravanti
 
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeSiti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeDiego La Monica
 

Ähnlich wie Javaday Performance 2009 (20)

Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell Code
 
Testing webinar: Testing Automation, Best Practices e strumenti Open a supporto
Testing webinar: Testing Automation, Best Practices e strumenti Open a supportoTesting webinar: Testing Automation, Best Practices e strumenti Open a supporto
Testing webinar: Testing Automation, Best Practices e strumenti Open a supporto
 
Introduzione all'ALM
Introduzione all'ALMIntroduzione all'ALM
Introduzione all'ALM
 
Owasp parte1-rel1.1
Owasp parte1-rel1.1Owasp parte1-rel1.1
Owasp parte1-rel1.1
 
cv Armando Maglio
cv Armando Magliocv Armando Maglio
cv Armando Maglio
 
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
 
Troubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determinationTroubleshooting a server side JVM: fast problem determination
Troubleshooting a server side JVM: fast problem determination
 
Agile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEAgile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPE
 
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
Ibm elm  smart collaboration del tuo team di sys e sw engineering   19 novembreIbm elm  smart collaboration del tuo team di sys e sw engineering   19 novembre
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
 
BPM e Cloud: la partnership ideale
BPM e Cloud: la partnership idealeBPM e Cloud: la partnership ideale
BPM e Cloud: la partnership ideale
 
iVision Software 2.3
iVision Software 2.3iVision Software 2.3
iVision Software 2.3
 
Presentazione Web Site
Presentazione Web SitePresentazione Web Site
Presentazione Web Site
 
B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Progetti di Stage 2009
B Human Progetti di Stage 2009
 
Dtq4_ita
Dtq4_itaDtq4_ita
Dtq4_ita
 
Btech.Net Rel.2.0
Btech.Net Rel.2.0Btech.Net Rel.2.0
Btech.Net Rel.2.0
 
Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...
Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...
Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore cic...
 
riskart technical presentation
riskart technical presentationriskart technical presentation
riskart technical presentation
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
 
Test e scrum un caso reale v3.2
Test e scrum   un caso reale v3.2Test e scrum   un caso reale v3.2
Test e scrum un caso reale v3.2
 
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeSiti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
 

Mehr von Simone Federici

Mehr von Simone Federici (14)

DevOps with Fabric
DevOps with FabricDevOps with Fabric
DevOps with Fabric
 
What is kanban
What is kanbanWhat is kanban
What is kanban
 
Python enterprise vento di liberta
Python enterprise vento di libertaPython enterprise vento di liberta
Python enterprise vento di liberta
 
Java o non java
Java o non javaJava o non java
Java o non java
 
Django in enterprise world
Django in enterprise worldDjango in enterprise world
Django in enterprise world
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo eviti
 
Java VS Python
Java VS PythonJava VS Python
Java VS Python
 
Django per non credenti
Django per non credentiDjango per non credenti
Django per non credenti
 
Opensource Aziende
Opensource AziendeOpensource Aziende
Opensource Aziende
 
Maven Eclipse
Maven EclipseMaven Eclipse
Maven Eclipse
 
Terracotta Torino Javaday
Terracotta Torino JavadayTerracotta Torino Javaday
Terracotta Torino Javaday
 
Jipday Portletjsr168
Jipday Portletjsr168Jipday Portletjsr168
Jipday Portletjsr168
 
Spring20 Javaday
Spring20 JavadaySpring20 Javaday
Spring20 Javaday
 
Terracotta Springmeeting
Terracotta SpringmeetingTerracotta Springmeeting
Terracotta Springmeeting
 

Javaday Performance 2009

  • 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