SlideShare a Scribd company logo
1 of 39
Download to read offline
Università degli Studi di Napoli Federico II
Dipartimento di Ingegneria Elettrica e Tecnologie dell'Informazione
TESI DI LAUREA
PROGETTAZIONE E REALIZZAZIONE
DI AGENTI DI MONITORAGGIO PER SISTEMI DISTRIBUITI
Design and Development of Monitoring Agents for Distributed Systems
Tutor Accademico: Candidato: Matteo Vettosi
Prof: Alessandro de Luca Matricola: N86000799
Tutor Aziendale:
Gianluca Della Corte
Anno Accademico 2013-2014
Cosa è stato richiesto
● Completamento di un agente per Hadoop
o Sviluppo delle parti mancanti
o Refactor delle parti già esistenti
o Aumento Performance
● Realizzazione di un agente per CouchDB
o Studio del dominio di applicazione
o Scelta delle tecnologie
o Realizzazione dell’interfaccia grafica
Cos’è un agente di monitoraggio?
“Servizio per il collezionamento di metriche di performance e di
gestione degli allarmi per sistemi operativi/applicazioni/transazioni”
Vari tipi:
● OS Agent
● Energy Management Agent
● Generic Agent
● …
Noi ci interesseremo di Generic Agents
Generic Agents
● Eseguibile principale
● XML per la definizione dell’implementazione
o Molto corposo
o Generabile e manipolabile tramite Agent Builder
● Files per la configurazione a runtime
Come si istanzia un
Generic Agent?
1. Definizione e organizzazione dei DataSource
2. Eventuale implementazione degli stessi
3. Realizzazione dell’interfaccia grafica (APMUI)
I DataSource
Letteralmente: Sorgente dei dati
Diversi tipi supportati:
● Windows Process
● SOAP
● JDBC
● Socket
● Java API
● …
Non sempre ovvio quale utilizzare
L’APMUI
“Scritta” in JSON (linguaggio proprietario)
Realizzabile tramite:
● Scrittura a mano
● Tool grafico integrato nell’Agent Builder
● … Entrambe le cose
Hadoop
Framework Java di supporto allo sviluppo di
applicazioni distribuite.
Garantisce:
● Affidabilità: Problemi gestiti a livello applicativo
● Scalabilità: Nuovi nodi riconosciuti
automaticamente a runtime
Ecosistema di Hadoop
Componenti Principali
● Hadoop Common: Strato software di supporto
● HDFS: File system distribuito per un efficace
accesso ai file
● MapReduce: Famoso algoritmo per la
parallelizzazione e distribuzione automatica del
lavoro
● YARN: Framwork per la gestione di risorse del
cluster
Agente per Hadoop
Cosa c’era già?
● Definizione dei Datasource
● Implementazione delle tecniche di raccolta
● API Java per il calcolo dello stato di salute del
cluster
● Interfaccia grafica
Funzionamento
Plugin
Cluster
Data
Agent
Plugin Java
● Utilizza la libreria “Metrics2” di Hadoop
● Invia le metriche in formato XML tramite Socket
● Apertura e chiusura di un canale di connessione per ogni
singola metrica raccolta
● Scrittura integrale di essa sul file di log di tutte le componenti
di Hadoop
Organizzazione DataSource
● Utilizzo di sottonodi
● Utilizzo di un Custom Provider
Custom Provider
Mancava:
● Implementazione del calcolo della salute
● Utilizzo del log
● Attenta gestione della concorrenza
Modifiche apportate al Plugin
● Aggiunti controlli sui tipi per cast espliciti
● Sostituiti array con mappe e utilizzati algoritmi
più efficienti
● Ottimizzata la scrittura sui log
● Ottimizzato l’utilizzo di banda e computazione
lato server
Modifiche di configurazione
● Creazione di un agente “fantoccio”
o Estrazione delle configurazioni XML per il
custom provider
o Recupero dei javaLauncher.sh/bat
● Review dei launcher
o Generazione di log
o Fix per la variabile d’ambiente JAVA_HOME
o Inclusione delle librerie non previste
● Bugs, bugs, bugs...
Modifiche al Custom Provider
● Implementata logica di determinazione salute
● Aggiunta attività di logging conforme agli
standard aziendali
● Gestita la concorrenza tramite
ConcurrentHashMap e variabili volatile
● Fixati crash dovuti , ad esempio, a mancati
controlli sui tipi
Grafica dei valori calcolati
CouchDB
● Database non relazionale
o Documento come elemento fondamentale
o JSON per l’organizzazione dei dati
● Scritto in Erlang
● Lettura e scrittura concorrente grazie a MMVC
● Gestito interamente via HTTP
Accesso concorrente
Gestione dei conflitti
Agente per CouchDB
Specifiche iniziali:
● Coerenza grafica con l’agente per MongoDB
● Implementazione dell’agente per un instanza
di CouchDB (tralascio del clustering)
Si è deciso in totale autonomia di predisporre
l’agente per monitorare istanze multiple
Funzionamento dell’Agente
Istanze di
CouchDB
Data
Data
Agente per
CouchDB
While they needs...
Nothing!
Just need to know
where
instances are and
login
credentials.
Host Port
Host Port
The agent will take care
of all the rest.
DataSources
Da DOVE prendere le metriche?
● http://indirizzo.ip:port/_stats
● http://indirizzo.ip:port/_active_tasks
● http://indirizzo.ip:port/_all_dbs &
http://indirizzo.ip:port/dabataseName
DataSources
COME collezionare queste metriche?
● Socket
● JavaScript
● Java
Class Diagram Custom Provider
APMUI
APMUI
APMUI
APMUI
APMUI
APMUI
APMUI
APMUI
APMUI
Tecnologie Utilizzate
Le tecnologie impiegate durante il lavoro sono
dunque state:
● Java
o Generics
o Java Collection Framework
o Multi-Thread
o Design Patterns
o HTTP Socket Connections
● JavaScript
● Bash/Batch
● JSON
● XML
● SVN
Stato attuale e sviluppi futuri
Gli agenti necessiteranno di:
● Integrazione con prodotti IBM non trattati
durante il tirocinio
● Controlli di qualità
● Analisi da parte dello User Experience Team
Si prevede inoltre di rilasciare:
● Agente per Hadoop: Giugno 2015
● Agente per CouchDB: Ottobre 2015
Grazie
per
l’attenzione

More Related Content

Viewers also liked

Real Answers about Title Loans in Las Vegas
Real Answers about Title Loans in Las VegasReal Answers about Title Loans in Las Vegas
Real Answers about Title Loans in Las VegasCash 1 Loans
 
HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011Srinivasan Balasubramanian
 
HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011Srinivasan Balasubramanian
 
ασκησηPP
ασκησηPPασκησηPP
ασκησηPPpapavasi
 
OHE Lunchtime Seminar: Health Technology Assessment Scientific and Outcomes A...
OHE Lunchtime Seminar:Health Technology Assessment Scientific and Outcomes A...OHE Lunchtime Seminar:Health Technology Assessment Scientific and Outcomes A...
OHE Lunchtime Seminar: Health Technology Assessment Scientific and Outcomes A...Office of Health Economics
 
T 4 imperialismo
T 4 imperialismoT 4 imperialismo
T 4 imperialismoascenm63
 
Adverse drug reactions
Adverse drug reactionsAdverse drug reactions
Adverse drug reactionsAravinda Kumar
 
Database Source Control: Migrations vs State
Database Source Control: Migrations vs StateDatabase Source Control: Migrations vs State
Database Source Control: Migrations vs StateEduardo Piairo
 
Language: presentation of subject 2016
Language: presentation of subject 2016Language: presentation of subject 2016
Language: presentation of subject 2016Luna
 
RethinkDB - the open-source database for the realtime web
RethinkDB - the open-source database for the realtime webRethinkDB - the open-source database for the realtime web
RethinkDB - the open-source database for the realtime webAlex Ivanov
 
7.11 knights and the 100 years war
7.11 knights and the 100 years war7.11 knights and the 100 years war
7.11 knights and the 100 years warDavid Poss
 
Quelosepaelmundoentero
QuelosepaelmundoenteroQuelosepaelmundoentero
QuelosepaelmundoenteroPersio
 

Viewers also liked (14)

Real Answers about Title Loans in Las Vegas
Real Answers about Title Loans in Las VegasReal Answers about Title Loans in Las Vegas
Real Answers about Title Loans in Las Vegas
 
HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011
 
HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011HIE in Global context and Future direction_IIHMR_Srini_aug2011
HIE in Global context and Future direction_IIHMR_Srini_aug2011
 
ασκησηPP
ασκησηPPασκησηPP
ασκησηPP
 
Vocabulary diana
Vocabulary dianaVocabulary diana
Vocabulary diana
 
OHE Lunchtime Seminar: Health Technology Assessment Scientific and Outcomes A...
OHE Lunchtime Seminar:Health Technology Assessment Scientific and Outcomes A...OHE Lunchtime Seminar:Health Technology Assessment Scientific and Outcomes A...
OHE Lunchtime Seminar: Health Technology Assessment Scientific and Outcomes A...
 
Yo claudio 2016
Yo claudio 2016Yo claudio 2016
Yo claudio 2016
 
T 4 imperialismo
T 4 imperialismoT 4 imperialismo
T 4 imperialismo
 
Adverse drug reactions
Adverse drug reactionsAdverse drug reactions
Adverse drug reactions
 
Database Source Control: Migrations vs State
Database Source Control: Migrations vs StateDatabase Source Control: Migrations vs State
Database Source Control: Migrations vs State
 
Language: presentation of subject 2016
Language: presentation of subject 2016Language: presentation of subject 2016
Language: presentation of subject 2016
 
RethinkDB - the open-source database for the realtime web
RethinkDB - the open-source database for the realtime webRethinkDB - the open-source database for the realtime web
RethinkDB - the open-source database for the realtime web
 
7.11 knights and the 100 years war
7.11 knights and the 100 years war7.11 knights and the 100 years war
7.11 knights and the 100 years war
 
Quelosepaelmundoentero
QuelosepaelmundoenteroQuelosepaelmundoentero
Quelosepaelmundoentero
 

Similar to PresentazioneLaureaMatteoVettosi

Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss CloudJBug Italy
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009Sanne Grinovero
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]gioacchinolonardo
 
Applicazioni Serverless con AWS
Applicazioni Serverless con AWSApplicazioni Serverless con AWS
Applicazioni Serverless con AWSsparkfabrik
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSsparkfabrik
 
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
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzajekil
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
 
GreenVulcano ESB Technical Overview (ITA)
GreenVulcano ESB Technical Overview (ITA)GreenVulcano ESB Technical Overview (ITA)
GreenVulcano ESB Technical Overview (ITA)greenvulcano
 
Gae piattaforma su cloud
Gae piattaforma su cloudGae piattaforma su cloud
Gae piattaforma su cloudmasci
 

Similar to PresentazioneLaureaMatteoVettosi (20)

Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Database Data Aggregator
Database Data AggregatorDatabase Data Aggregator
Database Data Aggregator
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
 
LARUS 10th - Rampado Omar
LARUS 10th - Rampado OmarLARUS 10th - Rampado Omar
LARUS 10th - Rampado Omar
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss Cloud
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Applicazioni Serverless con AWS
Applicazioni Serverless con AWSApplicazioni Serverless con AWS
Applicazioni Serverless con AWS
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
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
 
Linuxday2013
Linuxday2013 Linuxday2013
Linuxday2013
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studio
 
GreenVulcano ESB Technical Overview (ITA)
GreenVulcano ESB Technical Overview (ITA)GreenVulcano ESB Technical Overview (ITA)
GreenVulcano ESB Technical Overview (ITA)
 
Gae piattaforma su cloud
Gae piattaforma su cloudGae piattaforma su cloud
Gae piattaforma su cloud
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Geoweb Framework
Geoweb FrameworkGeoweb Framework
Geoweb Framework
 

PresentazioneLaureaMatteoVettosi

  • 1. Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e Tecnologie dell'Informazione TESI DI LAUREA PROGETTAZIONE E REALIZZAZIONE DI AGENTI DI MONITORAGGIO PER SISTEMI DISTRIBUITI Design and Development of Monitoring Agents for Distributed Systems Tutor Accademico: Candidato: Matteo Vettosi Prof: Alessandro de Luca Matricola: N86000799 Tutor Aziendale: Gianluca Della Corte Anno Accademico 2013-2014
  • 2. Cosa è stato richiesto ● Completamento di un agente per Hadoop o Sviluppo delle parti mancanti o Refactor delle parti già esistenti o Aumento Performance ● Realizzazione di un agente per CouchDB o Studio del dominio di applicazione o Scelta delle tecnologie o Realizzazione dell’interfaccia grafica
  • 3. Cos’è un agente di monitoraggio? “Servizio per il collezionamento di metriche di performance e di gestione degli allarmi per sistemi operativi/applicazioni/transazioni” Vari tipi: ● OS Agent ● Energy Management Agent ● Generic Agent ● … Noi ci interesseremo di Generic Agents
  • 4. Generic Agents ● Eseguibile principale ● XML per la definizione dell’implementazione o Molto corposo o Generabile e manipolabile tramite Agent Builder ● Files per la configurazione a runtime
  • 5. Come si istanzia un Generic Agent? 1. Definizione e organizzazione dei DataSource 2. Eventuale implementazione degli stessi 3. Realizzazione dell’interfaccia grafica (APMUI)
  • 6. I DataSource Letteralmente: Sorgente dei dati Diversi tipi supportati: ● Windows Process ● SOAP ● JDBC ● Socket ● Java API ● … Non sempre ovvio quale utilizzare
  • 7. L’APMUI “Scritta” in JSON (linguaggio proprietario) Realizzabile tramite: ● Scrittura a mano ● Tool grafico integrato nell’Agent Builder ● … Entrambe le cose
  • 8. Hadoop Framework Java di supporto allo sviluppo di applicazioni distribuite. Garantisce: ● Affidabilità: Problemi gestiti a livello applicativo ● Scalabilità: Nuovi nodi riconosciuti automaticamente a runtime
  • 10. Componenti Principali ● Hadoop Common: Strato software di supporto ● HDFS: File system distribuito per un efficace accesso ai file ● MapReduce: Famoso algoritmo per la parallelizzazione e distribuzione automatica del lavoro ● YARN: Framwork per la gestione di risorse del cluster
  • 11. Agente per Hadoop Cosa c’era già? ● Definizione dei Datasource ● Implementazione delle tecniche di raccolta ● API Java per il calcolo dello stato di salute del cluster ● Interfaccia grafica
  • 13. Plugin Java ● Utilizza la libreria “Metrics2” di Hadoop ● Invia le metriche in formato XML tramite Socket ● Apertura e chiusura di un canale di connessione per ogni singola metrica raccolta ● Scrittura integrale di essa sul file di log di tutte le componenti di Hadoop
  • 14. Organizzazione DataSource ● Utilizzo di sottonodi ● Utilizzo di un Custom Provider
  • 15. Custom Provider Mancava: ● Implementazione del calcolo della salute ● Utilizzo del log ● Attenta gestione della concorrenza
  • 16. Modifiche apportate al Plugin ● Aggiunti controlli sui tipi per cast espliciti ● Sostituiti array con mappe e utilizzati algoritmi più efficienti ● Ottimizzata la scrittura sui log ● Ottimizzato l’utilizzo di banda e computazione lato server
  • 17. Modifiche di configurazione ● Creazione di un agente “fantoccio” o Estrazione delle configurazioni XML per il custom provider o Recupero dei javaLauncher.sh/bat ● Review dei launcher o Generazione di log o Fix per la variabile d’ambiente JAVA_HOME o Inclusione delle librerie non previste ● Bugs, bugs, bugs...
  • 18. Modifiche al Custom Provider ● Implementata logica di determinazione salute ● Aggiunta attività di logging conforme agli standard aziendali ● Gestita la concorrenza tramite ConcurrentHashMap e variabili volatile ● Fixati crash dovuti , ad esempio, a mancati controlli sui tipi
  • 19. Grafica dei valori calcolati
  • 20. CouchDB ● Database non relazionale o Documento come elemento fondamentale o JSON per l’organizzazione dei dati ● Scritto in Erlang ● Lettura e scrittura concorrente grazie a MMVC ● Gestito interamente via HTTP
  • 23. Agente per CouchDB Specifiche iniziali: ● Coerenza grafica con l’agente per MongoDB ● Implementazione dell’agente per un instanza di CouchDB (tralascio del clustering) Si è deciso in totale autonomia di predisporre l’agente per monitorare istanze multiple
  • 24. Funzionamento dell’Agente Istanze di CouchDB Data Data Agente per CouchDB While they needs... Nothing! Just need to know where instances are and login credentials. Host Port Host Port The agent will take care of all the rest.
  • 25. DataSources Da DOVE prendere le metriche? ● http://indirizzo.ip:port/_stats ● http://indirizzo.ip:port/_active_tasks ● http://indirizzo.ip:port/_all_dbs & http://indirizzo.ip:port/dabataseName
  • 26. DataSources COME collezionare queste metriche? ● Socket ● JavaScript ● Java
  • 28. APMUI
  • 29. APMUI
  • 30. APMUI
  • 31. APMUI
  • 32. APMUI
  • 33. APMUI
  • 34. APMUI
  • 35. APMUI
  • 36. APMUI
  • 37. Tecnologie Utilizzate Le tecnologie impiegate durante il lavoro sono dunque state: ● Java o Generics o Java Collection Framework o Multi-Thread o Design Patterns o HTTP Socket Connections ● JavaScript ● Bash/Batch ● JSON ● XML ● SVN
  • 38. Stato attuale e sviluppi futuri Gli agenti necessiteranno di: ● Integrazione con prodotti IBM non trattati durante il tirocinio ● Controlli di qualità ● Analisi da parte dello User Experience Team Si prevede inoltre di rilasciare: ● Agente per Hadoop: Giugno 2015 ● Agente per CouchDB: Ottobre 2015