SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
GridGain

Aumentare scalabilità e performance con l'aiuto
  del Open Source e della Grid Computing

     Alfonso Focareta, Christian Mongillo

                         Pro-netics


          alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                             Javaday Roma III Edizione – 24 gennaio 2009
Introduzione

●   Enterprise Cms?
●   ECMS: un caso di studio
●   Problematiche e troubleshooting
●   GridGain e i vantaggi della grid-computing




              alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                 Javaday Roma III Edizione – 24 gennaio 2009
Enterprise CMS


●   Differenze tra CMS e ECMS :
    –   Molti utenti (più redazioni ognuna con più utenti che
        lavorano in maniera concorrente)
    –   Elevata quantità di contenuti (di archivio e
        pubblicati)
    –   Alimentazione da fonti esterne (base dati esterne)
    –   Automazioni sulle pubblicazioni (schedulare orari
        di pubblicazione e automazione)
    –   Utilizzo maggiore delle risorse hardware

                 alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                    Javaday Roma III Edizione – 24 gennaio 2009
Enterprise CMS

●   Amministrazione intuitiva ed elastica (pronta
    ad accogliere ogni tipologia di contenuti senza
    modifiche)
●   Uptime 365x24
●   Elevato numero di utenti abituali con picchi
    frequenti (molti utenti che in base ad un
    particolare evento consultano una pagina)
●   Meccanismi per il risparmio di banda (gestione
    qualità img, crop e ridimensionamento
    automatizzato)
              alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                 Javaday Roma III Edizione – 24 gennaio 2009
ECMS un caso reale


                         Boxes (nome fittizio)
Tecnologie e framework utilizzati :
●   JMS
●   WICKET FRAMEWORK
●   DOZER
●   XSTREAM
●   QUARTZ
●   SPRING
●   HIBERNATE
●   GRIDGAIN (*)

                   alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                      Javaday Roma III Edizione – 24 gennaio 2009
ECMS un caso reale


            Componenti (Moduli) di Boxes
●   Client (amministrazione per la gestione dei contenuti)
●   Feeder: componente automatizzato per l'importazione
    di dati da fonti esterne (DB, rss ... )
●   Publisher: componente che dall'analisi dei dati immessi
    tramite il client, crea uno snapshot dei siti, e lancia la
    generazione dei contenuti (xml / html ...)
●   Dispatcher: invocato dal Publisher pubblica sui
    webserver di frontend tramite JMS il contenuto generato
    al fine di renderlo visibile agli utenti finali.
               alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                  Javaday Roma III Edizione – 24 gennaio 2009
ECMS un caso reale




alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                   Javaday Roma III Edizione – 24 gennaio 2009
Performance di un ECMS


Le performance di un ECMS sono regolate dai
 seguenti requisiti:
●   Concorrenza di lavorazione (due utenti
    lavorano allo stesso contenuto)
●   Velocità di generazione e pubblicazione del
    contenuto (tenendo presente gli automatismi
    temporali e di “auto” pubblicazione)
●   Alta scalabilità (aumentano i contenuti e i siti ma
    non ram e cpu)
              alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                 Javaday Roma III Edizione – 24 gennaio 2009
Performance di un ECMS

                              Boxes in numeri
●   2 : le macchine di BE
●   3 : anni di sviluppo del progetto
●   5 : sviluppatori impegnati nel progetto
●   6 : le macchine di FE
●   20 : fonti da cui ciclicamente Boxes attinge dati per la
    pubblicazione
●   150 : utenti che attualmente utilizzano
    l'amministrazione(client)
●   400.000 : picco di accessi contemporanei al sito.
●   600.000 : content attualmente salvati presenti in Boxes.
                 alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                    Javaday Roma III Edizione – 24 gennaio 2009
ECMS Troubleshooting


     Problemi di scalabilità nell'architettura di Boxes
●   Publisher : Dovendo per questioni di concorrenza
    questo componente analizzare tutto il ramo dei
    contenuti era esposto a una degradazione delle
    performance inevitabile.
●   Soluzioni possibili :
     –   scalare sull'hardware (soluzione non finale e costosa)
     –   forti modifiche software (refactoring lenti e costosi)
     –   grid computing (dividere i task di analisi tra più
         installazioni del modulo publisher)
                  alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                     Javaday Roma III Edizione – 24 gennaio 2009
Dobbiamo scegliere cosa fare?
      ........il cliente aspetta
  ........il vostro capo aspetta
         ........la risposta è?




 alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                    Javaday Roma III Edizione – 24 gennaio 2009
GridGain

●   Open Source Grid Computing
●   Creato e Supportato da GridGain Systems
    (Community e Professional)
●   Implementazione Map/Reduce
    potente,semplice,divertente


    http://www.gridgain.com/


              alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                 Javaday Roma III Edizione – 24 gennaio 2009
GridGain

●   Grid Computing
     –   Un modo per sfruttare gli ambienti multi-core per
         ottenere scalabilità orizzontale.
●   Map Reduce
     –   Paradigma classico nella grid computing per
         implementare soluzioni scalabili.
     –   Modello di programmazione per processare grandi
         set di dati
     –   Metodologia standard per la parallelizzazione di
         processi di calcolo onerosi
                 alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                    Javaday Roma III Edizione – 24 gennaio 2009
GridGain

●   Map Reduce:
     –   Splittare i nostri task in n “job” parallelizzabili
         raggruppati per chiave.
     –   Mappare i nostri job in unità di processo raggruppate
         per chiave.
     –   Merging dei risultati dei singoli processi di calcolo in
         un risultato globale di task




                   alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                      Javaday Roma III Edizione – 24 gennaio 2009
Map Reduce

                                1.Il task arriva al primo nodo, dove viene
                                splittato in tre job.il primo è
                                self-assigned e viene processato
                                localmente

                                2.il secondo job viene mandato al
                                secondo nodo dove viene processato

                                3.il terzo job viene mandato al terzo nodo
                                dove viene processato

                                4.il risultato del secondo job viene
                                collezionato dal task del primo nodo

                                5.Il risultato del terzo job viene
                                collezionato dal task del primo nodo

                                6.I risultati dei due job dai nodi remoti
                                vengono collezionati insieme a quello
                                ottenuto localmente, ridotti dal task e
                                racchiusi in un unico risultato


alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                   Javaday Roma III Edizione – 24 gennaio 2009
Utilizziamo il Map/Reduce




Il nostro task :
 tagliare a fette un filone di pane da 25 metri per il
                Nutella Javaday Party!!!




            alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                               Javaday Roma III Edizione – 24 gennaio 2009
Utilizziamo il Map/Reduce




Soluzione :
 Dividere il filone in 25 parti, assegnare ogni parte
      ad un “tagliatore” (quelli in prima fila sono
  perfetti). Quando tutti hanno tagliato il loro metro
              di pane raggruppare le fette.



            alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                               Javaday Roma III Edizione – 24 gennaio 2009
Utilizziamo il Map/Reduce




Il nostro task :
  ordinare e raggruppare per colore un mazzo di
    carte francesi per il Javaday Texas Hold'em
                    Tournament.




            alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                               Javaday Roma III Edizione – 24 gennaio 2009
Utilizziamo il Map/Reduce




Soluzione :
    Dividere le carte in 4 mazzetti assegnati a 4
  giocatori (quelli in prima fila...di nuovo :-D) che le
  raggruppano per colore. Aggregare i mazzetti di
         ogni giocatore per colore e passare
             all'ordinamento dei mazzetti.

              alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                 Javaday Roma III Edizione – 24 gennaio 2009
GridGain Features

●   Map/Reduce avanzato
●   Architettura SPI
●   Load Balancing
●   Fault-Tolerance
●   Zero Deployment Model
●   Annotation-Based Grid-Enabling AOP
●   JMX Management e Monitoring


              alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                 Javaday Roma III Edizione – 24 gennaio 2009
GridGain Features

●   Configurazione basata su SPI (Service Provider
    Interface)
     –   Discovery SPI
     –   Topology SPI
     –   Checkpoint SPI
     –   Load Balancing SPI
     –   Collision SPI
     –   Failover SPI
     –   Metrics SPI
                  alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                     Javaday Roma III Edizione – 24 gennaio 2009
GridGain Map/Reduce

●   Api a supporto dell'intera fase di map e reduce
    –   GridTask,GridJob,GridConfiguration,GridFactory
●   Gestione asincrona della fase di reduce
●   Configurazione checkpoint per task con lunghi
    tempi di running




                alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                   Javaday Roma III Edizione – 24 gennaio 2009
Checkpoint

               a questo punto....
....conosciamo i punti deboli di Boxes....
....siamo “esperti” di grid computing....
 ....il cliente sta ancora aspettando....
  ....il capo sta ancora aspettando....
              è il momento di....



      alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                         Javaday Roma III Edizione – 24 gennaio 2009
Do the right thing!


          INTEGRARE ....




alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                   Javaday Roma III Edizione – 24 gennaio 2009
Integrazione

●   Individuiamo i processi sequenziali e ripetitivi del
    modulo publisher
    –   Analisi sequenziale dei siti
    –   Pubblicazione sequenziale dei contenuti modificati
●   Individuiamo l'entry point del nostro algoritmo
    dove poter integrare GridGain (quale processo
    sarà il nostro task?)
●   Modifichiamo l'algoritmo del publisher :
    introduciamo il Map/Reduce e trasformiamo i cicli
    di calcolo in job paralleli
                 alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                    Javaday Roma III Edizione – 24 gennaio 2009
Integrazione

●   Analizziamo e ottimizziamo la nostra griglia
    –   configuriamo la topologia della griglia e scegliamo
        quali nodi effettueranno determinati job.
    –   “pesiamo” il deployment dei job in base alla “potenza
        di calcolo” delle singole macchine. In Boxes esistono
        siti con differente quantità di contenuti e con
        differente necessità di velocità di pubblicazione
         ●   siti leggeri -> raggrupati in un unico job su macchine meno
             performanti
         ●   siti pesanti -> splittati in un unico job sulle macchine più
             performanti
                    alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                       Javaday Roma III Edizione – 24 gennaio 2009
I vantaggi dell'integrazione

●   Performance immediate
     –   abbiamo parallelizzato tutti i processi che erano in una catena
         sequenziale (ora i siti vengono analizzati con letture parallele)
●   Affidabilità e scalabilità
     –   abbiamo distribuito il carico di lavoro fra i nodi della nostra
         griglia (i processi più pesanti verrano presi in carico dalle
         macchine più performanti)
●   Facilità nell'upgrade
     –   usiamo una parte della griglia per garantire la disponibilità
         dell'applicativo mentre aggiorniamo gli altri nodi.


                    alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                       Javaday Roma III Edizione – 24 gennaio 2009
Ottimizzazione graduale

●   L'architettura di GridGain ci permette
    l'ottimizzazione graduale dell'integrazione

●   Ottimizzazione intuitiva grazie alla configurazione
    delle SPI




              alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                                 Javaday Roma III Edizione – 24 gennaio 2009
Contatti


        Grazie per l'attenzione!!!!
      buona Grid Computing a tutti


      alfonso.focareta@pronetics.it
     christian.mongillo@pronetics.it

http://www.pro-netics.it
          alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics
                                             Javaday Roma III Edizione – 24 gennaio 2009

Mais conteúdo relacionado

Semelhante a A real case study : boost scalability and performance with GridGain. Javaday 2009

Javaday Performance 2009
Javaday Performance 2009Javaday Performance 2009
Javaday Performance 2009sera79
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPRAGMA PROGETTI
 
Presentazione Descor-Infocad.FM Forum PA 2014
Presentazione Descor-Infocad.FM  Forum PA 2014Presentazione Descor-Infocad.FM  Forum PA 2014
Presentazione Descor-Infocad.FM Forum PA 2014Paola Desideri
 
d4r^7 - docker alla settima
d4r^7 - docker alla settimad4r^7 - docker alla settima
d4r^7 - docker alla settimaGianni Bombelli
 
Sviluppo di tool di gestione ed analisi di un simulatore Neuro-Fuzzy
Sviluppo di tool di gestione ed analisi di un simulatore Neuro-FuzzySviluppo di tool di gestione ed analisi di un simulatore Neuro-Fuzzy
Sviluppo di tool di gestione ed analisi di un simulatore Neuro-FuzzyStefano Ficcadenti
 
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...Riccardo Solimena
 
Graduation Thesis Presentation
Graduation Thesis PresentationGraduation Thesis Presentation
Graduation Thesis Presentationperceval84
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneRoberto Polillo
 
LinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easierLinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easierDavide Marzioni
 
Cv masili2016finale
Cv masili2016finaleCv masili2016finale
Cv masili2016finaleMario Masili
 
LiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3D
LiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3DLiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3D
LiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3DPaolo Corradeghini
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)K-Tech Formazione
 
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
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015
Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015
Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015CRS4 Research Center in Sardinia
 
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Mirko Mariotti
 

Semelhante a A real case study : boost scalability and performance with GridGain. Javaday 2009 (20)

Javaday Performance 2009
Javaday Performance 2009Javaday Performance 2009
Javaday Performance 2009
 
cv Armando Maglio
cv Armando Magliocv Armando Maglio
cv Armando Maglio
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power System
 
DDive11 - Notes Moon Attack
DDive11 - Notes Moon AttackDDive11 - Notes Moon Attack
DDive11 - Notes Moon Attack
 
Presentazione Descor-Infocad.FM Forum PA 2014
Presentazione Descor-Infocad.FM  Forum PA 2014Presentazione Descor-Infocad.FM  Forum PA 2014
Presentazione Descor-Infocad.FM Forum PA 2014
 
d4r^7 - docker alla settima
d4r^7 - docker alla settimad4r^7 - docker alla settima
d4r^7 - docker alla settima
 
Sviluppo di tool di gestione ed analisi di un simulatore Neuro-Fuzzy
Sviluppo di tool di gestione ed analisi di un simulatore Neuro-FuzzySviluppo di tool di gestione ed analisi di un simulatore Neuro-Fuzzy
Sviluppo di tool di gestione ed analisi di un simulatore Neuro-Fuzzy
 
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
 
Graduation Thesis Presentation
Graduation Thesis PresentationGraduation Thesis Presentation
Graduation Thesis Presentation
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. Introduzione
 
LinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easierLinuxDay2013 - Web2py: make the web easier
LinuxDay2013 - Web2py: make the web easier
 
Cv masili2016finale
Cv masili2016finaleCv masili2016finale
Cv masili2016finale
 
LiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3D
LiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3DLiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3D
LiMapper e LiDAR360 - una panoramica di due nuovi software di modellazione 3D
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)
 
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
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Erlug
ErlugErlug
Erlug
 
Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015
Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015
Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015
 
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
 
Xpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologiaXpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologia
 

A real case study : boost scalability and performance with GridGain. Javaday 2009

  • 1. GridGain Aumentare scalabilità e performance con l'aiuto del Open Source e della Grid Computing Alfonso Focareta, Christian Mongillo Pro-netics alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 2. Introduzione ● Enterprise Cms? ● ECMS: un caso di studio ● Problematiche e troubleshooting ● GridGain e i vantaggi della grid-computing alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 3. Enterprise CMS ● Differenze tra CMS e ECMS : – Molti utenti (più redazioni ognuna con più utenti che lavorano in maniera concorrente) – Elevata quantità di contenuti (di archivio e pubblicati) – Alimentazione da fonti esterne (base dati esterne) – Automazioni sulle pubblicazioni (schedulare orari di pubblicazione e automazione) – Utilizzo maggiore delle risorse hardware alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 4. Enterprise CMS ● Amministrazione intuitiva ed elastica (pronta ad accogliere ogni tipologia di contenuti senza modifiche) ● Uptime 365x24 ● Elevato numero di utenti abituali con picchi frequenti (molti utenti che in base ad un particolare evento consultano una pagina) ● Meccanismi per il risparmio di banda (gestione qualità img, crop e ridimensionamento automatizzato) alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 5. ECMS un caso reale Boxes (nome fittizio) Tecnologie e framework utilizzati : ● JMS ● WICKET FRAMEWORK ● DOZER ● XSTREAM ● QUARTZ ● SPRING ● HIBERNATE ● GRIDGAIN (*) alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 6. ECMS un caso reale Componenti (Moduli) di Boxes ● Client (amministrazione per la gestione dei contenuti) ● Feeder: componente automatizzato per l'importazione di dati da fonti esterne (DB, rss ... ) ● Publisher: componente che dall'analisi dei dati immessi tramite il client, crea uno snapshot dei siti, e lancia la generazione dei contenuti (xml / html ...) ● Dispatcher: invocato dal Publisher pubblica sui webserver di frontend tramite JMS il contenuto generato al fine di renderlo visibile agli utenti finali. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 7. ECMS un caso reale alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 8. Performance di un ECMS Le performance di un ECMS sono regolate dai seguenti requisiti: ● Concorrenza di lavorazione (due utenti lavorano allo stesso contenuto) ● Velocità di generazione e pubblicazione del contenuto (tenendo presente gli automatismi temporali e di “auto” pubblicazione) ● Alta scalabilità (aumentano i contenuti e i siti ma non ram e cpu) alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 9. Performance di un ECMS Boxes in numeri ● 2 : le macchine di BE ● 3 : anni di sviluppo del progetto ● 5 : sviluppatori impegnati nel progetto ● 6 : le macchine di FE ● 20 : fonti da cui ciclicamente Boxes attinge dati per la pubblicazione ● 150 : utenti che attualmente utilizzano l'amministrazione(client) ● 400.000 : picco di accessi contemporanei al sito. ● 600.000 : content attualmente salvati presenti in Boxes. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 10. ECMS Troubleshooting Problemi di scalabilità nell'architettura di Boxes ● Publisher : Dovendo per questioni di concorrenza questo componente analizzare tutto il ramo dei contenuti era esposto a una degradazione delle performance inevitabile. ● Soluzioni possibili : – scalare sull'hardware (soluzione non finale e costosa) – forti modifiche software (refactoring lenti e costosi) – grid computing (dividere i task di analisi tra più installazioni del modulo publisher) alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 11. Dobbiamo scegliere cosa fare? ........il cliente aspetta ........il vostro capo aspetta ........la risposta è? alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 12. GridGain ● Open Source Grid Computing ● Creato e Supportato da GridGain Systems (Community e Professional) ● Implementazione Map/Reduce potente,semplice,divertente http://www.gridgain.com/ alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 13. GridGain ● Grid Computing – Un modo per sfruttare gli ambienti multi-core per ottenere scalabilità orizzontale. ● Map Reduce – Paradigma classico nella grid computing per implementare soluzioni scalabili. – Modello di programmazione per processare grandi set di dati – Metodologia standard per la parallelizzazione di processi di calcolo onerosi alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 14. GridGain ● Map Reduce: – Splittare i nostri task in n “job” parallelizzabili raggruppati per chiave. – Mappare i nostri job in unità di processo raggruppate per chiave. – Merging dei risultati dei singoli processi di calcolo in un risultato globale di task alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 15. Map Reduce 1.Il task arriva al primo nodo, dove viene splittato in tre job.il primo è self-assigned e viene processato localmente 2.il secondo job viene mandato al secondo nodo dove viene processato 3.il terzo job viene mandato al terzo nodo dove viene processato 4.il risultato del secondo job viene collezionato dal task del primo nodo 5.Il risultato del terzo job viene collezionato dal task del primo nodo 6.I risultati dei due job dai nodi remoti vengono collezionati insieme a quello ottenuto localmente, ridotti dal task e racchiusi in un unico risultato alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 16. Utilizziamo il Map/Reduce Il nostro task : tagliare a fette un filone di pane da 25 metri per il Nutella Javaday Party!!! alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 17. Utilizziamo il Map/Reduce Soluzione : Dividere il filone in 25 parti, assegnare ogni parte ad un “tagliatore” (quelli in prima fila sono perfetti). Quando tutti hanno tagliato il loro metro di pane raggruppare le fette. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 18. Utilizziamo il Map/Reduce Il nostro task : ordinare e raggruppare per colore un mazzo di carte francesi per il Javaday Texas Hold'em Tournament. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 19. Utilizziamo il Map/Reduce Soluzione : Dividere le carte in 4 mazzetti assegnati a 4 giocatori (quelli in prima fila...di nuovo :-D) che le raggruppano per colore. Aggregare i mazzetti di ogni giocatore per colore e passare all'ordinamento dei mazzetti. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 20. GridGain Features ● Map/Reduce avanzato ● Architettura SPI ● Load Balancing ● Fault-Tolerance ● Zero Deployment Model ● Annotation-Based Grid-Enabling AOP ● JMX Management e Monitoring alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 21. GridGain Features ● Configurazione basata su SPI (Service Provider Interface) – Discovery SPI – Topology SPI – Checkpoint SPI – Load Balancing SPI – Collision SPI – Failover SPI – Metrics SPI alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 22. GridGain Map/Reduce ● Api a supporto dell'intera fase di map e reduce – GridTask,GridJob,GridConfiguration,GridFactory ● Gestione asincrona della fase di reduce ● Configurazione checkpoint per task con lunghi tempi di running alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 23. Checkpoint a questo punto.... ....conosciamo i punti deboli di Boxes.... ....siamo “esperti” di grid computing.... ....il cliente sta ancora aspettando.... ....il capo sta ancora aspettando.... è il momento di.... alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 24. Do the right thing! INTEGRARE .... alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 25. Integrazione ● Individuiamo i processi sequenziali e ripetitivi del modulo publisher – Analisi sequenziale dei siti – Pubblicazione sequenziale dei contenuti modificati ● Individuiamo l'entry point del nostro algoritmo dove poter integrare GridGain (quale processo sarà il nostro task?) ● Modifichiamo l'algoritmo del publisher : introduciamo il Map/Reduce e trasformiamo i cicli di calcolo in job paralleli alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 26. Integrazione ● Analizziamo e ottimizziamo la nostra griglia – configuriamo la topologia della griglia e scegliamo quali nodi effettueranno determinati job. – “pesiamo” il deployment dei job in base alla “potenza di calcolo” delle singole macchine. In Boxes esistono siti con differente quantità di contenuti e con differente necessità di velocità di pubblicazione ● siti leggeri -> raggrupati in un unico job su macchine meno performanti ● siti pesanti -> splittati in un unico job sulle macchine più performanti alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 27. I vantaggi dell'integrazione ● Performance immediate – abbiamo parallelizzato tutti i processi che erano in una catena sequenziale (ora i siti vengono analizzati con letture parallele) ● Affidabilità e scalabilità – abbiamo distribuito il carico di lavoro fra i nodi della nostra griglia (i processi più pesanti verrano presi in carico dalle macchine più performanti) ● Facilità nell'upgrade – usiamo una parte della griglia per garantire la disponibilità dell'applicativo mentre aggiorniamo gli altri nodi. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 28. Ottimizzazione graduale ● L'architettura di GridGain ci permette l'ottimizzazione graduale dell'integrazione ● Ottimizzazione intuitiva grazie alla configurazione delle SPI alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  • 29. Contatti Grazie per l'attenzione!!!! buona Grid Computing a tutti alfonso.focareta@pronetics.it christian.mongillo@pronetics.it http://www.pro-netics.it alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009