Slide 1

Slide 1 text

Performance Testing 101 Sebastian Cohnen – @tisba – code.talks e-commerce 2018

Slide 2

Slide 2 text

Sebastian Cohnen · @tisba EHLO commerce.codetalks.de • Sebastian Cohnen (@tisba) • Background Beratung und Entwicklung • Fokus auf Performance und Architektur • Gründer & CTO StormForger.com

Slide 3

Slide 3 text

Performance

Slide 4

Slide 4 text

Sebastian Cohnen · @tisba Performance • Frontend Performance • Backend Performance

Slide 5

Slide 5 text

Sebastian Cohnen · @tisba Performance Fähigkeit eines Systems eine Aufgabe in einer
 definierten Dimension zu erledigen = Effizienz eines Systems
 "1 Server schafft 250 rps mit p99 250ms"

Slide 6

Slide 6 text

Skalierbarkeit

Slide 7

Slide 7 text

≠ Performance Skalierbarkeit

Slide 8

Slide 8 text

Sebastian Cohnen · @tisba Skalierbarkeit capacity 0 1000 2000 3000 4000 resources 5 10 15 20 25 30 Effektivität mit der die Kapazität durch Ressourcen gesteigert werden kann

Slide 9

Slide 9 text

Woran erkenne ich, dass ich ein Performance-Problem habe? http://www.slideshare.net/jboner/scalability-availability-stability-patterns/15-How_do_I_know_if

Slide 10

Slide 10 text

Sebastian Cohnen · @tisba Wenn dein System langsam für
 einen einzelnen Benutzer ist.

Slide 11

Slide 11 text

Woran erkenne ich, dass ich ein Skalierungs-Problem habe? http://www.slideshare.net/jboner/scalability-availability-stability-patterns/15-How_do_I_know_if

Slide 12

Slide 12 text

Wenn dein System schnell für einzelne Benutzer ist, aber langsam unter Last. https://www.flickr.com/photos/jamespaullong/with/714577655/

Slide 13

Slide 13 text

¯\_(ツ)_/¯

Slide 14

Slide 14 text

Speed!


Slide 15

Slide 15 text

Availability!

Slide 16

Slide 16 text

Performance Testing

Slide 17

Slide 17 text

–Wikipedia “In software engineering,
 performance testing is in general,
 a testing practice performed to
 determine how a system performs
 in terms of responsiveness and stability
 under a particular workload.” https://en.wikipedia.org/wiki/Software_performance_testing

Slide 18

Slide 18 text

Sebastian Cohnen · @tisba Performance Tests • System anregen mit einer definierten Last • Verhalten beobachten • Eigenschaften verifizieren • Verhalten verstehen

Slide 19

Slide 19 text

Sebastian Cohnen · @tisba $

Slide 20

Slide 20 text

Performance Tests • Sammlung nicht-funktionaler Testmethoden • Nicht ganz trennscharf zu definieren • Unterschiedliche Ziele und Perspektiven Load Testing Stress Testing Spike Testing Soak Testing Endurance Testing Resilience Testing Configuration Testing Scalability Testing

Slide 21

Slide 21 text

Wenig Traffic
 ≠
 Keine Performance Probleme

Slide 22

Slide 22 text

Wo steht ihr?

Slide 23

Slide 23 text

Sebastian Cohnen · @tisba Performance Testing Maturity • gar keine Tests • Tests bei Problemen in Produktion • Tests (kurz) vor großen (Sales & Marketing) Aktionen * • regelmäßige Tests * * • Tests als reguläres, integriertes DevOpsQA Instrument * * * * *

Slide 24

Slide 24 text

–Allison McKnight, Etsy (@aemcknig) “Without a performance culture, performance is not sustainable” https://speakerdeck.com/aemcknig/building-performance-for-the-long-term#4

Slide 25

Slide 25 text

Sebastian Cohnen · @tisba Herausforderungen • (in der Regel) kein Tooling-Problem • organisatorische Hürden, z.B. Buy-In (Management & Team) • Sichtbarkeit in die eigenen Systeme • Anfangen

Slide 26

Slide 26 text

Verständnis

Slide 27

Slide 27 text

Sebastian Cohnen · @tisba Verständnis aufbauen • Eigene Anwendung • System & Softwarearchitektur • Umgebung (Infrastruktur, Abhängigkeiten, …) • Verwendete Dienste und deren Verhalten

Slide 28

Slide 28 text

Sebastian Cohnen · @tisba (Performance) Messen • Transparenz für das Thema herstellen • Sichtbarkeit bei der Durchführung von Perf Tests • Metriken ohnehin wichtig für den Betrieb

Slide 29

Slide 29 text

Anfangen …aber wie?

Slide 30

Slide 30 text

Sebastian Cohnen · @tisba 5 Schritte zu Perf Tests™ • Stakeholder zusammenbringen • Ziele & Scope definieren • Anforderungen ermitteln • Am Wer? und Was? arbeiten • Gemeinsam Tests durchführen - Entwicklung Betrieb QA Produkt Management Marketing

Slide 31

Slide 31 text

Sebastian Cohnen · @tisba Stakeholder Zusammenbringen • Entwicklung, Betrieb, QA, Produktentwicklung, Management und Marketing • Warum? Performance (Testing) ist ein hochgradig orthogonales Thema! • Alle Teile spielen bei Vorbereitung, Planung und Durchführung eine Rolle

Slide 32

Slide 32 text

Sebastian Cohnen · @tisba Ziele definieren • Ziele vorher definieren (Warum testen wir?) • Wichtig! Ziele (und Anforderungen) immer von der Fachseite her denken und definieren ☝ • Ein Ziel kann zunächst sehr einfach sein, z.B. “Black Friday gut überstehen” oder “Wir wollen 20% schneller werden”.

Slide 33

Slide 33 text

Sebastian Cohnen · @tisba Womit anfangen zu testen? • System Under Test (SUT) definieren • richtigen Scope finden • Perimeter/Ende-zu-Ende Tests • Komponenten/Service Tests

Slide 34

Slide 34 text

System Under Test • Testing “von oben” (Ende-zu-Ende) oder "seitlich" gegen einzelne Services • Für Fachseite sind in der Regel nur integrative Tests interessant • Tests einzelner Services zwecks Trouble Shooting (technische Perspektive)

Slide 35

Slide 35 text

Sebastian Cohnen · @tisba Anforderungen ermitteln • Annahmen zu Nicht-funktionale Anforderungen (NFA) treffen • Hilfestellung via "Baseline" Performance Tests und Performance Budgets • Einfache Anforderungen könnten sein: “Seiten unter 2s ausliefern”, “10k Checkouts pro Stunde”, … • Auch hier: Einfach anfangen, lernen, verbessern, repeat! • Sanity Checks machen!

Slide 36

Slide 36 text

Sebastian Cohnen · @tisba - Entwicklung Betrieb QA Szenarien • Bouncing Visitor • Returning Customer • Walk-In Customer • … Produkt Management Marketing Workloads • Black Friday Peak Hour • Average Peak Hour • 3 Hour Fire Sale • … Wer? Was?

Slide 37

Slide 37 text

Sebastian Cohnen · @tisba Gemeinsam Testen • Vor allem bei den ersten Tests alle Stakeholder involvieren! • GO! • Setup, Annahmen und Findings präsentieren • Szenarien Sanity checken oder überarbeiten • Repeat!

Slide 38

Slide 38 text

Sebastian Cohnen · @tisba

Slide 39

Slide 39 text

Sebastian Cohnen · @tisba Fazit • Performance (Testing) ist ein orthogonales Thema • Pragmatismus über Perfektion • Annahmen herleiten, festlegen und dokumentieren • von der Fachseite her an Probleme und Anforderungen herangehen • Anfangen!

Slide 40

Slide 40 text

Sebastian Cohnen
 [email protected]