Kritische App-Performance 
erfolgreich optimieren 
Live Webcast mit Bison - 04.12.2014 
Roman Schaller, Performance 
Engin...
Überlebenstraining … 
156 / 80 
8 / 10 
1 
… App Funktionalität muss auf 
156 mobilen Endgeräten 
getestet werden um 80% 
...
Steigende Komplexität & Erwartungen 
Time 
3 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Abnehmende Visibilität & Kontrolle … 
Time 
4 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Visibilitätslücke 
Time 
• Schnelle Apps / Versionen 
• Innovation 
• Identifizieren / Priorisieren 
5 COMPANY CONFIDENTIA...
Zuviele Vermutungen … 
Time 
• Schnelle Apps / Versionen 
• Innovation 
• Identifizieren / Priorisieren 
6 COMPANY CONFIDE...
Mit Geld um sich zu werfen funktioniert nicht … 
$/€ ? 
Time 
• Schnelle Apps / Versionen 
• Innovation 
• Identifizieren ...
Schließen der Visibilitätslücke 
$/€ ? 
Time 
• Schnelle Apps / Versionen 
• Innovation 
• Identifizieren / Priorisieren 
...
Der Komplexität einen Schritt voraus …. 
$/€ ? 
Time 
• Schnelle Apps / Versionen 
• Innovation 
• Identifizieren / Priori...
Was wäre wenn Sie …. 
• Schnelle Apps / Versionen 
• Innovation 
• Identifizieren / Priorisieren 
$/€ ? 
Time 
10 COMPANY ...
Die Visibilitätslücke erfolgreich schließen … 
$/€ ? 
Time 
• Schnelle Apps/ Versionen 
• Innovation 
• Identifizieren / P...
Dynatrace (ehemals Compuware APM) 
Gartner Magic Quadrant 
12 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Performance 
bottlenecks fixed 
x 
FASTER 
Csanád MELEGH 
Kunden sagen … 
Head of IT Operations 
13 COMPANY CONFIDENTIAL –...
Crystal Clear Visibility 
80% Back-Office 
Performance 
Improvement 
30% Faster Check-Out 
Rene NEUBACHER 
B2C eBusiness S...
Kunden sagen … 
80% Faster 
Time to 
Market 
Frank NAUMANN, Head of IT 
15 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynat...
Kunden sagen … 
90% 
faster business 
transactions 
Patrick Progin, CEO 
16 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dyna...
Warum Performance zählt 
17 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
The “War Room” 
'Houston, we have a problem‘ 
NASA Mission Control Center, Apollo 13, 1970 
18 COMPANY CONFIDENTIAL – DO N...
Warum APM? 
Ich brauche schnelle 
Antwortzeiten! 
Zufriedene Anwender 
Ich mag keine 
Fehler! 
Ich brauche 
Verfügbarkeit!...
Warum APM? 
Business 
Test/QA 
Production Architecture 
Development 
20 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrac...
3rd Party Ext. Services 
.NET 
Server 
Java 
Server 
PHP Java 
Server 
End to End 
Synthetic 
Client 
Rich Client 
Browser...
TOP PROBLEM PATTERNS 
22 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Skaliert Ihre Anwendung? 
Antwortzeiten 
Transaktionen 
Resourcen 
23 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Top Problem Patterns: Does this sound familiar? 
• Resource Pool Exhaustion 
– Misconfiguration or failed deployment, e.g:...
Top Problem Pattern: Oversized Pages 
• Not following WPO (Web Performance Optimization Rules) 
– Non optimized content, e...
Top Problem Pattern: 3rd Party Content 
• Slow or failing 3rd party content 
– Impacts page load time; Ops is required to ...
Das Unternehmen Bison 
Roman Schaller
Bison auf einen Blick 
über 5’000 Kunden 
600 Mitarbeiter 90 Mio € Umsatz 
Grösstes Business Softwarehaus der Schweiz 
Sur...
Unsere Referenzen 
Einfach besser, einfach anders, einfach Handel
Produkt Gesamtübersicht
Performance-Offensive am ERP 
Bison Process 
04.12.2014 
31
Warum eine Offensive? 
Geschäftsleitung: 
Kann bei 
zusätzlichem 
Wachstum das 
Tagesgeschäft noch 
abgewickelt 
werden? 
...
Unser Vorgehen 
33 
Scrum-Team 
Plan
Was unser Kunde unter Performance versteht 
34 
• Usability 
• Eingaben wurden vom System überschrieben 
• Workflows mit u...
Architecture of Bison Process 
RCP-Client Web-Client 
HTTP 
UI-Layer 
Business-Layer 
Persistence-Layer 
Primary Server 
C...
Labor Workflow 
Schmerzpunkt 
mit Dynatrace 
identifizieren 
Szenario im 
Labor 
reproduzieren 
Lösungswege 
suchen und 
P...
Architecture of Bison Process Lab 
HTTP 
Business logic 
Persistence logic 
10 – 80 
Client bots 
UI Layer 
Primary Server...
Phasen des Tests 
8000 
7000 
Umgebung 
zurücksetze 
n (DB 
restore) 
Prototyp 
installieren 
Last- 
Tests 
Kalimba/rc 
Au...
Konkrete Erkenntnisse 
DB-Zugriffe 
Mit dem Einsatz von Dynatrace haben wir sehr 
schnell gesehen, dass sehr viele DB-Zugr...
Konkrete Erkenntnisse 
Diverse Bottlenecks 
• Eigene Implementationen von Caches 
• EhCache / HazelCast 
• Annotation-Proc...
Konkrete Erkenntnisse 
UI 
Speziell an unserem UI-Layer ist, dass der gesamte 
State auf dem Server gehalten wird. Das hat...
Konkrete Erkenntnisse 
Suchfunktionen 
Die Kunden-Datenbank umfass mehrere Terrabyte 
an Daten. Man kann nach allen erdenk...
Fazit der Offensive 
• Team vor Ort enorm wichtig für Verständnis 
• Dynatrace war sehr hilfreich für Problemsuche 
• Lab ...
Q&A 
Christian Grimm 
Senior Solution Consultant 
christian.grimm@dynatrace.com 
Web: http://www.dynatrace.com 
Community:...
45 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
Nächste SlideShare
Wird geladen in …5
×

Kritische app performance erfolgreich optimieren mit Bison

564 Aufrufe

Veröffentlicht am

Klicken Sie gleich auf nachfolgenden Link um zur Webcast-Aufzeichnung zu gelangen: http://cpwr.it/EQNYh - Herr Roman Schaller, Performance Engineer bei Bison, zeigt wie eine Performance Offensive in der Praxis erfolgreich umgesetzt wurde. Es wird auf folgende Fragestellungen eingegangen: Warum weichen Produktions- und Testumgebung so stark voneinander ab? Warum kann das Applikationsverhalten im Testsystem nur schwer dargestellt werden? Welche Auswirkung hat Performance auf geschäftskritische Anwendungen? Was genau sind die Performance Hot-Spots und wie optimieren wir diese möglichst effizient?

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
564
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
14
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Kritische app performance erfolgreich optimieren mit Bison

  1. 1. Kritische App-Performance erfolgreich optimieren Live Webcast mit Bison - 04.12.2014 Roman Schaller, Performance Engineer - Bison Christian Grimm, Sr Solution Consultant - Dynatrace 1 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  2. 2. Überlebenstraining … 156 / 80 8 / 10 1 … App Funktionalität muss auf 156 mobilen Endgeräten getestet werden um 80% des Marktes abzuzdecken Komplexität … 8 von 10 $  IT Ausgaben … 2 von 10 $  Innovation „DEAD MONEY“ Innovationen … 1 Mio $ Infrastruktur Investment  Vermutungen 1% performance increase 2 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  3. 3. Steigende Komplexität & Erwartungen Time 3 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  4. 4. Abnehmende Visibilität & Kontrolle … Time 4 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  5. 5. Visibilitätslücke Time • Schnelle Apps / Versionen • Innovation • Identifizieren / Priorisieren 5 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  6. 6. Zuviele Vermutungen … Time • Schnelle Apps / Versionen • Innovation • Identifizieren / Priorisieren 6 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  7. 7. Mit Geld um sich zu werfen funktioniert nicht … $/€ ? Time • Schnelle Apps / Versionen • Innovation • Identifizieren / Priorisieren 7 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  8. 8. Schließen der Visibilitätslücke $/€ ? Time • Schnelle Apps / Versionen • Innovation • Identifizieren / Priorisieren 8 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  9. 9. Der Komplexität einen Schritt voraus …. $/€ ? Time • Schnelle Apps / Versionen • Innovation • Identifizieren / Priorisieren 9 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  10. 10. Was wäre wenn Sie …. • Schnelle Apps / Versionen • Innovation • Identifizieren / Priorisieren $/€ ? Time 10 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  11. 11. Die Visibilitätslücke erfolgreich schließen … $/€ ? Time • Schnelle Apps/ Versionen • Innovation • Identifizieren / Priorisieren 11 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  12. 12. Dynatrace (ehemals Compuware APM) Gartner Magic Quadrant 12 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  13. 13. Performance bottlenecks fixed x FASTER Csanád MELEGH Kunden sagen … Head of IT Operations 13 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  14. 14. Crystal Clear Visibility 80% Back-Office Performance Improvement 30% Faster Check-Out Rene NEUBACHER B2C eBusiness Sr Tech Consultant Kunden sagen … 14 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  15. 15. Kunden sagen … 80% Faster Time to Market Frank NAUMANN, Head of IT 15 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  16. 16. Kunden sagen … 90% faster business transactions Patrick Progin, CEO 16 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  17. 17. Warum Performance zählt 17 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  18. 18. The “War Room” 'Houston, we have a problem‘ NASA Mission Control Center, Apollo 13, 1970 18 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  19. 19. Warum APM? Ich brauche schnelle Antwortzeiten! Zufriedene Anwender Ich mag keine Fehler! Ich brauche Verfügbarkeit! Den Anwendern Houston, we have a problem! Schnelle Problem-Identifikation Erkennen und beheben voraus Optimale Resourcen- Auslastung Gezielte Nutzung von Resourcen 19 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  20. 20. Warum APM? Business Test/QA Production Architecture Development 20 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  21. 21. 3rd Party Ext. Services .NET Server Java Server PHP Java Server End to End Synthetic Client Rich Client Browser Client Mobile Client Internet End-to-End Transaction Execution Path • Across tiers • Remoting • External services • Java, .Net, PHP, Mainframe • Code-level depth DATA CENTER #1 Web Server Contextual Transaction Information • Method arguments • SQL bind variables • Synchronization • Exceptions • Log Entries LAN / WAN Infrastructure Monitoring • Traditional component metrics CPU, Memory, Disk, Network etc. • Garbage collection • Memory / Thread dumps + DATA CENTER #2 ESB Database Java Server .NET Mainframe Server Session • Contains all performance data (PurePath and PureStack) • Realtime analysis (Online session) • Offline analysis (Exported sessions) = 21 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  22. 22. TOP PROBLEM PATTERNS 22 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  23. 23. Skaliert Ihre Anwendung? Antwortzeiten Transaktionen Resourcen 23 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  24. 24. Top Problem Patterns: Does this sound familiar? • Resource Pool Exhaustion – Misconfiguration or failed deployment, e.g: default config from dev – Actual resource leak -> can be identified with Unit/Integration Tests 24 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  25. 25. Top Problem Pattern: Oversized Pages • Not following WPO (Web Performance Optimization Rules) – Non optimized content, e.g: compression, merging, … – Educate developers and automate WPO checks 17! JS Files – 1.7MB in Size Useless Information! Even might be a security risk! 25 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  26. 26. Top Problem Pattern: 3rd Party Content • Slow or failing 3rd party content – Impacts page load time; Ops is required to monitor 3rd party services – Educate devs to optimize loading; Educate test to include 3rd party testing 26 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  27. 27. Das Unternehmen Bison Roman Schaller
  28. 28. Bison auf einen Blick über 5’000 Kunden 600 Mitarbeiter 90 Mio € Umsatz Grösstes Business Softwarehaus der Schweiz Sursee Puidoux Hamburg Kaarst Kaiserslautern
  29. 29. Unsere Referenzen Einfach besser, einfach anders, einfach Handel
  30. 30. Produkt Gesamtübersicht
  31. 31. Performance-Offensive am ERP Bison Process 04.12.2014 31
  32. 32. Warum eine Offensive? Geschäftsleitung: Kann bei zusätzlichem Wachstum das Tagesgeschäft noch abgewickelt werden? 32 • Verärgerte User • Unverständliche Wartezeiten • «Schlechte Performance!»
  33. 33. Unser Vorgehen 33 Scrum-Team Plan
  34. 34. Was unser Kunde unter Performance versteht 34 • Usability • Eingaben wurden vom System überschrieben • Workflows mit unnötigem Warten am Ende des Prozesses • Lange Wartezeiten bei gewissen Such-Anfragen • Mehrere Terrabyte an Daten • In-House nicht reproduzierbar • Man kann nach allem erdenklichen suchen… • Suche mal abgesetzt, läuft sie maximal 5 Minuten bis Timeout • Lange Wartezeiten unter hoher Last • System langsam um bestimmte Tageszeiten
  35. 35. Architecture of Bison Process RCP-Client Web-Client HTTP UI-Layer Business-Layer Persistence-Layer Primary Server Cluster Oracle Database Secondary Servers for Jobs
  36. 36. Labor Workflow Schmerzpunkt mit Dynatrace identifizieren Szenario im Labor reproduzieren Lösungswege suchen und Prototypen umsetzen Bester Prototyp implementieren Prototypen im Labor testen
  37. 37. Architecture of Bison Process Lab HTTP Business logic Persistence logic 10 – 80 Client bots UI Layer Primary Server Cluster Secondary Servers for Jobs Oracle Database Remote control through Jenkins
  38. 38. Phasen des Tests 8000 7000 Umgebung zurücksetze n (DB restore) Prototyp installieren Last- Tests Kalimba/rc Auswertun g 6000 5000 4000 3000 1000 0 • Dynatrace Analysen • Response-Zeiten von JMeter-Clients 2000 Mittelwert Req-Res, 20 Benutzer Mittelwert Req-Res, 40 Benutzer DataPool.get() JmsMessageBasket DelayActivityProcess
  39. 39. Konkrete Erkenntnisse DB-Zugriffe Mit dem Einsatz von Dynatrace haben wir sehr schnell gesehen, dass sehr viele DB-Zugriffe erfolgen. Dies ging schnell mal in die Milionen - sogar für identische Statements. • Architektonische Vereinfachungen um generell weniger Zugriffe zu machen. • Besseres Cacheing von Stammdaten.
  40. 40. Konkrete Erkenntnisse Diverse Bottlenecks • Eigene Implementationen von Caches • EhCache / HazelCast • Annotation-Processing zur Laufzeit • Startup-Phase verwenden oder Lazy-Loading • Oder JDK8! • String.format() • StringBuilder • Eigenes JMS-Connection-Handling • ConnectionPooling von Container
  41. 41. Konkrete Erkenntnisse UI Speziell an unserem UI-Layer ist, dass der gesamte State auf dem Server gehalten wird. Das hat zur Folge, dass bei den meisten Klicks, Enter und Tabs dem Server die Änderung mitgeteilt und der neu berechnete Inhalt des Clients wieder zurückgeschickt wird. • Mehr State auf dem Client • Asynchronität für Usability • Diffs übermitteln Eingaben Neuer Bildschirm- Inhalt
  42. 42. Konkrete Erkenntnisse Suchfunktionen Die Kunden-Datenbank umfass mehrere Terrabyte an Daten. Man kann nach allen erdenklichen Kriterien suchen.  Lange Suchen, Timeouts nach 5 Min. • Weniger Daten halten • Use-Cases einschränken • Defaulting • Suchen abbrechbar machen • Indizes t Such-Anfrage GUI blockiert 5 Minuten: Timeout-Fehler
  43. 43. Fazit der Offensive • Team vor Ort enorm wichtig für Verständnis • Dynatrace war sehr hilfreich für Problemsuche • Lab war sehr hilfreich für Lösungssuche Die Offensive wurde beendet. Kunde ist momentan zufrieden. Es bleibt noch viel zu tun: • Effizienterer Umgang mit der DB • Weitere Bottlenecks • Mehr asynchrone UIs und APIs
  44. 44. Q&A Christian Grimm Senior Solution Consultant christian.grimm@dynatrace.com Web: http://www.dynatrace.com Community: https://apmcommunity.compuware.com Blog: http://apmblog.compuware.com Twitter: https://twitter.com/Dynatrace Roman Schaller Performance Engineer roman.schaller@bison-group.com Web: http://www.bison-group.com 44 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace
  45. 45. 45 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Dynatrace

×