GridGainAumentare scalabilità e performance con laiuto  del Open Source e della Grid Computing     Alfonso Focareta, Chris...
Introduzione●   Enterprise Cms?●   ECMS: un caso di studio●   Problematiche e troubleshooting●   GridGain e i vantaggi del...
Enterprise CMS●   Differenze tra CMS e ECMS :    –   Molti utenti (più redazioni ognuna con più utenti che        lavorano...
Enterprise CMS●   Amministrazione intuitiva ed elastica (pronta    ad accogliere ogni tipologia di contenuti senza    modi...
ECMS un caso reale                         Boxes (nome fittizio)Tecnologie e framework utilizzati :●   JMS●   WICKET FRAME...
ECMS un caso reale            Componenti (Moduli) di Boxes●   Client (amministrazione per la gestione dei contenuti)●   Fe...
ECMS un caso realealfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics                              ...
Performance di un ECMSLe performance di un ECMS sono regolate dai seguenti requisiti:●   Concorrenza di lavorazione (due u...
Performance di un ECMS                              Boxes in numeri●   2 : le macchine di BE●   3 : anni di sviluppo del p...
ECMS Troubleshooting     Problemi di scalabilità nellarchitettura di Boxes●   Publisher : Dovendo per questioni di concorr...
Dobbiamo scegliere cosa fare?      ........il cliente aspetta  ........il vostro capo aspetta         ........la risposta ...
GridGain●   Open Source Grid Computing●   Creato e Supportato da GridGain Systems    (Community e Professional)●   Impleme...
GridGain●   Grid Computing     –   Un modo per sfruttare gli ambienti multi-core per         ottenere scalabilità orizzont...
GridGain●   Map Reduce:     –   Splittare i nostri task in n “job” parallelizzabili         raggruppati per chiave.     – ...
Map Reduce                                1.Il task arriva al primo nodo, dove viene                                splitt...
Utilizziamo il Map/ReduceIl nostro task : tagliare a fette un filone di pane da 25 metri per il                Nutella Jav...
Utilizziamo il Map/ReduceSoluzione : Dividere il filone in 25 parti, assegnare ogni parte      ad un “tagliatore” (quelli ...
Utilizziamo il Map/ReduceIl nostro task :  ordinare e raggruppare per colore un mazzo di    carte francesi per il Javaday ...
Utilizziamo il Map/ReduceSoluzione :    Dividere le carte in 4 mazzetti assegnati a 4  giocatori (quelli in prima fila...d...
GridGain Features●   Map/Reduce avanzato●   Architettura SPI●   Load Balancing●   Fault-Tolerance●   Zero Deployment Model...
GridGain Features●   Configurazione basata su SPI (Service Provider    Interface)     –   Discovery SPI     –   Topology S...
GridGain Map/Reduce●   Api a supporto dellintera fase di map e reduce    –   GridTask,GridJob,GridConfiguration,GridFactor...
Checkpoint               a questo punto........conosciamo i punti deboli di Boxes........siamo “esperti” di grid computing...
Do the right thing!          INTEGRARE ....alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics     ...
Integrazione●   Individuiamo i processi sequenziali e ripetitivi del    modulo publisher    –   Analisi sequenziale dei si...
Integrazione●   Analizziamo e ottimizziamo la nostra griglia    –   configuriamo la topologia della griglia e scegliamo   ...
I vantaggi dellintegrazione●   Performance immediate     –   abbiamo parallelizzato tutti i processi che erano in una cate...
Ottimizzazione graduale●   Larchitettura di GridGain ci permette    lottimizzazione graduale dellintegrazione●   Ottimizza...
Contatti        Grazie per lattenzione!!!!      buona Grid Computing a tutti      alfonso.focareta@pronetics.it     christ...
Upcoming SlideShare
Loading in …5
×

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

462 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
462
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. GridGainAumentare scalabilità e performance con laiuto 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. 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. 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. 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. 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. 6. ECMS un caso reale Componenti (Moduli) di Boxes● Client (amministrazione per la gestione dei contenuti)● Feeder: componente automatizzato per limportazione di dati da fonti esterne (DB, rss ... )● Publisher: componente che dallanalisi 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. 7. ECMS un caso realealfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  8. 8. Performance di un ECMSLe 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. 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 lamministrazione(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. 10. ECMS Troubleshooting Problemi di scalabilità nellarchitettura 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 sullhardware (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. 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. 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. 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. 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. 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 risultatoalfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  16. 16. Utilizziamo il Map/ReduceIl 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. 17. Utilizziamo il Map/ReduceSoluzione : 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. 18. Utilizziamo il Map/ReduceIl nostro task : ordinare e raggruppare per colore un mazzo di carte francesi per il Javaday Texas Holdem Tournament. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  19. 19. Utilizziamo il Map/ReduceSoluzione : 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 allordinamento dei mazzetti. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  20. 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. 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. 22. GridGain Map/Reduce● Api a supporto dellintera 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. 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. 24. Do the right thing! INTEGRARE ....alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  25. 25. Integrazione● Individuiamo i processi sequenziali e ripetitivi del modulo publisher – Analisi sequenziale dei siti – Pubblicazione sequenziale dei contenuti modificati● Individuiamo lentry point del nostro algoritmo dove poter integrare GridGain (quale processo sarà il nostro task?)● Modifichiamo lalgoritmo 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. 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. 27. I vantaggi dellintegrazione● 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à nellupgrade – usiamo una parte della griglia per garantire la disponibilità dellapplicativo mentre aggiorniamo gli altri nodi. alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009
  28. 28. Ottimizzazione graduale● Larchitettura di GridGain ci permette lottimizzazione graduale dellintegrazione● 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. 29. Contatti Grazie per lattenzione!!!! buona Grid Computing a tutti alfonso.focareta@pronetics.it christian.mongillo@pronetics.ithttp://www.pro-netics.it alfonso.focareta@pronetics.it,christian.mongillo@pronetics.it – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

×