Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Moderne Architekturen zeitgemäß überwachen und optimieren

Fabian Lange
November 05, 2015

Moderne Architekturen zeitgemäß überwachen und optimieren

Fabian Lange

November 05, 2015
Tweet

More Decks by Fabian Lange

Other Decks in Technology

Transcript

  1. 4 Cloud 
 Containers & Microservices Polyglot Programming Agile Softwareentwicklung

    Continuous Delivery Agil Entwickelt - Containerisiert Skaliert
  2. Ben Horowitz March 2015 …traditional (monitoring) systems would not work

    for modern, massive, cloud-based architectures. In fact, they would not work properly for cloud- based architectures of any scale. 5 5
  3. 7 Status Quo 1990 1995 2000 2005 2010 2015 Client/Server

    Linux Open Source Web 3-Tier Java EE SOA Web 2.0 OSS Middleware Cloud Big Data µService Containers Lambda Arch. Tivoli BMC CA Nagios CA (Wily) Dell (Quest) Precise HP (Mercury) dynatrace AppDynamics New Relic
  4. 8 Traces • Codeausführungspfade als chronologische Sequenz. • Teuer und

    schwer zu ermitteln oder ungenau. • “Korrelation” zwischen Technologien fragil oder unmöglich. • In asynchronen, reaktiven, eventually consistent Anwendungen nicht mehr existent. • Beantworten keine Fragen von Betrieb oder Entwicklung.
  5. 10 Dashboards • Müssen manuell konfiguriert werden. • Unklare Aussage.

    • Zusammenhänge müssen mühsam herausgefunden werden. • Aussagekraft wird durch falsche Konfiguration reduziert. • Kleine Graphen produzieren Datenmatsch.
  6. 12 Zum Betrieb braucht man • Übersicht über das Gesamtsystem.

    • Verlässliche verständliche Zustandsmeldung. • Umsetzbare Lösungsvorschläge ohne Codeänderung. • Vorhersagen für Fehler und Kapazität.
  7. 13 Entwickler wünschen sich • Kontext von Code in Produktion:

    • Aufrufer • Aufrufraten • Parallelität • Annahmenbestätigung. • Informationen zu Code- und Konfigurationsfehlern. • Optimierungsmöglichkeiten.
  8. 14 DevOps? • Produktionsinformationen zugänglicher für Entwickler. • Verständnis für

    die Funktionsweise der Anwendung höher. • Benötigen auch: • Übersicht über das Gesamtsystem • Verlässliche Zustandsmeldung • Optimierungsvorschläge • Kapazitätsplanung
  9. 15 Rohdaten Aggregation Automatische
 Analyse und Bewertung Priorisierte
 Handlungsempfehlungen Degradation

    Detected JVM GC Overhead too high - Impact on Service >20%. Knowledge Base recommendations:
 1. Update to Java 1.8.60
 2. Increase Eden Space to -XX:NewRatio=2 at 10:43am. Optimization Detected. com.mycomp.Calc.calc() consumes 20% of Clock time. Optimization will have high impact on Service response time for Shop service. a few seconds ago Konzept von INSTANA
  10. 17 Existierende Datenquellen • SNMP - von quasi jeder Hardware

    unterstützt. • sar - Performancemetriken von Betriebsystemen. • performance_schema - Datenbank Statistiken. • RuntimeMaxBean - Application Runtime Metriken. • codahale metrics - Java Framework für Metriken. • statsd - Metrikaggregatoren.
  11. 18 Es gibt viele Metrikquellen • Jedes mit seinem eigenen

    Tool, seiner eigenen Datenbank. • Tools duplizieren Metriken. • Keine einheitliche Sprache. • Keine Korrelation.
  12. 20 Metriken verstehen • Was bedeutet der Wert? • Ist

    hoch oder niedrig gut? • Was für ein Typ ist der Wert? • Gauge: Ein aktueller Wert. • Counter: Aktueller Wert der nur inkrementiert. • Histogram: Wertevereilung über Zeit. • Meter: Wert pro Zeit (Rate). • Wie häufig ändert sich der Wert? • Gibt es Grenzwerte (Minimum, Maximum)?
  13. 22 Richtige Aggregate • Analyse auf Rohdaten. • Zum Anschauen

    sinnvolle Aggregate wählen: • Average / Mean: selten sinnvoll. • Maximum, Minimum: Für Best/Worst Case Analysen. • 99th Percentile: “In der Regel Wert”. • Outlier bewahren. • Neue Grafentypen verstehen.
  14. 26 Daten korrelieren • Einzelmetriken haben kaum Bedeutung: • CPU

    Load auf 2 von 8 Servern ist 4.3. • Cache Hit Ratio des EJBs ist 0. • Bandbreitennutzung auf dem Switch 8.3 GBit/s. • Disk /dev/sda 80% voll. • Willkürliche Korrelation macht keinen Sinn. • Fachliche Aussagekraft wünschenswert.
  15. JVM JVM JVM JVM JVM JVM JVM JVM JVM Cassandra

    Cluster Service A Tomcat Cluster JVM JVM App 1 App 2 JVM JVM App 3 Service B Schema 1 Schema 2 JVM Cassandra Cluster Cassandra Cluster 28
  16. JVM JVM JVM JVM JVM JVM JVM JVM JVM Cassandra

    Cluster Service A Tomcat Cluster JVM JVM App 1 App 2 JVM JVM App 3 Service B Schema 1 Schema 2 Cassandra Cluster Cassandra Cluster 29 App 2 JVM
  17. 30 Expertenwissen • Zusammenhänge und Bedeutung zu verstehen ist extrem

    schwer. • Viele Unternehmen haben eine handvoll überlasteter Experten. • Viele Zusammenhänge sind aber überall gleich. • Ein Monitoringsystem sollte über eine Wissensbasis verfügen. • Problemlösungsdatenbanken funktionieren nicht. • Weil sie das Problem nicht kennen.
  18. Netflix Engineering Blog January 2014 … humans cannot continuously monitor

    the status of all of our systems. 
 … it is critical for us to have exceptional tools coupled with intelligent analysis to proactively detect and communicate system faults and identify areas of improvement 33 33
  19. 41 Java Web App Sensor Tomcat Sensor JVM Sensor OS

    Sensor Auto Discovery Communication Local
 Sensor Memory Context
 Compression Host Under
 Management Sensor Repository Agent Knowledge Engine Agenten Technologie
  20. 42 Persistence Stream Processing Dynamic Graph Communication Sensor Data Realtime

    Stream Processing Machine Learning Knowledge Base Predictive Alerting Health Management Raw Store Memory Result Store Health Signatures User Interfaces Backend Technologie