Upload
rschuppe
View
3.080
Download
1
Embed Size (px)
DESCRIPTION
Eine Zusammenfassung der wichtigen Kriterien zur Auswahl einer APM Lösung für produktive Java Applikationen. Vortrag auf der WJAX 2011 in München von Rainer Schuppe, codecentric AG
Citation preview
APM - Best Practices
Rainer Schuppe - codecentric AG
1
Freitag, 11. November 2011
2© CrunchCrea - sxc.hu
Freitag, 11. November 2011
3© ross666 - sxc.hu
Freitag, 11. November 2011
4© NLTeddy - sxc.hu
Freitag, 11. November 2011
5© PetStarr - sxc.hu
Freitag, 11. November 2011
6
Freitag, 11. November 2011
Agenda
APM - Worüber reden wir überhaupt?
Performance im Application Lifecycle
Prioritäten bei der Auswahl
6 Hauptkriterien für die Auswahl
Vergleich der Technologien und Architekturen
Fazit
7
Freitag, 11. November 2011
Worüber reden wir?
APM = Application Performance Management / Monitoring
Monitoring = 24 x 7 Überwachung = Produktion / Datenerfassung / Protokollierung
Management = Service Level / Kapazität / Alarm / Historisch / Berichte
Application = Services die zusammen eine Business Funktion bilden
Performance = Durchsatz und Geschwindigkeit 8
Freitag, 11. November 2011
DEVELOPMENT & QAPRODUCTION OPERATIONS
24/7 visibility to proactively determine root cause
Developers can focus on innovation
Freitag, 11. November 2011
BusinessPressures
Development doing Monitoring
Can’t recreate the problem Endless war-
room calls
Long MTTR
Forced Re-starts
Unhappy Customers
PRODUCTION OPERATIONS
NoInnovation
DEVELOPMENT & QA
Freitag, 11. November 2011
11
150+150+
© SupaJem - sxc.hu
Freitag, 11. November 2011
Performance im Lifecycle - Entwicklung
• Awareness - Ist Performance in der Entwicklung ein Thema?
• Intern, extern oder Mischung?
• Agil oder Wasserfall?
• Non Functional Requirements?
• Einzelfall AnalyseLokal beim Entwickler
• CI Unterstützung?
12
© drouu - sxc.hu
Freitag, 11. November 2011
Performance im Lifecycle - Test
• Fachtest oder Lasttest?
• Komplexität
• Expertise?• Non Functional Requirements?
• Testdaten = Produktionsdaten?• Problem Reproduktion
13
(c) Buzznet Media
Freitag, 11. November 2011
Performance im Lifecycle - Produktion
Hier wird Performance ein Business Thema• Service Level Agreements
• Umsatzrelevant
• Expertise in Operations• Wieviele Applikationen?
• Verteilung (selbes Gebäude, Stadt, Land, Kontinent)• DevOps?
• Landschaft hetero- oder homogen?
14© gabriel77 - sxc.hu
Freitag, 11. November 2011
Prioritäten bei der Auswahl
1. Fit für die Produktion?
2. Fit für moderne Architekturen?
3. Wie einfach einzusetzen?
4. Skalierbarkeit
5. Innovation
6. Gesamtkosten
15
Freitag, 11. November 2011
16
Kosten
Innovation
Skalierbarkeit
Ease of Use
Moderne Architekturen
Produktionsgeeignet
Freitag, 11. November 2011
Fit für Produktions Umgebungen - Anforderungen
• Hohe Last (Anzahl Transaktionen)
• Anzahl der Applikationen• Expertise der Operator
• Wartungsfenster
• Vielfalt der Technologien• Problemszenarien nicht wiederholbar
17
Freitag, 11. November 2011
18
Triage und Troubleshooting (Visibilität)
Kein Einfluss auf die Applikation (Overhead)
Automatisches Applikations-Mapping
Konfigurationsaufwand
Automatisches Baselining
Produktions-geeignet
Freitag, 11. November 2011
19
Kein Einfluss auf die Applikation (Overhead)
Produktions-geeignet
• CPU Verbrauch
• Antwortzeit-Verlängerung• Server / 2. Overhead
• Verdichten der Daten auf dem Server zu Informationen
Freitag, 11. November 2011
Sichtbarkeit
20
Freitag, 11. November 2011
Sichtbarkeit
21
Freitag, 11. November 2011
22
Monolithische 3-Tier Applikation
auch bei agilen Releases
Applikationen in der Cloud
Verteilte SOA Applikationen
Big Data
unterstützte Architekturen
Application Code & Frameworks (custom und Standard)
Freitag, 11. November 2011
23
Amazon EC2 Public Cloud
VMware Private Cloud
• Cloud• Virtualization• SOA• Open-source
MQ
Tomcat
JBoss
Spring
Weblogic
unterstützte Architekturen
Freitag, 11. November 2011
24
APM Solution – Wartungs- und Betreuungsaufwand
Wie schnell einsatzfähig (time to value)?
Wie intuitiv ist die Lösung?
Wird eine SaaS Option angeboten?
Wiederholbarkeit von Problemen?
Welches Knowhow braucht der User?
Ease of Use
Freitag, 11. November 2011
25
Wie schnell einsatzfähig (time to value)?
Braucht man bei der InstallationUnterstützung des Herstellers?
Welche Expertise ist nötig,um die Lösung wirklich einsetzen zu können?
SaaS Angebot?
© lusi sxc.hu
Ease of Use
Freitag, 11. November 2011
26
APM Solution – Wartungs- und Betreuungsaufwand
Tägliche Wartung / Betreuung nötig?
Versionsabhängigkeiten der Komponenten?
SaaS Angebot?
(c) sanja gjenero
Ease of Use
Freitag, 11. November 2011
27
Hardwareanforderungen?
Wieviele Agenten pro Management Server?
Wie kann skaliert werden? Hardware?
Speicherplatz für 1 Jahr?
Benötigte Netzwerkbandbreite?
Lastverhalten: Peak oder gleichmässig?
Skalierbarkeit
Freitag, 11. November 2011
28
Wieviele Agenten pro Management Server?Skalierbarkeit
• Welche Daten schicken die Agenten?
• Wie oft?• Benötigte Netzwerkbandbreite
• LAN / WAN / DSL geeignet?
• Direkte Kommunikation oder gestaffelt?• Collector Architektur?
Freitag, 11. November 2011
29
Anzahl Releases pro Jahr?
Hersteller fokussiert auf APM?
Ist der Hersteller als erster mit neuen Features auf dem Markt?
Unterstützung für Ihre aktuelle Platform?
Innovation
Freitag, 11. November 2011
30
Hersteller fokussiert auf APM?
Innovation
• Ist die Lösung „integriert“ aus Zukäufen?
• Wie alt ist die Architektur?• Was deckt die Lösung noch ab?
• Wie gross ist der APM Anteil?
• Baukästen und Frameworks funktionieren nur mit viel Arbeit
Freitag, 11. November 2011
31
Support & Wartung
Lizenzen
Implementierung Dienstleistung / Professional Services
Hardware
Ausbildung & Training
Administration für Ausbau und Wartung
Kosten
Freitag, 11. November 2011
32
Implementierung Dienstleitung / Professional Services
Ausbildung & TrainingKosten
• Wieviele PT nötig für die Inbetriebnahme?
• Wieviel Training und wie oft ist es nötig?
• Neues Training bei neuen Releases notwendig?
Freitag, 11. November 2011
0
37,5
75,0
112,5
150,0
Lösung 1Lösung 2
Lösung 3
Kosten Innovation SkalierbarkeitEase of Use Architekturen Prod Geeignet
Freitag, 11. November 2011
Vergleich der Technologien und Architekturen
• Technologien zur Datenermittlung
• Methodologien
• Komponenten-Monitoring• Transaktions-Monitoring
• Architektur• Agenten
• Server
• Datenhaltung• Integration
• User Interface
Freitag, 11. November 2011
Technologien zur Datenermittlung
Bytecode Instrumentierung• Hat Zugriff auf die Ausführungsanzahl
• Genaue tatsächliche/max/min/durchschnittliche Ausführungszeit
• Genaue Ausführungsreihenfolge
• Benötigt Konfiguration der zu messenden Codestellen
• Konfiguration muss ausbalanciert sein
• Massenhaft aufgerufene Methoden sind auszuschließen
• Genauso Methoden mit Ausführungszeit kürzer als die Messcode-Zeit
• Produziert große Datenmengen
Freitag, 11. November 2011
Technologien zur Datenermittlung
Sampling• Stabiler Overhead, der hauptsächlich durch das Samplingintervall,
nicht durch den gemessenen Code, bestimmt wird
• Ausführungshotspots werden anstelle einer feingranularenCodereihenfolge gemessen
• Kann unbekannten Code aufspüren
• Läuft effizient auf Mehrkernsystemen
http://blog.codecentric.de/?p=9528
Freitag, 11. November 2011
Technologien zur Datenermittlung
• JMX / PMI• Geeignet zur Begleitung
• ARM
• Logging
• Network Sniffing / SPAN-Port
Freitag, 11. November 2011
38
Applications
FirewallNetwork
Switch
Load Balancer Portal
Identity Manager
End User
Web Servers
Router
ERP
CRM
Order
3rd Party Applications
Databases
Mainframe
Database
Web Services
Freitag, 11. November 2011
MethodologieKomponenten Monitoring
Alt - nicht mehr für moderne Architekturen geeignet
• JVM Check (CPU, Heap, Health Check)• Servlets, EJB, SpringBeans, etc.
• Evtl. mit Bezug zwischen 2 Ebenen (Servlet - EJB)
• JMX• Meist in Frameworks zu finden• Ergänzung der System Monitoring Tools• Kein Kontext -> Expertenwissen benötigt
39
Freitag, 11. November 2011
40© marcphelan - sxc.hu
Freitag, 11. November 2011
MethodologieTransaktions-Monitoring
• Einstieg über definierte Fachlichkeiten (Business Transaktionen)
• Verfolgung über JVM Grenzen hinweg• Identifizierung der beteiligten Komponten / Architektur
• End User Experience Integration
41
Freitag, 11. November 2011
Architektur - Agenten
• Aktiv / passiv
• Java / nativ• Einer für alles
• Gruppe von Agenten für verschiedene Perspektiven?
• Autarker Agent• Gar kein Agent?
• Transaktionskontext?
42
Freitag, 11. November 2011
Architektur - Server
• Einzelner zentraler Server
• Cluster mit Management Server• Staffelung und Arbeitsverteilung mit Management Server
• SaaS geeignet oder nur lokale Installation?
• Sichere Anbindung der Agenten (Verschlüsselung)?• HA / Failover?
43
© Linuxgeek - sxc.hu
Freitag, 11. November 2011
44
Management Server
GUI
GUI
GUI
GUI
Agent
Agent
Agent
Agent
Agent
Agent
Database
Freitag, 11. November 2011
45
Management Server
GUI
GUI
GUI
GUI
Agent
Agent
Agent
Agent
Agent
Agent
Collector Server
Collector Server
Collector Server Aux.
Server
Database
Freitag, 11. November 2011
Architektur - Datenhaltung
• Database
• Filesystem• Kombination aus beidem
• Wie viel Platz wird über 1 Jahr gebraucht?
46
© runrunrun - sxc.hu
Freitag, 11. November 2011
Architektur - Integration
• APIs für Input und Output für Daten?
• Java APIs?• Script basiert?
• Einfachheit
• Service Provider / REST?
47
© gozdeo - sxc.hu
Freitag, 11. November 2011
User Interface
48
• Fat client oder Web-GUI?
• Dashboards• Customizable - Mustomizable?
• Für Operator OOTB verwendbar?
• Mandantenfähig?
© vgarcias - sxc.hu
Freitag, 11. November 2011
FazitEs gibt viele Werkzeuge, aber nur wenige brauchbare Lösungen
für den Produktionseinsatz
49
Jede Organisation muss die Kriterien selbst gewichten
Automatisierung und Ease of Use sind die Schlüssel für schnelles, effektives Arbeiten
Freitag, 11. November 2011