Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tecniche Di Troubleshooting Nei Sistemi Distribuiti

2,577 views

Published on

Questo seminario sulle tecniche di troubleshooting fa rientra nella collaborazione fra K-Tech (http://www.k-tech.it/) e la Facoltà di Ingegneria dell’Università Roma TRE, nell’ambito delle attività della Consulta.

Il seminario presenta come risolvere problemi tipici dei sistemi distribuiti che avvengono in produzione. Insieme agli esempi pratici si presenta anche un metodo per il troubleshooting che assicura una maniera veloce ed efficace per la determinazione dei problemi ed in generale per la gestione delle performance applicative. Il metodo si basa sulle evidenze del monitoraggio e pone l'accento sulla qualità delle informazioni raccolte in produzione, il fattore più determinante, assieme al tempo, per tutto il processo di troubleshooting. Questo materiale è preso da un corso di più giorni offerto da K-Tech s.r.l. Il corso ha lo scopo di mostrare agli Application Server Administrator (ASA) cosa fare per rendere possibile la risoluzione dei problemi in breve tempo e cosa evitare attraverso il confronto dei risultati di queste azioni. Gli esempi pratici mostrano come applicare correttamente il metodo e selezionare gli strumenti più adatti in ogni singolo caso.

Per conoscere le iniziative di K-Tech seguiteci sul nostro sito: http://www.k-tech.it/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Tecniche Di Troubleshooting Nei Sistemi Distribuiti

  1. 1. Troubleshooting Tecniche per i sistemi distribuiti
  2. 2. Mi presento <ul><li>Giuseppe Galli
  3. 3. Breve CV </li></ul><ul><ul><li>Partner in K-Tech, CTO
  4. 4. Esperto in APM da 4 anni
  5. 5. Lavoro su soluzioni Java </li></ul></ul>nel dominio Enterprise dal 1998 <ul><li>In K-Tech da 7 anni </li></ul>[email_address]
  6. 6. Agenda <ul><li>Presentazione docente – azienda - seminario
  7. 7. Troubleshooting - ITIL
  8. 8. Scenario di esempio
  9. 9. Strumenti
  10. 10. Conclusioni e Domande </li></ul>
  11. 11. K-Tech s.r.l. Siamo una società che opera a 360° sulla tecnologia Java in ambito Enterprise. Con forti competenze in: <ul><li>Application Performance Management
  12. 12. Software Performance Engineering
  13. 13. Configuration Management
  14. 14. Project Management
  15. 15. System Administration
  16. 16. OOAD
  17. 17. Formazione
  18. 18. Oracle – IBM – CA|Wily - ..
  19. 19. Open Source </li></ul>Servizi in EMEA: MCS, CRC, Business Continuity 24X7 – on site < 24h from call Certificati ISO 9001 in “Progettazione ed erogazione di corsi di formazione” Dove abbiamo portato il nostro know-how
  20. 20. La formazione in Azienda <ul><li>Formazione continua interna ed esterna </li></ul><ul><ul><li>Abilitante per il Business del cliente </li></ul></ul><ul><li>Portali tecnici su Java e Oracle </li></ul><ul><ul><li>Distribuzione della conoscenza
  21. 21. Approccio risoluzione problemi </li></ul></ul>
  22. 22. K-Tech Educational Nel nostro catalogo Formazione abbiamo corsi su: <ul><li>Performance
  23. 23. Analisi
  24. 24. Architettura
  25. 25. Programmazione
  26. 26. Amministrazione
  27. 27. JBoss Application Server
  28. 28. Sviluppo Enterprise </li></ul>
  29. 29. Tirocinio per Tesi di Laurea Specialistica Possibili argomenti: <ul><li>Studio della stabilità di un sistema software distribuito
  30. 30. Integrazioni di sistemi esterni di Enterprise Information Systems (EIS)
  31. 31. Sviluppo di sistemi ibridi con framework RAD e Java Enterprise </li></ul>Per informazioni scrivere a: k-tech@k-tech.it
  32. 32. I seminari a Roma3 su APM <ul><li>APM: WWWWW (What, Why, Where, Who, When) – 12-02-2009
  33. 33. Troubleshooting - tecniche per i sistemi distribuiti </li></ul><ul><li>Una notte in ufficio: ore 08:00 a.m. Risolto!
  34. 34. APM: Metodologia e strumenti
  35. 35. Performance (anti)patterns in Enterprise Architectures
  36. 36. Agile APM, an heretic's approach to SPE </li></ul>
  37. 37. Obiettivi del seminario Presentare le tecniche di troubleshooting nei sistemi distribuiti all'interno della disciplina APM ( Application Performance Management) e dei processi secondo ITIL (Information Technology Infrastructure Library) attraverso esempi pratici e casi reali .
  38. 38. Raccomandazioni <ul><li>Il seminario è a beneficio di tutti
  39. 39. Ponete le domande secondo le modalità determinate con il docente
  40. 40. Ascoltate le risposte a domande non poste da voi: potrebbero dipanare dubbi ai vostri colleghi se non a voi stessi!
  41. 41. Gli interessati a specifici </li></ul>approfondimenti possono contattarmi via email [email_address]
  42. 42. Troubleshooting - Obiettivo <ul><li>Ristabilire il normale servizio il più rapidamente possibile e minimizzare gli effetti sfavorevoli sulle attività dell’organizzazione </li></ul>
  43. 43. Gestione delle Performance Applicative... Ruolo IT : i dati ← WWW -> i processi Performance applicative = Performance ditta
  44. 44. ...Gestione delle Performance Applicative Aumentare <ul><li>Competitività
  45. 45. Time 2 market
  46. 46. Affidabilità
  47. 47. Brand </li></ul><ul>Diminuire <li>Costi IT
  48. 48. Tempi per riparare
  49. 49. Errori e fermi
  50. 50. Stress </li></ul>
  51. 51. Troubleshooting - Definizioni <ul><li>APM: </li><ul><li>Gestione delle performance applicative </li></ul><li>ITIL – Service Management (SM) </li><ul><ul><li>Incident management
  52. 52. Problem management </li></ul></ul></ul>
  53. 53. APM <ul><li>L’APM in pratica si declina su due filoni distinti e con esigenze parzialmente opposte </li></ul><ul><ul><li>Monitoring </li></ul></ul><ul><ul><ul><li>Controllo in real time delle applicazioni in produzione </li></ul></ul></ul><ul><ul><li>Incident management </li></ul></ul><ul><ul><ul><li>Gestione degli eventi e delle attività nel caso di situazioni problematiche </li></ul></ul></ul>
  54. 54. Troubleshooting - Definizioni <ul><li>Incident (ITILv3): </li><ul><li>un evento non previsto dalle normali operazioni del servizio e che causa, o può causare, una interruzione o comunque una riduzione della qualità del servizio. </li></ul></ul>
  55. 55. Troubleshooting - Definizioni <ul><li>Problem (ITILv3): </li><ul><li>La causa di uno o più incident. La causa scatenante non è conosciuta nel momento della creazione di un problem. La sua identificazione rientra nel processo della sua gestione: problem management. </li></ul></ul>
  56. 56. Incident Management <ul><li>Incident </li></ul><ul><ul><li>Avviene in produzione (!#?!) </li></ul></ul><ul><ul><ul><li>Impatta il livello di servizio e la user experience </li></ul></ul></ul><ul><ul><li>E' fondamentale la rapidità di reazione </li></ul></ul><ul><ul><ul><li>Metriche di tempi di ripristino e di soluzione (ITIL) </li></ul></ul></ul><ul><ul><li>La sua gestione è basilare per il rapporto tra l’IT e i clienti </li></ul></ul><ul><ul><ul><li>Tecniche e processi per minimizzarne gli effetti </li></ul></ul></ul><ul><li>Il troubleshooting </li></ul><ul><ul><li>Processo a carico dell’IT, lo specialista APM interviene con un metodo specifico </li></ul></ul>
  57. 57. Esempio… <ul><li>Portale on line di compagnia aerea nazionale
  58. 58. Caratteristiche funzionali </li></ul><ul><ul><li>Ricerche voli (tratte, costi, orari)
  59. 59. Disponibilità posti
  60. 60. Acquisto biglietti
  61. 61. Help Desk
  62. 62. Programma fidelizzazione cliente
  63. 63. Integrazione con i partner di una ‘Alliance’
  64. 64. 24/7 </li></ul></ul>
  65. 65. … Esempio… <ul><li>Caratteristiche tecniche </li></ul><ul><ul><li>Ambiente distribuito
  66. 66. Tecnologia </li></ul></ul><ul><ul><ul><li>JEE per il FE
  67. 67. Legacy per il BE </li></ul></ul></ul>
  68. 68. … Esempio <ul><li>Problema: pessime performance in orario di ufficio </li></ul><ul><li>Impatto sul business </li><ul><li>Crollo del numero di biglietti venduti
  69. 69. Nuovi sviluppi bloccati </li></ul><li>Interventi </li><ul><li>Non sistematici: Try and Fix
  70. 70. Adottate configurazioni estreme
  71. 71. Tempi di risoluzione dell'ordine dei mesi (MTR)
  72. 72. Sfiducia negli strumenti
  73. 73. Stress del personale </li></ul></ul>
  74. 74. Il metodo <ul><ul><li>Indica cosa fare, quando e da chi
  75. 75. Nasce 'sul campo'
  76. 76. Risponde all'esigenza di poter agire in nostra assenza
  77. 77. Formalizza un processo
  78. 78. E' lasciato 'in eredità' ai nostri clienti </li></ul></ul><ul><ul><li>Si ispira alla letteratura ma è basato sull'esperienza
  79. 79. Viene utilizzato con successo e soddisfazione </li></ul></ul>
  80. 80. Le Fasi <ul><li>5 passi (4 Fasi + 1 Azione) </li></ul><ul><ul><li>Detect & Verify
  81. 81. Triage
  82. 82. Root Cause Identification & ‘Drill down’
  83. 83. Develop a theory & Document </li></ul></ul><ul><ul><li>Solve </li></ul></ul>
  84. 84. <ul>Detect & Verify </ul><ul><li>Detect & Verify
  85. 85. Triage
  86. 86. Root Cause Identification
  87. 87. Develop a theory & Document
  88. 88. Solve </li></ul>I fase : <ul>Individuare il problema e verificarlo <ul><li>Individuato tramite l’Help Desk
  89. 89. Avviso automatico
  90. 90. Lamentele utenti </li></ul></ul>
  91. 91. <ul>Triage </ul><ul><li>Detect & Verify
  92. 92. Triage
  93. 93. Root Cause Identification
  94. 94. Develop a theory & Document
  95. 95. Solve </li></ul>II fase: <ul><ul><li>Riconoscere le priorità
  96. 96. Selezionare tra i diversi avvisi di incident
  97. 97. Filtrare e correlare i segnali/dati
  98. 98. Assegnare i(l) task agli esperti (SME) </li></ul></ul>
  99. 99. <ul>Root Cause Identification... </ul><ul><li>Detect & Verify
  100. 100. Triage
  101. 101. Root Cause Identification
  102. 102. Develop a theory & Document
  103. 103. Solve </li></ul><ul>III fase: </ul><ul><ul><li>Separare gli effetti dalle cause
  104. 104. Drill down a livello di componente, classe o metodo </li></ul></ul><ul><ul><li>NB: </li></ul></ul><ul><ul><ul><li>Non intervenire qui per risolvere! </li></ul></ul></ul>
  105. 105. <ul>...Root Cause Identification </ul><ul><li>Detect & Verify
  106. 106. Triage
  107. 107. Root Cause Identification
  108. 108. Develop a theory & Document
  109. 109. Solve </li></ul><ul>III fase: </ul><ul><ul><li>Separare gli effetti dalle cause
  110. 110. Drill down a livello di componente, classe o metodo </li></ul></ul><ul><ul><li>NB: </li></ul></ul><ul><ul><ul><li>Non intervenire qui per risolvere! </li></ul></ul></ul>Monitoraggio Analisi Interventi
  111. 111. <ul>Develop a theory & Document... </ul><ul><li>Detect & Verify
  112. 112. Triage
  113. 113. Root Cause Identification
  114. 114. Develop a theory & Document
  115. 115. Solve </li></ul><ul>IV fase: </ul><ul><ul><li>Sviluppare un modello </li></ul></ul><ul><ul><ul><li>Semplice
  116. 116. Causa ed effetto
  117. 117. Comprensibile anche dai manager non tecnici </li></ul></ul></ul><ul><ul><li>Utilizzare i dati </li></ul></ul><ul><ul><ul><li>Il modello non deve contraddirsi
  118. 118. Presentare un confronto con valori normali </li></ul></ul></ul>
  119. 119. … Develop a theory & Document <ul><li>Detect & Verify
  120. 120. Triage
  121. 121. Root Cause Identification
  122. 122. Develop a theory & Document
  123. 123. Solve </li></ul><ul>IV fase: </ul><ul><ul><li>Sviluppare un modello </li></ul></ul><ul><ul><ul><li>Semplice
  124. 124. Causa ed effetto
  125. 125. Comprensibile anche dai manager non tecnici </li></ul></ul></ul><ul><ul><li>Utilizzando i dati </li></ul></ul><ul><ul><ul><li>Il modello non deve contraddirsi
  126. 126. Presentare confronto con valori normali </li></ul></ul></ul>
  127. 127. Documentazione... <ul><li>La documentazione dovrebbe presentare: </li><ul><li>Quando il problema si è presentato
  128. 128. L'impatto sul servizio
  129. 129. I dati rilevati nella verifica e nell'analisi
  130. 130. La causa principale ed il perché è accaduto </li></ul><li>Fare un confronto con valori dello stato normale
  131. 131. Mostrare con i dati il comportamento dei componenti </li></ul>
  132. 132. … Documentazione… L'applicazione è stata testata Sul mio laptop funziona Il DB risponde veloce Il cluster va bene E' colpa della rete
  133. 133. ...Documentazione L'applicazione è stata testata Sul mio laptop funziona Il DB risponde veloce Il cluster va bene E' colpa della rete <ul>La documentazione corretta elimina il Fingerpointing </ul>
  134. 134. Solve... <ul><li>Detect & Verify
  135. 135. Triage
  136. 136. Root Cause Identification
  137. 137. Develop a theory & Document
  138. 138. Solve </li></ul><ul><li>L'intervento risolutivo : </li></ul><ul><ul><li>La risoluzione del problema </li></ul></ul><ul><ul><ul><li>E’ a carico di un gruppo specifico dell’IT
  139. 139. Non fa parte dei compiti dello specialista APM
  140. 140. Può far venire fuori altri problemi sommersi </li></ul></ul></ul><ul><ul><li>E dopo ? </li></ul></ul>
  141. 141. ...Solve <ul><li>Detect & Verify
  142. 142. Triage
  143. 143. Root Cause Identification
  144. 144. Develop a theory & Document
  145. 145. Solve </li></ul><ul><li>L'intervento risolutivo : </li></ul><ul><ul><li>La risoluzione del problema </li></ul></ul><ul><ul><ul><li>E’ a carico di un gruppo specifico dell’IT
  146. 146. Non fa parte dei compiti dello specialista APM
  147. 147. Può far venire fuori altri problemi sommersi </li></ul></ul></ul><ul><ul><li>E dopo? </li></ul></ul>Monitoraggio Analisi Interventi
  148. 148. Esercizio 1 <ul>Dove cominciare? </ul>
  149. 149. Esercizio 1 <ul>Dove cominciare? </ul>Pessime performance in orario di ufficio Impatto sul business: crollo del fatturato
  150. 150. <ul><li>Detect & Verify
  151. 151. Triage
  152. 152. Root Cause Identification
  153. 153. Develop a theory & Document
  154. 154. Solve </li></ul>Esercizio 1 <ul>Dove cominciare? </ul>Pessime performance in orario di ufficio Impatto sul business: crollo del fatturato
  155. 155. Tecniche <ul><li>Interazioni nel sistema distribuito
  156. 156. Classificazione dei problemi
  157. 157. Utilizzo dei dati del monitoraggio </li></ul><ul><ul><li>valore, evoluzione, correlazione, confronto </li></ul></ul><ul><li>'Solution path' Vs 'workaround' </li></ul>
  158. 158. <ul>A) Interazioni </ul><ul><li>Tra i moduli: </li><ul><li>Identificazione dell'architettura </li></ul><li>Tra i componenti </li><ul><li>Identificazione dei flussi dei dati </li></ul><li>Sincrone e Asincrone </li></ul>
  159. 159. Interazioni moduli <ul><li>Diagramma di sistema </li></ul>
  160. 160. Interazioni moduli <ul><li>Diagramma di sistema
  161. 161. Diagramma di deploy </li></ul>
  162. 162. Interazione tra componenti userView hotelView carView logon itineraryView seatView JSPs ReservationControllerServlet Itinerary SeatAssignments BookedSegments SearchHistory Preferences UserData Session Beans Pricing Flights Reservations User Entity Beans promotionView Points Upgrades Loyalty LoyaltyControllerServlet upgradeView supportView accountView signup Servlets
  163. 163. Esercizio <ul><li>Interazione applicazione JEE con BE </li><ul><li>JDBC via EntityBeans
  164. 164. Mainframe via custom framework da SessionBeans </li></ul><li>Problema: </li><ul><li>Come può impattare la scalabilità del sistema questa scelta architetturale? </li></ul></ul>
  165. 165. <ul>B) Classificazione dei problemi </ul><ul><li>Tipi di problemi </li><ul><li>Consistent problems
  166. 166. Progressive problems
  167. 167. Sudden problems
  168. 168. Periodic problems
  169. 169. Sporadic errors </li></ul></ul>
  170. 170. <ul>B) Classificazione dei problemi </ul><ul><li>Consistent problems </li></ul><ul><ul><li>Sempre presenti
  171. 171. Indipendenti dal traffico utente e dall’hardware
  172. 172. Non si risolvono con un restart </li></ul></ul>
  173. 173. <ul>B) Classificazione dei problemi </ul><ul><li>Progressive problems </li></ul><ul><ul><li>La criticità aumenta nel tempo
  174. 174. Impossibile ripristinare la situazione iniziale
  175. 175. Il server deve essere riavviato </li></ul></ul>
  176. 176. <ul>B) Classificazione dei problemi </ul><ul><li>Sudden problems </li></ul><ul><ul><li>Problemi improvvisi
  177. 177. Non sono annunciati
  178. 178. Comportamento binario, non lineare </li></ul></ul>
  179. 179. <ul>B) Classificazione dei problemi </ul><ul><li>Periodic problems </li></ul><ul><ul><li>Avvengono periodicamente
  180. 180. Il sistema riprende a funzionare automaticamente </li></ul></ul>
  181. 181. <ul>B) Classificazione dei problemi </ul><ul><li>Sporadic errors </li></ul><ul><ul><li>Si presentano irregolarmente
  182. 182. Riguardano specifici utenti o funzioni
  183. 183. Non risultano dalle misure medie </li></ul></ul>
  184. 184. Esercizio <ul><li>Che tipo di problemi? </li><ul><li>Connection leak
  185. 185. Deadlocked threads
  186. 186. Una funzione applicativa lenta
  187. 187. Un apparato di rete che funziona a intermittenza </li></ul></ul>
  188. 188. C) Utilizzo dei dati del monitoraggio <ul><li>Valore
  189. 189. Evoluzione
  190. 190. Correlazione
  191. 191. Confronto </li></ul>
  192. 192. Dati di monitoraggio <ul><li>Valore </li><ul><li>Da solo non ha un significato
  193. 193. Costruire una baseline come riferimento
  194. 194. Campionamento, proprietà statistiche, orario </li></ul></ul>
  195. 195. Dati di monitoraggio <ul><li>Evoluzione </li><ul><li>Trend di crescita </li></ul></ul>
  196. 196. Dati di monitoraggio <ul><li>Correlazione </li><ul><li>Controllare i valori ed i trend tra componenti diversi
  197. 197. Produttori e consumatori di servizi </li></ul></ul>
  198. 198. Dati di monitoraggio <ul><li>Confronto </li><ul><li>Con la baseline
  199. 199. Con le soglie (massime, minime, di allarme...)
  200. 200. Con dati storici
  201. 201. Prima e dopo le variazioni </li></ul></ul>
  202. 202. Esempi <ul><li>Dopo un nuovo rilascio una query al DB impiega 10.000 volte il tempo precedente
  203. 203. L'invocazione di un EJB è ripetuta da un componente migliaia di volte
  204. 204. Singleton sincronizzato </li></ul>
  205. 205. <ul>D) 'Solution path' Vs 'workaround' </ul><ul><li>Il percorso per la soluzione può richiedere molto tempo
  206. 206. L'intervento immediato può prevedere una 'soluzione' temporanea </li></ul>
  207. 207. Esempio <ul><li>Connettore JCA per JMS non funziona in una transazione XA: </li><ul><li>javax.transaction.xa.XAException </li></ul><li>Resolution path: cambiare il codice
  208. 208. Workaround: suddividere la transazione XA in due XA con ambiti minori </li></ul>
  209. 209. Strumenti <ul><li>JVM </li></ul><ul><ul><li>Log, JMX </li></ul></ul><ul><li>API </li></ul><ul><ul><li>Aspectj, JAMon </li></ul></ul><ul><li>Open source </li></ul><ul><ul><li>NAGIOS, JRat </li></ul></ul><ul><li>Monitoring + Troubleshooting </li></ul><ul><ul><li>CA Introscope ™ , IBM ITCAM ™ , Quest Foglight ™ </li></ul></ul><ul><li>Troubleshooting + Monitoring </li></ul><ul><ul><li>Dynatrace ™ , JXInsight ™, YourKit ™ </li></ul></ul>
  210. 210. Conclusioni <ul><li>L’ambito lavorativo dell’APM </li></ul><ul><ul><li>È abilitante per i sistemi
  211. 211. Affronta situazioni problematiche per far tornare le persone a sorridere
  212. 212. Necessita delle 3 ‘P’ Prodotti - Procedure – Persone </li></ul></ul>
  213. 213. Riferimenti <ul><li>APM on wikipedia </li></ul><ul><ul><li>http://en.wikipedia.org/wiki/Application_Performance_Management </li></ul></ul><ul><li>ITIL on wikipedia (italiano) </li></ul><ul><ul><li>http:// it.wikipedia.org / wiki /ITIL </li></ul></ul><ul><li>Java Italian Portal </li><ul><li>http://www.javaportal.it/ </li></ul><li>CAPAF </li></ul><ul><ul><li>http://www.capaf.ch/ </li></ul></ul><ul><li>CA|Wily educational services </li></ul><ul><ul><li>http://www.ca.com/ us /education/ content.aspx ?cid=176408 </li></ul></ul>
  214. 214. Domande
  215. 215. Contatti <ul><li>Per Tirocini Tesi di laurea Triennali e Specialistici scrivere a: </li><ul><li>k-tech@k-tech.it </li></ul></ul>
  216. 216. Ringraziamenti <ul><li>Grazie alla Facoltà di Ingegneria dell’Università Roma TRE </li></ul><ul><li>Mara Marzocchi
  217. 217. K-Tech people </li></ul>/.*/@k-tech.it Ing. Giuseppe Galli K-Tech srl [email_address]
  218. 218. Fine

×