Slide 1

Slide 1 text

Performance and Load Testing of (Micro-)Service Architectures

Slide 2

Slide 2 text

Sebastian Cohnen, M. Sc.
 CEO & CTO • Focus on web performance and architectures • 5+ years consulting and development • Performance engineering & regular execution of dynamic performance analysis for customers Lars Wolff
 CEO & CPO • Focus on large, technical ambitious web projects and products • 10+ years consulting and development • Agile Coach / Certified ScrumMaster®; strategy, conception, product/project management plus development Hello!

Slide 3

Slide 3 text

Performance and Load Testing

Slide 4

Slide 4 text

Test methods for evaluation of external performance, system and software quality.

Slide 5

Slide 5 text

With load tests the system you want to test
 will be loaded with a defined amount of requests. The behavior of the system will thereby be monitored and rated.

Slide 6

Slide 6 text

Performance, Load, Configuration, […]-Testing • There are many variations on what and how you can assess performance related aspects. • What you need to do depends on what you want to learn about your system.

Slide 7

Slide 7 text

Why Should I Care?

Slide 8

Slide 8 text

Fast Load Times
 =
 Better Conversion Rate
 =
 $$$ (especially true for eCommerce)

Slide 9

Slide 9 text

Why (Performance) Testing? • I'd argue, that every system has issues. • Almost every project we worked on so far, has had (serious) issues. • YOU want to find issues before your customers do!

Slide 10

Slide 10 text

What you might want to know / learn about your system? • Speed, Latency, Performance • Stability • Resource Requirements, Capacity Planning • Resiliency, Failure Scenarios, Edge Cases

Slide 11

Slide 11 text

Top Performance Issues 1. Configuration 2. Configuration 3. Configuration 4. Bugs 5. New Features 6. Resource Contention (hello RDMS!) 7. Architectural Design

Slide 12

Slide 12 text

Performance ≠ Scalability

Slide 13

Slide 13 text

–Martin Fowler “Scalability gives you the option of better performance if you need it.”

Slide 14

Slide 14 text

Performance vs Scalability • Performance:
 
 "1x instance can handle 250 API requests per second with p99 at 50ms…" • Scalability:
 
 "10x instances can handle 2500 API requests per second with p99 at 50ms…"

Slide 15

Slide 15 text

You want to know both! • Performance is important, because it defines a baseline for latency and capacity. • Scalability is important, because it will tell you if and how far you can grow.

Slide 16

Slide 16 text

Microservices Architectures

Slide 17

Slide 17 text

http://martinfowler.com/articles/microservices.html Monolith and Microservices

Slide 18

Slide 18 text

https://inoio.de/blog/2014/09/20/technologie-sprung-bei-galeria-kaufhof/ http://dev.otto.de/2015/09/30/on-monoliths-and-microservices/ Vertical-Style Architectures

Slide 19

Slide 19 text

(Micro-)Services • promising approach to build better isolated systems • supposedly helps to scale to many independent teams • supposedly helps to scale your operation • CAUTION! Complexity is not abundant, it is moved "between" the services

Slide 20

Slide 20 text

What about Performance? • A (micro-)service architecture can have a beneficial impact on performance… • but it can also be very dangerous!

Slide 21

Slide 21 text

Huh? • Your SLA: "We need 500ms 95% of the time" • Your endpoint requires a service, which requires a service, which in turn re……… • What happens to your SLAs? For three services in a chain? You are left with 500ms for 86% of the time!

Slide 22

Slide 22 text

Within a distributed, (micro-)service system,
 you need much stricter SLAs!

Slide 23

Slide 23 text

Challenges

Slide 24

Slide 24 text

Challenges • Distributed teams build a distributed system • Communication is the primary challenge • For non-functional requirements, you have to end up coordinating with other teams

Slide 25

Slide 25 text

Lots of Open Questions • Test Environments? Test Data? • Test Coordination? Supervision? Monitoring? • What about CI and CD?

Slide 26

Slide 26 text

What has worked
 so far for us?

Slide 27

Slide 27 text

Empower Individuals as much as possible! • Everyone should be able to run a test – anytime • You don't want have independent teams and then block them by orthogonal tasks like perf testing

Slide 28

Slide 28 text

Work "Bottom-Up" • Start with very simple and basic tests as building blocks • Continue with coarser grained tests, combining basic blocks • Only start with complex business flows in the end

Slide 29

Slide 29 text

Why "Bottom-Up"? • Systems and stacks are complex • To understand a system under load, you need to be able to identify what happens and you have to be able to reproduce a test. • Low-Level Tests can be performed by each team in isolation.

Slide 30

Slide 30 text

Have Dedicated Test Environments • Ideally you have a 1:1 Environment for Performance Testing ($$$) • But you should have at least a scaled version of it and be able to size it up • Very, very important: Have a representative data set available!

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

StormForger

Slide 33

Slide 33 text

StormForger • SaaS Product and Consulting on Performance and Load Testing • We take care of the heavy lifting and pave the way for regular performance assessments

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

https://stormforger.com Thank you! How can we help you? Sebastian Cohnen
 [email protected]
 +49 176 / 22 82 30 58 Lars Wolff
 [email protected]
 +49 177 / 6 00 97 80 StormForger GmbH, Kyffhäuserstr. 17, 50674 Köln/Germany. Registergericht: Amtsgericht Köln, HRB 82582. Geschäftsführer: Sebastian Cohnen, Lars Wolff

Slide 36

Slide 36 text

— MANUEL KIESSLING, @MANUELKIESSLING HEAD OF TECHNICAL PLATFORM ONLINE GALERIA KAUFHOF GMBH — RALF ROTTMANN, @RALF, MANAGING PARTNER GRANDCENTRIX GMBH „For the German interactive TV Show Quizduell im Ersten, we reached out to Sebastian Cohnen after the show started with some issues. Working closely together, we conducted large scale performance tests, to assess the ability of our system to withstand the anticipated load of 1 million users.“ — JÉRÔME PATT, PROJECT MANAGER
 RTL INTERACTIVE GMBH „We were actually quite relaxed during the show premiere. Everything worked flawlessly and our complex workflows performed pretty well. Sebastian provided a great deal of help with his professional guidance and the extensive load tests!“ — JOHANNES HÖRLE, LEAD SOFTWARE ENGINEER YOOCHOOSE GMBH „We at YOOCHOOSE use load tests to assess our recommendation engine and tracking APIs. Being able to send well defined load patterns against our systems and getting detailed analytics on service latency, throughput and error rates is a perfect fit for our performance analysis needs.“ „We used different open source and commercial tools to conduct performance and load tests. After creating reference tests we decided StormForger would be the right tool for the job. Performance analysis *is* a tool decision.” — MICHAEL WIRTH, CTO DEALINI AG „As a full-service provider for nation-wide special promotions for large retailers we are relying on a solid IT architecture to handle the load of our web and mobile solutions. I asked my development team to checkout our backend performance using StormForger. The short version: Thumbs up! We’ll use StormForger for every launch now. Thanks!“