Tecniche Di Troubleshooting Nei Sistemi Distribuiti

2,321 views
2,198 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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,321
On SlideShare
0
From Embeds
0
Number of Embeds
83
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • What: cos’è, Why: giustificazione, Where: dove usarlo, Who: attori coinvolti, When: quando usarlo
  • What: cos’è, Why: giustificazione, Where: dove usarlo, Who: attori coinvolti, When: quando usarlo
  • What: cos’è, Why: giustificazione, Where: dove usarlo, Who: attori coinvolti, When: quando usarlo
  • What: cos’è, Why: giustificazione, Where: dove usarlo, Who: attori coinvolti, When: quando usarlo
  • [sistema distribuito, multi layer: evento di produzione: monitoraggio, allarmistica (pre-post), reportistica (analisi)]
  • [sistema distribuito, multi layer: evento di produzione: monitoraggio, allarmistica (pre-post), reportistica (analisi)]
  • [sistema distribuito, multi layer: evento di produzione: monitoraggio, allarmistica (pre-post), reportistica (analisi)]
  • [sistema distribuito, multi layer: evento di produzione: monitoraggio, allarmistica (pre-post), reportistica (analisi)]
  • [sistema distribuito, multi layer: evento di produzione: monitoraggio, allarmistica (pre-post), reportistica (analisi)]
  • 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

    ×