a real case study : boost scalability and performance with gridgain. javaday 2009

29
[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009 GridGain Aumentare scalabilità e performance con l'aiuto del Open Source e della Grid Computing Alfonso Focareta, Christian Mongillo Pro-netics

Upload: christian-mongillo

Post on 01-Nov-2014

444 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

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

[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

GridGain

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

Alfonso Focareta, Christian Mongillo

Pro-netics

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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)

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

[email protected],[email protected] – 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 (*)

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

[email protected],[email protected] – 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.

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

[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

ECMS un caso reale

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

[email protected],[email protected] – 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)

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

[email protected],[email protected] – 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.

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

[email protected],[email protected] – 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)

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

[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

Dobbiamo scegliere cosa fare?........il cliente aspetta

........il vostro capo aspetta........la risposta è?

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

[email protected],[email protected] – 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/

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

[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

● 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

GridGain

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

[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

● 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

GridGain

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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!!!

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

[email protected],[email protected] – 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.

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

[email protected],[email protected] – 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.

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

[email protected],[email protected] – 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.

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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....

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

[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

Do the right thing!

INTEGRARE ....

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – 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.

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

[email protected],[email protected] – 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

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

[email protected],[email protected] – Pro-netics Javaday Roma III Edizione – 24 gennaio 2009

Contatti

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

[email protected]@pronetics.it

http://www.pro-netics.it