40
Performance Testing for web-scale

Performance testing for web-scale

Embed Size (px)

Citation preview

Page 1: Performance testing for web-scale

Performance Testing

for web-scale

Page 2: Performance testing for web-scale

● happy father

● SA in EPAM Systems

● Java is my primary language

● hands-on-coding with Groovy, Ruby

● exploring FP with Erlang/Elixir

● passionate about agile, clean code and devops

Page 3: Performance testing for web-scale

Agenda● Why?● What?● How to..?● Tools● Demo● Summary● References● Q&A

Page 4: Performance testing for web-scale

Why... should I Care?..

Page 6: Performance testing for web-scale

Loss of $1.6b~25 * $62m

Page 7: Performance testing for web-scale

What...is Performance

Testing?

Page 8: Performance testing for web-scale

Performance testing is in general testing performed

to determine how a system performs in terms of responsiveness

and stability under a particular workload.

Page 9: Performance testing for web-scale

What...are Key

Characteristics?

Page 10: Performance testing for web-scale

Availability

Page 11: Performance testing for web-scale

Concurrency

Page 12: Performance testing for web-scale

Response Time

Page 13: Performance testing for web-scale

Throughput

Page 14: Performance testing for web-scale

Capacity

Page 15: Performance testing for web-scale

How… to Decide when to

Test?

Page 16: Performance testing for web-scale

Readiness

Page 17: Performance testing for web-scale

Enough Time

Page 18: Performance testing for web-scale

Continuously

Page 19: Performance testing for web-scale

How… to Choose what to

Test?

Page 20: Performance testing for web-scale

System Load (#users|requests)

Test Duration (mins)

Normal Operation

Max Designed Operation Capacity

Stress Test

Soak Test

Peak Load TestSpike Test

Types

Page 21: Performance testing for web-scale

Consensus

Page 22: Performance testing for web-scale

Scenarios

Page 23: Performance testing for web-scale

How… to Execute Test?

Page 24: Performance testing for web-scale

Data Volume

Page 25: Performance testing for web-scale

Network

Page 26: Performance testing for web-scale

Monitoring

Page 27: Performance testing for web-scale

Above Limits

Page 28: Performance testing for web-scale

Tool Impact

Page 29: Performance testing for web-scale

How… to Collect Results?

Page 30: Performance testing for web-scale

Measurements

Page 31: Performance testing for web-scale

Distributed Nature

Page 32: Performance testing for web-scale

Performance Testing Tools

Page 33: Performance testing for web-scale

Many..- Iago http://twitter.github.io/iago/index.html

- Tsung https://www.process-one.net/en/tsung/

- Locust http://locust.io/

- Zopkio https://github.com/linkedin/Zopkio

Page 34: Performance testing for web-scale

Gatling http://gatling.io/

- load testing framework based on Scala, Akka and Netty

- provides DSL along with UI for recording

- beautiful reports with right measurements

- easy for distributed load

- real-time monitoring

Page 35: Performance testing for web-scale

Demo

Page 36: Performance testing for web-scale

Takeaways- Do performance testing continuously

- Do performance testing with right amount of data

- Monitor your infra during performance tests run

- Use right measurements (percentiles)

- Choose right tool to load with less impact

- Automate deployment and testing processes

Page 37: Performance testing for web-scale

References- The Art of App Performance Testing http://goo.gl/CEgfSQ

- Performance Testing Crash Course https://goo.gl/jDDcP4

- InfluxDB https://influxdb.com/

- Grafana http://grafana.org/

- Docker Compose https://docs.docker.com/compose/

- Sources https://github.com/webdizz/web-scale-perf-testing

Page 38: Performance testing for web-scale

Q&A

Page 39: Performance testing for web-scale

[email protected] @webdizz webdizz izzetmustafaiev http://webdizz.name

Thanks

Page 40: Performance testing for web-scale

http://epam.com/careers