Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Why Load & Performance Testing the Cloud?
Sebastian Cohnen (@tisba)
• Focus on web performance and architectures
• 6+ years consulting and development
• Performance engineering & regular execution of dynamic performance analysis for customers
EHLO!
Sebastian Cohnen (@tisba)CEO & CTO StormForger.com
StormForger.com
• SaaS Product & Consulting on Performance and Load Testing
• We take care of the heavy lifting and pave the way for regular performance assessments
• Free Preflight Tests while in Beta™
Load & Performance Testing
–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.”
Performance Testing
• A category of non-functional testing methods
• Induce a well defined workload
• Observe the systems behavior
There are many forms…• Load Testing
• Stress Testing
• Spike Testing
• Soak Testing
• Configuration Testing
Whatever you do…
Performance
≠ Scalability
Performance
Performance vs Scalability
Performance"1 instance can handle 250 API requests per second with p99 at 50ms…"
Scalability"10 instances can handle 2500 API requests per second with p99 at 50ms…"
You maybe want both!
• Performance is important, because it defines a baseline for quality and capacity. It's also a measurement on efficiency.
• Scalability is important, because it will tell you if and how efficiently you can grow capacity.
The Cloud
• IaaS, PaaS, …
• Automatization
• On-Demand
• Scaling
http://geek-and-poke.com/
Back to Topic…
Why should I care?
Why should I care?…about load and performance testing the cloud?
"The Cloud is Scalable!"*…as long as I can afford it to be…
*famous last words…
Scaling ApplicationsScaling Resources
Scaling Applications
Scaling Resources≠
Understanding
You need to understand…
• Your (Distributed, μService, …) Application
• Your Software Architecture
• Cloud Environment
• Used Services and their behavior
Complexity has notsimply vanished!
Complexity has notsimply vanished!
Performance Testing…and some more reasons for testing!
Configuration Testing
• Auto Scaling
• Throughput Provisioning (EBS, DynamoDB, …)
• Instance Types for EC2/RDS/EC/ES/…
• ELB -> Web Server -> App Server -> Backend Services -> …
Performance Testing
• Determine speed, throughput, capacity, … of your system
• Figure out the capacity per resource
Scalability Analysis
• How does my capacity increases with additional resources?
• Requirement for Capacity Planning and Cost Estimation
Load Testing
• What happens when I'm on hacker news? (Spike Testing)
• How does your system and environment behave under serious stress? (Stress Testing)
• What happens over longer period of times? (Soak Testing)
Availability & Resiliency
• (Zero-Downtime) Deployment under load
• Understanding failure scenarios
• Failover mechanisms
Proof of Concept
• Design an Architecture on AWS
• Implement a Prototyp
• (Discuss it with AWS Solution Architects)
• Validate! Run Tests, observe, learn and improve!
Embrace the Cloud!
• Multiple, scalable test environments used to be cumbersome and expensive
• Use automatization wherever you can:
• Services, Infrastructure, Servers, Code, Data…
One more thing…
Is this different than it used to be with
"traditional hosting"?